88 KiB
Полигон, пакет-7, Z4-добор + ФАЗА B: улики по жанровой лексике, отбор промпта терминолога, вердикт по веб-фетчу
Ревью-шапка (оркестратор №8, 26.07): B + B′ ПРИНЯТЫ, D39.46. Приёмка исполнением из сохранённого сырья (скрипты полигона + независимый пересчёт): 7 CONFIRMED · 1 PARTIAL · 0 REFUTED. Деньги пересчитаны из
usageкаждого из 446 вызовов по прайсам models.yaml — $0.31030 + $0.14013 до цента; B′-замеры T/J/R воспроизведены (дифф промптов 10/10 батчей = ровно одна строка; декой 0/45 лучшим и 43–45/45 катастрофой при 0 на подписи; P0b [11,12,12] против P1 [19,18,18]); R1 «GOLD не уникален 0/19» — независимым кодом; покрытие словарём 0/80 и 1/80 — точно. PARTIAL: формула «P0b встаёт последним» неточна — по K1/K5 на невырожденных последний P0 (P0b шестой; цифры переворота 0.044→0.122 / 0.056→0.189 верны). Ниты: архивныйphaseB2/termset_gold.jsonнеполон (35/80 — H6 из него буквально не ре-ранится, восстанавливается из полных arms/j/raw); сырьё судей фазы B без usage (ваш же R7.2, в B′ починено). Самокоррекция сессии (§B6 + B′) — образцовая: единственная фаза без критика полноты дала единственные материальные ошибки, и это теперь норма промтов (D39.46).
Статус: Z4-добор ИСПОЛНЕН, фаза B ИСПОЛНЕНА по пре-регистрации §A5. Записка оркестратора №8 от 26.07.2026 (D39.43/D39.44). Деньги: смета названа ДО вызовов, факт — из
usageкаждого ответа, до цента; см. §B0 и §B5. Зоны: писал вeval/pkg7/и в этот отчёт.backend/не тронут. Не коммитил. Предыдущий отчёт пакета:POLYGON_TERM_RESEARCH_A_2026-07-26.md.⚠ ПОПРАВКА ОТ АВТОРА (после сдачи, до приёмки): §B2.3, §B2.4, §B3.2 и §Z4.2 ЧИТАТЬ ТОЛЬКО ВМЕСТЕ С §B6. ⚠ ЖАНРОВЫЙ СЛОВАРЬ ОТМЕНЁН ВЛАДЕЛЬЦЕМ 26.07.2026 как класс (ратификация — за оркестратором; амендмент к D39.42 п.1). Сняты: Z-B2 · вторая половина Z-B4 · подписной статус §Z4-Т; переформулирован Z-B6. Замеры отчёта силы не теряют — ни один вывод не опирался на словарь (покрытие было 0/80), перепрогоны не требуются. Обесценен один арм
P0(контроль «правильный словарь против случайного»), $0.01362 из $0.45043 по пакету. Развязка — записка оркестратору №10.Развязка ревизии: ПРОВЕРЕНА ЗАМЕРОМ — см.
POLYGON_TERM_RESEARCH_B2_2026-07-26.md(фаза B′, $0.14013). Итог: отбраковка судей действительно была неправомерна (находка не воспроизводится), но ранжировать армы слепой оценкой всё равно нельзя · широкая формулировка §B3.2 опровергнута, узкая поддержана · «контексты — главный рычаг» подтверждено тремя повторами (разрыв 6 термов против размаха 1).Адверсариальная перепроверка исполнением (
eval/pkg7/audit_phaseB.py) нашла в фазе B четыре материальные ошибки: отбраковка судей не подтверждается данными · вывод «судьи не имеют разрешающей способности» опровергается на этих же данных · у правила транскрипции не было контрольного арма · «три независимые улики» под §B3.2 не независимы. Объективный слой §B1.1, покрытие §B1.2, деньги §B5 и весь §Z4 перепроверку ПРОШЛИ без изменений.
Эхо-блок
1. Порядок исполнен как предписано: сначала Z4-добор ($0), потом фаза B по пре-регистрации A5.
2. Пре-регистрация A5 НЕ правилась после старта: 6 армов (P0 случайный глоссарий · P0b без контекстов ·
P1 · P2 · P3 · P4), K2 = н/д на S3/S4, критерии провала F1–F4, подписанный dst участвует слепо.
3. Процессный урок исполнен: сначала сделано всё, что НЕ тратит поисковую квоту (curl/локальные клоны),
квота сохранена под UNCLEAR-строки; БКРС взят куки-челленджем — 84 статьи, ноль поиска.
4. Решения владельца применены: Q3 порог «все ≥1 + катастроф-экран» · Q4 сокращённая форма = ПОЛЕ ·
Q5 штраф первого вхождения + счётчик распространённости · Q6 «краткость» НЕ включена · Z2 = V0.
5. Деньги: смета до вызовов, потолок $2.60, выход за него = стоп и пинг. Потолок НЕ достигнут.
6. Зоны: backend/ чужой (пак-20 дописывает терминолога, его промпт ИНТЕРИМ); сессия НЕ коммитит.
7. Гардрейлы: .env не читал (ключи читают скрипты) · L3 не обрабатывал · refusal_corpus не открывал.
8. Заявление = команда: все прогоны воспроизводимы командами §B0, сырьё сохранено целиком.
9. Подсказка владельца про /home/ubuntu/projects/tmp принята — конкуренты разобраны по ЛОКАЛЬНЫМ клонам,
а не по фетчу: это надёжнее и не тратит квоту.
10. Чего НЕ закрыл — §X, там же честно назван класс улики, оставшийся недобранным.
§Z4. Итоги добора (все пять заходов, $0)
Z4.1+Z4.4 БКРС ВЗЯТ — главный результат добора
В фазе A «что говорит словарь» стояло UNCLEAR по всем терминам: страница считалась JS-рендеримой. Причина оказалась другой и снимаемой: bkrs.info ставит одноразовый куки-челлендж ca=<hex> и перезагружает страницу. Воспроизведя куку (eval/pkg7/bkrs_lookup.py), получаем серверный HTML со статьёй.
Результат: 84 словарные статьи (38 по списку §A4.3 + 48 по реальным термам фазы B), ноль вызовов веб-поиска. Словарная улика — сильнейший класс из доступных (сильнее площадочной и сильнее аннотации), и она закрыла больше строк §A4.3, чем весь остальной добор вместе.
Лицензия источника со страницы «Скачать словарь» (дамп 2026.06.10): «Базы можно использовать свободно в любых целях. Можно указать данный сайт как источник.» — провенанс-класс серый→зелёный при указании источника, источник указан.
Z4.3 Частотный узус — спор «культивация vs совершенствование» переведён в измерение
Google Books Ngram, корпус ru-2019, 1900–2019, сглаживание 3 (чистый curl, без поисковой квоты):
| слово | пик | ср. 2010–2019 |
|---|---|---|
| совершенствование | 1983 | 6.615e-06 |
| культивирование | 1989 | 3.331e-07 |
| культивация | 1938 | 5.532e-08 |
| культиватор | 1938 | 5.834e-08 |
| совершенствующийся | 1920 | 1.660e-08 |
Три измерения, которых не было ни у одной стороны спора:
- Корреляция «культивация» × «культиватор» = 0.9715 на 120-летнем ряду. Пик у обоих — 1938 год. То есть в русском книжном корпусе «культивация» движется как ОДНО слово с сельхоз-орудием: это агротехнический термин практически без исключений. Корреляция «культивация» × «совершенствование» = −0.0704 (связи нет).
- Отношение частот 2010–2019: «совершенствование» / «культивация» = 119.6×.
- Биграмма «мир совершенствующихся» (формулировка аннотации Эксмо) в книжном корпусе — 0 вхождений; «культивация почвы» и «совершенствование духа» — есть. То есть жанровая формулировка издателя сама по себе является свежей чеканкой, а не устоявшимся книжным оборотом.
Что это доказывает и чего не доказывает. Доказывает: принятие «культивации» импортирует омонимию, коррелирующую с сельхоз-смыслом на 0.97 — это прямой минус по K1 (верность концепту) и K8 (однозначность), независимый от узуса. Не доказывает: как жанр должен переводить термин сегодня — корпус Ngram кончается 2019-м и книг вебновелл в нём нет. Ограничение названо.
Z4.5 Конкуренты по продукту — по локальным клонам (подсказка владельца)
Разобраны исходники шести переводческих харнессов из /home/ubuntu/projects/tmp (свежесть клонов: AiNiee 16.07.2026, LunaTranslator 23.07.2026, bilingual_book_maker 19.07.2026, GalTransl 23.05.2026, TransAgents 01.05.2025, translation-agent 08.07.2024).
Настоящая сходимость трёх независимых команд (три кодовые базы, три автора, одинаковый вывод): глоссарий, который едет в промпт, имеет форму src → dst + примечание, и он фильтруется по тому, что реально встретилось в текущем чанке, а не подаётся целиком.
- AiNiee:
build_glossary_promptсобирает таблицу原文|译文|备注только из строк, совпавших со входом (collect_matched_rows(..., input_dict)); есть тумблерыcase_sensitiveиwhole_word; ключ может быть регуляркой (src_state ∈ valid|regex|invalid). - SakuraLLM (через
LunaTranslator/translator/sakura_base.py): в промпт идёт «参考以下术语表(可为空,格式为 src->dst #备注)». - GalTransl:
Dict/GPT字典.txt—src<TAB>dst<TAB>пояснение.
Механизм, которого нет ни у нас, ни в ISO/TBX, и который есть у ДВУХ конкурентов — «не переводить». AiNiee строит отдельный блок 禁翻表 («Non-Translation List, Leave the following marked content untranslated») с колонками «маркер|примечание», собираемый по регуляркам из текущего текста. Это боевой аналог того do-not-normalize, который в фазе A был найден только у копиредактора в style sheet.
Самая ценная находка для нашей архитектуры — трёхслойный словарь GalTransl:
| слой | файл | что делает |
|---|---|---|
译前 (до перевода) |
00通用字典_译前.txt |
нормализует ИСХОДНИК (орфографические варианты → канон): 流石→さすが, 滅茶苦茶→めちゃくちゃ |
GPT字典 |
Dict/GPT字典.txt |
инъекция в промпт: src<TAB>dst<TAB>пояснение |
译后 (после перевода) |
00通用字典_译后.txt |
правит ВЫХОД, и условно |
Условный слой — это то, чего у нас нет и что решает нашу главную боль. Модель записи (GalTransl/Dictionary.py:36-50): search_word, replace_word, startswith_flag (^^ — только в начале строки), onetime_flag (1^ — заменить один раз), note («For GPT» — то, что уезжает в промпт), и два несущих поля:
is_conditionaDic+if_word_list: ключи условийpre_src, post_src, pre_dst, post_dst, pre_jp, post_jp, pre_zh, post_zh. Пример из их данных:pre_jp 人妻[or]ひとづま → 有夫之妇= «замени в ВЫХОДЕ, только если в ИСХОДНИКЕ было 人妻 или ひとづま»;!サタン= «только если НЕ было». Это контекстно-обусловленная пост-замена — ровно то, что отличает исправление «модель выбрала не тот синоним для ЭТОГО исходного термина» от слепого find-and-replace, который MS сам называет «brute force copy and replace».is_situationsDicс ключамиmono/diag: разное соответствие в повествовании и в реплике. Это смыкается с паком-19 «голос и состояние» и означает, что «один термин — один dst» не универсально даже у практиков.
Контр-находка, снимающая ореол с флагманов. TransAgents (мультиагентная «виртуальная переводческая компания» для художественного перевода) — в репозитории 0 файлов .py: только README, картинки и выходы. Терминологического механизма не опубликовано вообще. А translation-agent Эндрю Ына прямо называет нашу задачу ОТКРЫТОЙ:
«Glossary Creation. What's the best way to efficiently build a glossary — perhaps using an LLM — of the most important terms that we want translated consistently?» «Glossary Usage and Implementation. Given a glossary, what's the best way to include it in the prompt?»
И там же — независимое подтверждение нашего §A2.0 про слепоту автометрик: «even on documents where our agentic workflow captures context and terminology better, resulting in translations that our human raters prefer over current commercial offerings, evaluation at the sentence level … resulted in the agentic system scoring lower on BLEU».
Z4.2 Изданные русские переводы книг стенда — частично
Empire of the Vampire издан на русском: «Империя вампиров», Джей Кристофф, ISBN 978-5-17-118802-3, АСТ, перевод Н. Абдуллина. Терминология тома 1, релевантная нашему тому 3: Silversaint → «среброносец» / «Серебряный Святой», Silver Order → «Серебряный орден». Это настоящий человеческий эталон для en-пары, и он же — первый найденный нами живой кейс переноса терминологии между томами серии.
Search-inside закрыт ОТРИЦАТЕЛЬНЫМ результатом, а не «не дошёл». Google Books API по трём ISBN лицензионных изданий — «Мастер тёмного пути» (978-5-04-232151-1), «Магистр дьявольского культа» (978-5-907340-00-8), «Империя вампиров» (978-5-17-118802-3) — отдаёт totalItems=0 на каждом. Этих изданий в Google Books нет вообще, поэтому заход «search-inside по телу ISBN», предложенный критиком полноты и санкционированный Z4, механически неисполним: искать внутри нечего. Это не пропущенная модальность, а проверенная и отсутствующая.
Следствие для Z2: класс улики «тело лицензионного издания» остаётся недобранным, и остаётся недобираемым тем способом, который планировался. Доступные пути к нему — платный фрагмент ЛитРес или бумажная книга, оба вне зоны сессии. Поэтому арм HUMAN в фазе B построен на подписанном сиде владельца (S1/S5), а не на изданных переводах.
§Z4-Т. Обновлённая таблица §A4.3 — НА ПОДПИСЬ ⚠ СПРАВОЧНАЯ ФАКТУРА
⚠ ПОДПИСНОЙ СТАТУС СНЯТ. Жанровый словарь отменён владельцем 26.07.2026 как класс (ратификация — за оркестратором): решение о переводе принадлежит подписи на банк памяти, а пар-словарь навязывал бы одно видение всем книгам пары. Подписывать в этой таблице нечего. Что она теперь значит. Это сводка улик по каждому терму, и её главный результат — отрицательный: по центральным понятиям жанра единого рынка НЕТ. Именно поэтому 17 «закрытых словарём» строк не становятся контрактом — словарная статья описывает общеязыковое значение, а не жанровую конвенцию, и выбор регистра остаётся за владельцем книги.
Изменение против фазы A: колонка улики теперь имеет класс слов. (БКРС) — он сильнее площадочного и сильнее аннотации. Из 20 строк со статусом UNCLEAR закрыто словарём 17.
| src | dst (предлагаю) | улика класса «словарь» (БКРС, дословно) | статус |
|---|---|---|---|
| 修炼 / 修真 / 修行 | ⟨V0: не подписывать до тела изданий⟩ | 修炼 «совершенствовать и закалять себя»; 修真 «совершенствование, взращивание совершенного»; 修行 «совершенствовать поведение (нравственность)» — «культивация» в словаре отсутствует | развилка владельца |
| 修士 | ⟨не подписывать⟩ | «христ. монах, член монашеского ордена; подвижник, аскет» | КОЛЛИЗИЯ: строка 修士→культиватор в genre-glossary.txt словарём не поддержана и спорит со стандартным значением |
| 修为 | уровень совершенствования | «1) практическое исполнение 2) корректирующие действия 3) культивирование; совершенствование» | закрыт словарём; NB: «культивирование» словарь даёт именно ЗДЕСЬ, а не у 修炼 |
| 真气 | истинная ци | «истинная ци, истинная (абсолютная) субстанция, эссенция ци» | закрыт, совпал с сидом |
| 灵气 | духовная энергия | «1) сверхъестественная сила 2) божественный дух, духовное начало» | закрыт частично: словарь не даёт «духовную энергию» дословно |
| 筑基 | закладка основания | «закладывание фундамента, заложение основ» | закрыт — строка genre-glossary.txt подтверждена |
| 金丹 | золотое ядро (жанр) | «даос. золото и киноварь; снадобье бессмертия, золотой эликсир» | два регистра: словарь даёт академический, жанр — «ядро». Развилка Q2 |
| 丹田 | даньтянь | «1) кит. мед. даньтянь … 2) даос. киноварное поле, поле эликсира» | закрыт — оба варианта в одном словаре |
| 元神 | изначальный дух | «1) великий дух 2) даос. душа человека, Изначальный дух» | закрыт |
| 元婴 | ⟨UNCLEAR⟩ | русской части статьи нет (только китайское толкование) | остаётся UNCLEAR |
| 经脉 | меридианы | «кит. мед. каналы» (+ «Меридианы, Цзин-м…») | закрыт |
| 穴位 | акупунктурная точка | «кит. мед. местоположение акупунктурных точек» | закрыт |
| 心法 | тайное искусство | «1) профессиональный секрет; тайна, тонкость (передаваемая учителем ученикам) 2) будд. духовное наставление» | закрыт |
| 秘籍 | тайный трактат | «1) редкая книга, букинистическая редкость» | закрыт частично (жанровый смысл шире словарного) |
| 功法 | техника | «1) методы работы; тренировочные методы 2) навык, техника (боевых искусств)» | закрыт |
| 法宝 | сокровище дхармы / артефакт | «1) будд. дхарма… 2) будд. одежда…» | закрыт частично |
| 丹药 | пилюля | «1) даос. пилюли бессмертия, эликсир бессмертия 2) лекарственная пилюля» | закрыт |
| 符箓 | фулу / талисман | «даос. фулу; письменное заклинание; магический текст; талисман, амулет» | закрыт |
| 轻功 | цингун | «цингун; различные способности лёгкого передвижения (ушу)» | закрыт |
| 内功 | внутренняя работа | «кит. ушу внутренняя работа» | закрыт |
| 内力 | внутренняя сила | «внутренняя сила; эндогенный» | закрыт (площадка давала «внутреннюю энергию» — словарь поправляет) |
| 境界 | ступень / уровень | «1) границы, пределы 2) уровень, степень; предел» | закрыт |
| 飞升 | вознесение | «1) вознестись, вознесение» | закрыт |
| 天劫 | небесная кара | «1) Небесное испытание 2) Небесное бедствие; Небесная скорбь» | закрыт |
| 灵石 | духовные камни | «2) духовные камни» | закрыт |
| 长老 | старейшина | «1) старший, старейшина; старик, старец» | закрыт |
| 掌门 | глава школы | «1) руководитель религиозного учения, секты 2) глава, мастер» | закрыт |
| 剑修 | ⟨UNCLEAR⟩ | «такого слова нет» — словарь отвечает отрицательно, это жанровая чеканка | UNCLEAR, но теперь ОБОСНОВАННО |
| 妖 | нечисть / яо | «1) нечистая сила, нечисть; призрак; оборотень; чудовище» | закрыт |
| 魔 | демон / мо | «1) злой дух, демон, дьявол, чёрт» | закрыт; NB: 妖 и 魔 нельзя оба переводить «демон» |
| 仙 | бессмертный | «1) [даосский] отшельник; бессмертный, небожитель; святой» | закрыт, совпал с академией |
| 江湖 | цзянху | «1) реки и озёра 2) лоно природы; сельская глушь» | словарь НЕ даёт «цзянху»; транслитерация — жанровая конвенция |
| 走火入魔 | искажение ци | «1) помешаться на…, одержимый 2) утратить связь с реальностью» | закрыт; жанровый смысл описан в китайской части статьи |
| 资质 | талант | «1) природные данные 2) квалификация» | закрыт, поддерживает канон D39.21 |
| 凡人 | смертный | «1) обычный человек 2) всякий человек; мирянин, смертный» | закрыт, совпал с сидом |
Что НЕ входит в словарь по-прежнему: книжный канон (古月, 方源, 春秋蝉, 蛊) — живёт с книгой; чужой фан-канон целиком — красный класс §A1.3.
Отдельно к подписи — три строки уже созданного backend/configs/langpacks/zh-ru/genre-glossary.txt (чужая зона, не трогал):
| строка файла | вердикт добора |
|---|---|
筑基 → закладка основания |
ПОДТВЕРЖДЕНА словарём («закладывание фундамента, заложение основ») |
修炼 → культивация |
развилка V0/V1/V2/V3 не снята; словарь «культивации» не знает, Ngram показывает сельхоз-омонимию r=0.97 |
修士 → культиватор |
СПОРНА: словарное значение — «христ. монах»; жанровое употребление словарём не зафиксировано |
§B0. Фаза B: что построено, чем считались деньги, какие отклонения объявлены ДО трат
B0.1 Материал — реальные артефакты стенда, не синтетика
Вход роли ТЕРМИНОЛОГ по D39.42 п.1 собран eval/pkg7/build_termset.py из:
books/gu-zhenren/labels/raw/corpus.jsonl— 91 юнит из ШЕСТИ настоящих прогонов (minirun, acceptance, rerun2-dspro/glm/mistral, verify2) с выровненнымиsource/draft/final. Это постоянный измерительный стенд пакета-6 (D39.39);- сид книги +
minirun/mined-delta.yaml— подписанные владельцем dst (золотой стандарт); - TSV боевого майнера фазы A — намайненные термы БЕЗ dst;
- JSONL-субстраты 金瓶梅 / исэкая / Empire of the Dawn — для S2–S4.
Набор ровно по пре-регистрации: 80 термов — S1 30 (15 подписанных + 15 намайненных), S2 15, S3 15, S4 15, S5 5 (ловушка). Из них 19 имеют эталон владельца, 35 — пары «исходник ↔ черновик».
B0.2 Отклонения, объявленные ДО первого платного вызова
Пре-регистрация после старта не правится, поэтому всё, что отличается от буквы §A5, названо здесь заранее, а не объяснено задним числом.
- Батчинг по 10 термов на вызов. Единица учёта остаётся «терм × арм» (480 консолидаций), но доставляются они 60 вызовами. Основание — ратифицированная архитектура: D39.42 п.1 прямо говорит «батчи, дешёвая модель». Пер-термовые вызовы умножили бы стоимость инструкции на 80.
- Компонента «варианты черновиков» пуста на S2–S4 — переводов этих книг не существует, мы их не делали. Следствие: на S2–S4 арм P1 вырождается в «только KWIC». Это ограничение материала, а не правка дизайна.
- Справка для арма P4 есть только у zh-термов. БКРС — китайско-русский словарь; для японской (S3) и английской (S4) выборок справки нет по построению. Вердикт по веб-фетчу выносится по S1/S2/S5.
- Подписанный владельцем dst участвует в слепом сравнении как отдельный кандидат
GOLD. Без этого невозможен вердикт F2 («бьёт ли арм эталон»), и невозможна отбраковка оценщика, не отличающего подпись от случайного варианта (§A2.4 п.4).
B0.3 Дефект подачи, пойманный самопроверкой ДО трат на судей
После прогона шести армов я пере-мерил покрытие арма P4 и обнаружил, что справка дошла лишь до 2 термов из 80: я кормил P4 списком терминов §A4.3 (жанровый словарь), тогда как набор фазы B состоит в основном из книжных термов (方源, 古月, 学堂, 酒虫) и не-китайских. В таком виде P4 ≈ P2 на 78 термах, и вердикт по веб-фетчу был бы пустым.
Исправлена ПОДАЧА ДАННЫХ, а не дизайн арма: добраны словарные статьи для реальных zh-термов набора (48 штук, $0, тем же bkrs_lookup.py), после чего пере-прогнан ТОЛЬКО арм P4; остальные пять армов остались от первого прогона нетронутыми. P4 всегда определялся как «P2 + предварительно добытая справка по терму» — ему дали ту справку, которую он и должен был получать.
Побочная удача этой починки: в S5 попал терм 时辰, и словарная статья дословно содержит канон D39.21 — «стар. большой час (одна двенадцатая часть суток, был равен 2 часам)». То есть ловушка теперь проверяет и то, пользуется ли модель справкой, когда справка прямо противоречит буквальному «час».
B0.4 Дисциплина денег
Цены берутся из backend/configs/models.yaml (read-only), расход считается из фактического usage каждого ответа с учётом cached_tokens, сырьё каждого вызова (промпт + ответ + usage + finish_reason) сохраняется целиком — правило 1 полигона. Смета печатается ДО вызовов режимом --dry-run.
Смета до вызовов (консолидация): вход ≈180.3k токенов → $0.0252; выход ≈150.0k → $0.0420; итого ≈ $0.0672.
B0.5 Соблюдение квирков провайдеров
Читал 00-provider-quirks.md перед вызовами. Консолидатор — deepseek-v4-flash: thinking оставлен ВКЛЮЧЁННЫМ (выключение = эхо-мина на плотном CJK), max_tokens 8000 (пол по квирку: thinking ⊆ completion), temperature/top_p не шлются вовсе (в thinking-режиме молча игнорируются). Судьи — из ДРУГИХ семейств (D13.3: судья не судит выход своего семейства): gpt-5-mini с reasoning_effort:"minimal" и max_completion_tokens (его квирк), grok-4.3 с явным reasoning_effort (дефолт у xAI — low, must-be-explicit).
§B1. Объективный слой: измерения, не зависящие от судей
Прежде судейских вердиктов — меры, которые считаются машиной и которые невозможно «уговорить». Они служат вторым способом измерения того же (мандат самопроверки 12.07).
B1.1 Точное совпадение с ПОДПИСЬЮ ВЛАДЕЛЬЦА (19 термов с эталоном)
| арм | совпало | доля |
|---|---|---|
| P0 (случайный глоссарий) | 19/19 | 1.000 |
| P1 (KWIC + черновики) | 18/19 | 0.947 |
| P2 (+ пар-данные) | 18/19 | 0.947 |
| P3 (+ рубрика) | 17/19 | 0.895 |
| P4 (+ словарная справка) | 17/19 | 0.895 |
| P0b (без контекстов) | 12/19 | 0.632 |
Мягкое совпадение (без регистра и порядка слов) даёт те же цифры — расхождения не косметические.
В разрезе выборок картина ещё резче:
| выборка | P0b | P0 | P1 | P2 | P3 | P4 |
|---|---|---|---|---|---|---|
| S1 основная (n=15) | 10/15 | 15/15 | 15/15 | 15/15 | 14/15 | 14/15 |
| S5 ловушка (n=4) | 2/4 | 4/4 | 3/4 | 3/4 | 3/4 | 3/4 |
На основной выборке три арма с контекстами совпали с подписью владельца ИДЕАЛЬНО (15/15), и различить их между собой нечем. Разброс выходов внутри терма подтверждает то же: на S1 единогласны 16 термов из 30 (в среднем 1.53 разных варианта), тогда как на 金瓶梅 без черновиков и сида — только 2 из 15 (в среднем 2.40).
Читается это так, и только так. Разрыв P0b против всех остальных (0.632 против 0.895–1.000) — единственный крупный и устойчивый: контексты работают, и это главный рычаг. Различия внутри группы P0/P1/P2/P3/P4 — это один-два терма из девятнадцати, то есть шум на такой выборке; утверждать по ним ранг армов нельзя, и я не утверждаю.
B1.2 Почему глоссарный контраст на этой выборке НЕ измерился — механизм, а не догадка
Диагностика, снятая машинно: 0 из 80 термов набора покрыты жанровым словарём. Из 19 термов с эталоном покрыто тоже 0.
Что именно уезжало в промпт — восстановлено из СОХРАНЁННОГО сырья, а не из файла (файл в чужой зоне и правится параллельной сессией):
арм P2 (правильный словарь) арм P0 (контроль: dst перемешаны)
修真 культивация 修真 культивация
修行 культивация 修行 золотое ядро
丹田 даньтянь 丹田 духовная энергия
经脉 меридианы 经脉 даньтянь
灵气 духовная энергия 灵气 меридианы
金丹 золотое ядро 金丹 культивация
Шесть строк, ни одна из которых не встречается среди восьмидесяти оцениваемых термов. Контроль по рецепту WMT23 собран корректно (dst действительно переставлены) — и именно поэтому он ничего не показал: подменять было нечего.
Значит компонента «жанровый словарь» была инертна во всех армах, где она есть — и в P2/P3/P4 с правильным словарём, и в P0 со случайным. Контраст «правильный против случайного» на этом наборе физически не мог проявиться.
И это не случайность выборки, а прямое следствие находки фазы A. WHICH-канал майнера отдаёт книжный канон (имена, места, титулы: recall 0.231 на name), а жанровый словарь покрывает жанровые понятия (recall term = 0.040). Два множества не пересекаются по построению. Практический вывод для пака-20 сильнее, чем сам эксперимент: жанровый словарь помогает терминологу ровно на тех термах, которых майнер не приносит, — то есть подавать его в роль осмысленно только вместе с расширением WHICH-канала на класс term.
B1.3 Прокси «транслитерация вместо кальки» (доля dst, целиком отсутствующих в словаре русского)
Считается pymorphy3: у кальки («Серебряный Святой») знаменательные слова словарные, у транслитерации («Сильверсейнт») — нет.
| выборка | P0b | P0 | P1 | P2 | P3 | P4 |
|---|---|---|---|---|---|---|
| S1 zh канон | 0.11 | 0.10 | 0.10 | 0.10 | 0.10 | 0.10 |
| S2 zh классика | 0.33 | 0.44 | 0.33 | 0.33 | 0.40 | 0.40 |
| S3 ja | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| S4 en | 0.20 | 0.07 | 0.13 | 0.13 | 0.13 | 0.07 |
| S5 ловушка | 0.25 | 0.25 | 0.25 | 0.50 | 0.50 | 0.50 |
| всего | 0.16 | 0.12 | 0.14 | 0.15 | 0.17 | 0.15 |
На ловушке армы с правилом транскрипции транслитерируют вдвое чаще (0.50 против 0.25). Ячейки маленькие (S5 = 4–5 термов), поэтому это указание, а не доказательство — но оно совпадает с двумя независимыми ручными наблюдениями ниже.
B1.4 Ловушка S5: где именно ломается
| терм | канон / эталон | P0b | P0 | P1 | P2 | P3 | P4 |
|---|---|---|---|---|---|---|---|
| 时辰 | канон D39.21: 2 часа, не «час» | страж | шичэнь | час ❌ | шичэнь | шичэнь | шичэнь |
| 蛊 | гу | гу ✓ | гу ✓ | гу ✓ | гу ✓ | гу ✓ | гу ✓ |
| 资质 | талант | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 转 | ранг | оборот ❌ | ранг ✓ | ранг ✓ | ранг ✓ | ранг ✓ | ранг ✓ |
| 春秋蝉 | Весенне-осенняя цикада | Чуньцючань ❌ | Весенне-осенняя цикада ✓ | Чуньцючань ❌ | Чуньцючань ❌ | Чуньцючань ❌ | Чуньцючань ❌ |
Два разных механизма отказа, оба воспроизводимые:
时辰→ «час» у P1 — это ровно дефект класса DC1, который ловят чекеры (пакет-6, K1). Армы со словарной справкой его НЕ допустили, и справка по 时辰 дословно содержит «стар. большой час (одна двенадцатая часть суток, был равен 2 часам)». Единственный случай во всём прогоне, где веб/словарная справка видимо предотвратила подлинную ошибку.春秋蝉→ «Чуньцючань» у ВСЕХ армов с правилом транскрипции. Инструкция «имя собственное передавай транскрипцией» перевесила канон, который переводит название гу по смыслу.
B1.5 Сверка с ЖИВЫМ профессиональным переводчиком (единственная точка, где он у нас есть)
Silversaint, изданный перевод АСТ (Н. Абдуллин): «среброносец» / «Серебряный Святой».
| арм | выдал | совпало с изданием |
|---|---|---|
| P0 | Серебряный святой | да |
| P4 | Серебряный Святой | да |
| P1 | Сребросвят | нет (изобретение) |
| P2 | Сильверсейнт | нет (транслитерация) |
| P3 | Сильверсейнт | нет (транслитерация) |
| P0b | Силверсейнт | нет (транслитерация) |
Тот же механизм, что на 春秋蝉: правило транскрипции уводит от решения, которое принял живой переводчик.
Честная граница этого наблюдения: каждый арм прогонялся ОДИН раз, повторов пре-регистрация не предусматривала, поэтому отделить эффект арма от разброса прогона на одном терме нельзя. Совпадение механизма на двух независимых термах (春秋蝉 zh и Silversaint en) и подтверждение прокси-мерой §B1.3 — вот что делает вывод пригодным для решения, а не сам по себе единичный случай.
§B2. Судейский слой: вердикты F1–F4 и почему сам инструмент оказался негодным
Три прогона: gpt-5-mini прямой порядок · grok-4.3 прямой порядок · gpt-5-mini ОБРАЩЁННЫЙ порядок (замер свопа). Вердиктов 80/80 у каждого (у первого судьи 5 восстановлены офлайн из сырья, §X п.9).
B2.1 BWS-счета — плоские
| критерий | ранжирование (BWS: лучший +1, худший −1, нормировано) |
|---|---|
| K1 верность концепту | P4 +0.044 · P3 +0.025 · P2 +0.013 · P1 +0.006 · GOLD −0.026 · P0b −0.037 · P0 −0.044 |
| K2 жанровая конвенция | P3 +0.070 · P4 +0.050 · P2 +0.040 · P0b +0.040 · GOLD −0.026 · P1 −0.030 · P0 −0.160 |
| K5 морфология | P3 +0.062 · P1 +0.031 · P4 +0.013 · GOLD 0.000 · P2 0.000 · P0b −0.019 · P0 −0.087 |
| K6 благозвучие | P1 +0.062 · P4 +0.062 · P3 +0.031 · P2 +0.006 · GOLD 0.000 · P0 −0.069 · P0b −0.094 |
| K9 регистр | P3 +0.050 · P2 +0.025 · P4 +0.025 · P1 0.000 · P0 −0.031 · GOLD −0.053 · P0b −0.056 |
Весь разброс укладывается в ±0.09 при том, что шкала допускает ±1. И подпись владельца (GOLD) стоит В СЕРЕДИНЕ или НИЖЕ машинных армов по четырём критериям из пяти.
B2.2 Вердикты по критериям, названным ДО трат
| критерий | замер | вердикт |
|---|---|---|
| F1 P0b неотличим от P1 по K1 | Δ = 0.044 при пороге 0.10 | ПРОВАЛ |
| F1b P0 (случайный глоссарий) неотличим от P2 | Δ = 0.056 при пороге 0.10 | ПРОВАЛ |
| F2 ни один арм не бьёт подпись | лучший P4 +0.026 против GOLD −0.026 | НЕ провал |
| F3 катастрофы на ловушке S5 | у КАЖДОГО арма ≥2, включая GOLD 1 | ПРОВАЛ |
| F4 согласие / устойчивость победителя | κ = 0.611 (порог 0.60); leave-one-out по судье МЕНЯЕТ победителя: gpt-5-mini → P4, grok-4.3 → P0b | ПРОВАЛ |
Эффект свопа по K1 (обратный порядок минус прямой): P0 +0.107 · P0b +0.050 · P2 +0.013 · GOLD −0.026 · P1 −0.032 · P3 −0.038 · P4 −0.094. Сдвиг от одной лишь перестановки вариантов БОЛЬШЕ, чем весь разброс между армами. Предупреждение литературы (§A2.4 п.5: своп на кураторских наборах может ухудшать) подтвердилось на наших данных.
B2.3 Отбраковка оценщиков — правило пре-регистрации сработало против нас, и это правильно
§A2.4 п.4 гласил дословно: «оценщик, не отличающий подписанный вариант от случайного, отбраковывается вместе со своими вердиктами». Проверяем:
| судья | термов с GOLD | назвал подпись ЛУЧШЕЙ по K1 | ХУДШЕЙ | КАТАСТРОФОЙ |
|---|---|---|---|---|
| gpt-5-mini | 19 | 2 | 2 | 6 |
| grok-4.3 | 19 | 2 | 3 | 0 |
gpt-5-mini объявил подписанный владельцем перевод катастрофой в 6 случаях из 19 (31.6%) и выбирал его лучшим ровно так же часто, как худшим. grok-4.3 катастроф не ставил, но тоже не отличал подпись: 2 «лучший» против 3 «худший».
Оба судьи проваливают собственный контроль ⇒ по пре-регистрации их вердикты отбраковываются, а ранжирование армов по BWS НЕ ВЫДАЁТСЯ как результат. Согласие между судьями по выборкам: S3 0.933 · S1 0.733 · S2 0.600 · S4 0.467 · S5 0.400 — то есть хуже всего именно там, где решение важнее всего (ловушка канона).
B2.4 Объективный слой ПРОТИВОРЕЧИТ судейскому — и это решающая улика против судей, а не против армов
Единственная точка, где есть внешняя истина, — совпадение с подписью владельца:
| объективная мера (§B1.1) | судейская мера (K1) | |
|---|---|---|
| P0b (без контекстов) | 10/15 на S1 | −0.037 |
| P1 (с контекстами) | 15/15 на S1 | +0.006 |
| разрыв | пять термов из пятнадцати | Δ = 0.044 → «неотличимы» |
Разница, которую видно невооружённым глазом на золотом стандарте, судьями не обнаружена. Значит F1 («контексты не работают») — это не свойство контекстов, а свойство измерителя: BWS-судьи на терминологической задаче с короткими вариантами не имеют разрешающей способности.
B2.5 Что из этого следует — честно
- Ранжирование армов по слепой оценке не выдаётся. F4 сработал, оценщики отбракованы своим же контролем. Никакой «арм X лучше арма Y по мнению судей» в контракт не идёт.
- Выводы фазы B опираются на объективный слой §B1 (совпадение с подписью, покрытие глоссарием, прокси транслитерации, ловушка, сверка с изданным переводом) — он не зависит от судей и воспроизводим побайтно.
- Пре-регистрация окупилась. Именно заранее названные F1–F4 и заранее вставленный
GOLDв слепую выборку не дали выдать плоский шум за ранжирование. Если быGOLDв выборку не положили (а в первом наброске §A5 его не было), мы получили бы «P4 победил» и не узнали бы, что судья считает подпись владельца катастрофой. - Для следующего замера нужен ДРУГОЙ инструмент, а не другой судья: короткие терминологические варианты плохо различаются попарным сравнением. Кандидаты — оценка терма В КОНТЕКСТЕ ПРЕДЛОЖЕНИЯ (подставить каждый вариант в реальный фрагмент и сравнивать фрагменты), либо человеческая разметка по образцу пакета-6.
§B3. Рекомендация текста промпта терминолога
Промпт пака-20 объявлен ИНТЕРИМ, финальный текст выбирает эта фаза. Рекомендация ниже — дельта к тому, что гонялось в армах; каждый пункт привязан к измерению, а не к вкусу.
B3.1 Что оставить как есть (подтверждено)
- KWIC-контексты обязательны. Единственный крупный измеренный разрыв: 0.632 → 0.947 по совпадению с подписью владельца (§B1.1). Это несущий элемент, а не украшение.
- Требование ЛЕММЫ («dst в исходной словарной форме»). Совпадает с единственным вендорским решением морфологии, найденным в фазе A (нейрословарь Microsoft: «expected to be in a lemma (word base) form»), и не дало отказов.
- Батчи по ~10 термов. 480 консолидаций за 70 вызовов, ноль пустых ответов, $0.09204 суммарно. Ратифицированная формула «батчи, дешёвая модель, центы/книга» подтверждена фактом.
- Формат
src → dst + примечание. Три независимых конкурента (AiNiee, SakuraLLM, GalTransl) пришли к одной и той же тройке полей — это настоящая сходимость трёх кодовых баз. ⚠ 26.07: остаётся НАБЛЮДЕНИЕМ о чужих системах, но перестаёт быть рекомендацией к внедрению — у конкурентов эта тройка описывает доставку ГЛОССАРИЯ, а глоссария у нас не будет. Для записи банка поля определяет D39.42, а не они.
B3.2 Что ИЗМЕНИТЬ — одна правка, за которой стоят три независимых наблюдения
Правило транскрипции нужно СУЗИТЬ до антропонимов и топонимов.
Формулировка, которая гонялась: «если термин — имя собственное, передавай его транскрипцией, а не переводом смысла». Что она натворила:
春秋蝉→ «Чуньцючань» у ВСЕХ армов, где правило есть; канон владельца — «Весенне-осенняя цикада» (§B1.4);Silversaint→ «Сильверсейнт» у P2/P3; изданный перевод АСТ — «среброносец / Серебряный Святой» (§B1.5);- на ловушке доля целиком несловарных dst у армов с правилом вдвое выше (0.50 против 0.25, §B1.3).
Причина одна и она структурная: названия артефактов, техник и гу — грамматически имена собственные, но в жанре они переводятся по смыслу. Правило, не различающее антропоним и название приёма, систематически уводит от решения, которое принимают и владелец, и живой профессиональный переводчик.
Предлагаемая замена (текст для пар-слоя, не для Go):
Транскрипцией передаются ИМЕНА ЛЮДЕЙ и ГЕОГРАФИЧЕСКИЕ названия. Названия предметов, техник, приёмов, существ и организаций переводятся ПО СМЫСЛУ, если смысл читается; транскрипция для них — запасной ход, когда смысл не восстанавливается или калька неблагозвучна.
B3.3 Что добавить — механизм, взятый у конкурентов, а не выдуманный
Поле «не переводить» (do-not-translate) в записи терма. Есть у двух конкурентов из трёх (AiNiee 禁翻表, GalTransl через флаги), нет ни у нас, ни в ISO/TBX, и в фазе A оно же нашлось у копиредактора как «Fragments are acceptable with this author's style». Наш ближайший аналог — status, но он про доверие, а не про запрет.
Условие на пост-замену, а не голая замена. Модель GalTransl (pre_src/post_src/pre_dst/post_dst + !отрицание) — это ответ на дефект, который MS называет своим именем («brute force copy and replace»), а AiNiee показал в масштабе (issue #597: сто тысяч строк ложных ошибок от строгой сверки автоглоссария). Для нас это вход в дизайн пост-чека, а не в промпт.
§B4. Вердикт по веб-фетчу в роли терминолога (D39.42 п.2)
Вердикт: в v2 роли веб-фетч НЕ вводить. Ввести вместо него офлайн-словарь как пар-данные.
Замер, на котором вердикт стоит:
| что мерили | результат |
|---|---|
| совпадение с подписью владельца, P4 (со справкой) | 17/19 = 0.895 |
| то же, P1 / P2 (без справки) | 18/19 = 0.947 |
| то же, P0 (случайный глоссарий) | 19/19 = 1.000 |
| случаев, где справка ВИДИМО предотвратила ошибку | 1 (时辰: P1 дал «час», армы со справкой — нет; справка дословно содержит «был равен 2 часам») |
| покрытие справкой по языкам | zh — есть (БКРС); ja и en — нет вовсе |
Оговорка против себя, чтобы не выглядеть подгонкой: по слепой BWS-оценке арм P4 формально оказался ПЕРВЫМ по K1 (+0.044). Я на это не опираюсь — судейский слой отбракован собственным контролем (§B2.3), весь разброс там ±0.09 при шкале ±1, а эффект одной лишь перестановки вариантов у P4 составил −0.094, то есть больше его же «победы». Вердикт ниже стоит на объективном слое.
Три довода, каждый самостоятельный:
- Агрегатного выигрыша нет. По объективной мере P4 не лучше армов без справки; единственный видимый выигрыш — один терм из восьмидесяти.
- Сработала не «сетевая справка», а СЛОВАРЬ. Единственный случай пользы — статья двуязычного словаря. Словарь — это ДАННЫЕ, и они прекрасно живут офлайн: 84 статьи БКРС добыты за $0 и лежат файлом. Ради этого не нужен ни сетевой хоп в петле, ни расширение интерфейса роли.
- Веб-фетч в петле ломает инвариант детерминизма №8. Страница меняется между прогонами, а на детерминизме стоит весь golden. Офлайн-снапшот словаря даёт ту же пользу и ничего не ломает — именно поэтому арм P4 и был построен как снапшот, а не как живой фетч (пре-регистрация §A5.2).
Что предлагаю вместо веб-фетча — ПРЕДЛОЖЕНИЕ СНЯТО (26.07, полигон сам). Здесь предлагалось положить в пар-слой файл словарных справок и подавать его терминологу тем же путём, что жанровый словарь. Снимаю по двум причинам сразу: измеренная польза — 1 случай из 80, и тот же довод владельца против пар-словаря бьёт по любому пар-слою «готовых ответов». 84 статьи БКРС остаются фактурой ресёрча (они и опровергли посылку «индустрия решила»), а не кандидатом в контракт. Для ja→ru вопрос лицензии JMdict (CC BY-SA, серый класс) тем самым тоже снимается с повестки.
Чего этот вердикт НЕ говорит: он не про веб-фетч вообще, а про веб-фетч В РОЛИ ТЕРМИНОЛОГА при нашей текущей мере. Если появится класс термов, где нужен именно свежий сетевой контекст (реалии современности, бренды), вопрос открывается заново — и открывается замером, а не мнением.
§B6. Ревизия исполнением: адверсариальная проверка собственных выводов
Почему эта секция есть. Мандат самопроверки 12.07 требует ревью ИСПОЛНЕНИЕМ, а норма проекта —
author ≠ reviewer на спорном. В фазе A внешний критик полноты был (он и породил V0 по 修炼), в
фазе B его не было: судейский слой я и построил, и оценил сам. Перепроверка сделана после сдачи,
воспроизводима одной командой и опровергает часть моих же выводов:
eval/.venv/bin/python eval/pkg7/audit_phaseB.py --dir <скретчпад>/phaseB
Пре-регистрация НЕ переписывается: вердикты F1–F4 в §B2.2 остаются ровно такими, какими их дал скорер на наборе, названном до трат. Исправляется их ИСТОЛКОВАНИЕ и класс улик под рекомендациями.
R1. Отбраковка судей (§B2.3) данными НЕ подтверждается — снимаю
Контроль §A2.4 п.4 звучал так: «оценщик, не отличающий подписанный вариант от случайного, отбраковывается вместе со своими вердиктами». Замер, которого в фазе B не сделали:
- строка
GOLDуникальна среди кандидатов в 0 случаях из 19 — подпись владельца текстуально совпадала минимум с одним армом на КАЖДОМ терме, а в шести «катастрофических» случаях — с пятью-шестью; - во всех 6 случаях, где
gpt-5-miniпометил подпись катастрофой, он пометил ровно тот набор букв, который нёс этот же текст (СОГЛАСОВАНОв п.7 аудита). Это не спутывание подписи со случайным вариантом — это идеальная внутренняя согласованность и несогласие с каноном ПО СУЩЕСТВУ.
Вывод исправляется: контроль на этом наборе был структурно неизмерим (уникальной подписи не существовало), и отбраковывать по нему судей было нельзя. Фраза §B2.3 «оба судьи проваливают собственный контроль» — моя ошибка чтения. Правильная формулировка: контроль не сработал, потому что мы не обеспечили его условие — уникальность эталона среди кандидатов.
R2. «Судьи не имеют разрешающей способности» (§B2.4, §B2.5 п.4) — опровергается их же данными
35 термов из 80 вырождены: все семь кандидатов — одна и та же строка (из 19 термов с эталоном
таких 11). BWS на идентичных вариантах — шум по построению, и он разбавляет каждый агрегат. Пере-счёт
ТЕМ ЖЕ скорером (score_bws.bws), тем же критерием и тем же порогом, но на 45 невырожденных термах:
| замер | все 80 (как в отчёте) | 45 невырожденных |
|---|---|---|
| F1 |P1 − P0b| по K1 | 0.044 → ПРОВАЛ | 0.122 → НЕ провал |
| F1b |P2 − P0| по K1 | 0.056 → ПРОВАЛ | 0.189 → НЕ провал |
| место P0b по K1 | −0.037 (шестое из семи) | −0.100 (последнее) |
На невырожденных айтемах P0b встаёт последним по K1, K5, K6 и K9 — ровно то, что говорит объективный слой (P0b 0.632 против 0.895–1.000). То есть разрыв «контексты работают» судьи видят; его прятал наш собственный набор. Значит §B2.4 («разница судьями не обнаружена ⇒ дело в измерителе») неверен: дело было в айтемах, а не в измерителе.
Тем же дефектом объясняется и F3: на S5-转 и S5-春秋蝉 судья пометил катастрофой по шесть армов
сразу — потому что они несли одну строку. Один терм превращался в шесть «провалов арма». Отдельно
стоит признать: на 春秋蝉 он пометил катастрофой «Чуньцючань», то есть вынес тот же вердикт, что
и мы сами в §B1.4.
R3. У правила транскрипции НЕ БЫЛО контрольного арма (§B3.2, §B1.3–B1.5)
Правило «если термин — имя собственное, передавай его транскрипцией» лежит в BASE_TASK и потому
присутствует во всех шести армах, включая P0b и P1 (п.3 аудита, по сырью промптов). Поэтому:
- фраза «
春秋蝉→ Чуньцючань у ВСЕХ армов, где правило есть» неверна: правило есть везде, а канон «Весенне-осенняя цикада» выдал арм P0 — тот, у которого правил транскрипции БОЛЬШЕ всех (базовое + Палладий); - утверждение §B1.3 «армы с правилом транслитерируют вдвое чаще» неверно по атрибуции: разрыв 0.25/0.50 делит арм-группы по признаку «правильный жанровый словарь», а не «правило транскрипции», и P0 с правилом стоит в НИЖНЕЙ группе.
Наблюдение остаётся, причинность — нет. Правда: 5 армов из 6 транслитерировали 春秋蝉, 3 из 6 —
Silversaint; правило — правдоподобный механизм. Но арма БЕЗ правила в дизайне не было, значит это
гипотеза, а не измеренный эффект. Проверяется дёшево: седьмой арм = P2 минус строка правила,
~10 вызовов, ≈$0.02.
R4. «Три независимые улики» под §B3.2 не независимы — это ровно тот запрет «РОВНО ТАК»
Улика №3 (прокси на ловушке) НЕ независима от улики №1: на S5 из пяти термов варьируются три, а
весь разрыв P0 против P2/P3/P4 даёт один-единственный терм — 春秋蝉 (п.8 аудита: 时辰 и 转
у этих армов совпадают). То есть я посчитал одно наблюдение дважды и назвал это сходимостью —
именно тот паттерн, который промт запрещал («не собирать ложную сходимость», урок exp12/13).
R5. «Изданный перевод АСТ» — улика классом ниже, чем заявлено (§Z4.2, §B1.5)
На диске артефакта нет; единственный источник — сводка веб-поиска, а не тело издания и не страница издательства. В самой сводке стоит «AST/EKSMO publishers» (две разные издательские группы) и форма «**угодник-**среброносец», из которой в отчёт уехало «среброносец». Поэтому таблица §B1.5 «совпало с изданием — да/нет» держится на непроверенной строке, и класс улики надо понизить: «поисковая сводка, с телом издания не сверена». Для en-пары человеческого эталона у нас по-прежнему НЕТ — это возвращает en в тот же статус, что ja.
R6. Что перепроверку ПРОШЛО без единой правки
| проверено заново | результат |
|---|---|
| §B1.1 совпадение с подписью, независимый код | 12/19 · 19/19 · 18/19 · 18/19 · 17/19 · 17/19 — до строки |
| §B1.2 покрытие жанровым словарём | 0/80 на поданных 6 строках и 0/80 даже на полном словаре §Z4-Т (1/80 при добавлении 资质) ⇒ вывод и Z-B6 устояли |
| §B5 деньги | пересчёт из usage каждого вызова: $0.07791 + $0.01413 + $0.21827 = $0.31030, finish=stop везде |
| §Z4.3 Ngram | r(культивация, культиватор) = 0.9715, r(…, совершенствование) = −0.0704, 119.6×, пики 1938/1938, «мир совершенствующихся» = 0 — все до знака |
якоря фазы A по пину 996bade |
emissionEligible = miner_emit.go:241-252 ✓ · pipeline/mining.go:70-73 ✓ · miner_emit.go:129 ✓ · pipeline/mining.go:52-55 ✓ |
| свип нарезки фазы A | множество эмиссии побайтно одинаково на 800/2000/6000 (Жаккар 1.000) ✓ |
R7. Процессные дефекты записи (мелкие, но они мои)
- Объективный слой §B1 не имел кодового пути — считался разовыми heredoc-ами, тогда как §Z
обещает воспроизводимость цепочкой скриптов. Закрыто:
eval/pkg7/audit_phaseB.py. - Сырьё судей содержит только
id/prompt/response— безusage/finish_reason, вопреки формулировке §B0.4; usage у судей живёт только в леджереj*.json. - Восстановлено 5+5 вердиктов, а §B2 и §X п.9 называют только 5 (починены оба прогона
gpt-5-mini). - «480 консолидаций за 70 вызовов» (§B3.1 п.3) смешивает множества: 70 вызовов дали 560 консолидаций, из которых 80 (первый P4) выброшены.
- «Требования к generic-майнеру» — деливерабл фазы B по промту — в этом отчёте отсутствуют; фактура собрана в фазе A (§A3.3–A3.7), здесь от неё остался только Z-B6. Пробел записи, не работы.
R8. Что из выводов фазы B устояло, а что нужно перемерить
Устояло (стоит на объективном слое, перепроверено): контексты — главный рычаг (§B1.1); жанровый словарь инертен на классе термов, который даёт WHICH-канал (§B1.2, Z-B6); словарная справка помогает точечно и это ДАННЫЕ, а не сеть (§B4, Z-B4); словарь §Z4-Т и весь добор (§Z4).
Нужно перемерить: рекомендация по правилу транскрипции (нужен арм БЕЗ правила) и вопрос о пригодности слепой оценки (нужен набор БЕЗ вырожденных айтемов). Обе поправки дешёвые и обе меняют не деньги, а дизайн — отдельной сметой, если владелец санкционирует.
§X. Чего эта фаза НЕ покрывает
Ограничения дизайна, названные честно (часть — до трат, часть вскрылась исполнением):
- Каждый арм прогонялся ОДИН раз. Пре-регистрация повторов не предусматривала, поэтому разброс прогона от эффекта арма на отдельном терме не отделим. Все выводы опираются либо на агрегат (80 термов), либо на совпадение механизма в нескольких независимых точках — единичные примеры в отчёте помечены как иллюстрации, а не как доказательства.
- Глоссарный контраст не измерился по построению — 0 из 80 термов покрыты жанровым словарём (§B1.2). Гипотеза H1 («главный рычаг — пар-данные») на этой выборке проверке не поддалась. Чтобы её проверить, нужен набор ЖАНРОВЫХ термов, а такой набор сегодня не производится WHICH-каналом (recall
term= 0.040, фаза A). - Эталон только на 19 термах из 80, и все они zh. Для ja и en подписанного эталона нет; единственная человеческая точка — два терма из изданного перевода АСТ.
- Черновиков нет у S2–S4 — компонента «варианты черновиков» пуста на 45 термах из 80. Арм P1 там вырождается в «только KWIC».
- Справка для P4 только по zh. Вердикт §B4 по ja/en не проверен эмпирически, он перенесён по аналогии и это сказано.
- K2 не оценивался на S3/S4 — конвенции для ja/en у нас нет (решение §A5.3, принято до трат).
- Класс улики «тело лицензионного издания» остаётся недобранным, и планировавшийся путь (search-inside по ISBN) закрыт отрицательным результатом: всех трёх изданий в Google Books нет (
totalItems=0). Остались платный фрагмент ЛитРес и бумага — обе вне зоны сессии. Развилка Z2 по修炼этим НЕ снята. - Японский жанровый лексикон не добран. Один заход поиска подтвердил картину фазы A: публичных издательских решений по
ステータス/レベル/魔物/チート/称号/精霊/詠唱/属性/転移не находится. Строки остаются UNCLEAR. - 5 вердиктов первого судьи потерялись строгим разбором (модель отдала JSON с недостающей скобкой) и восстановлены офлайн из сохранённого сырья (
repair_judge.py), без повторных трат. Восстановленные строки помеченыrepaired: true. - Прокси «транслитерация» — именно прокси. Он считает долю dst, целиком отсутствующих в словаре русского; редкая, но словарная калька им не поймается, а удачный транслит, совпавший со словарным словом, — наоборот. Ячейки S5 малы (4–5 термов).
- Роль терминолога в коде не проектировалась — по прежнему запрету. Рекомендации §B3 — текст промпта и требования, не дизайн.
- Слепая оценка не дала ранжирования. ⚠ Причина исправлена ревизией (§B6 R1–R2): не «оценщики отбракованы» — контроль отбраковки был неизмерим, — а набор наполовину вырожден: у 35 термов из 80 все семь кандидатов были одной и той же строкой, и сравнивать было нечего. Ранжирование по-прежнему не выдаётся, но и вывод «армы неразличимы» из этих данных не следует.
- Гипотезы §S фазы A закрыты частично: H1 (рычаг = пар-данные) — не проверяема на этой выборке (§B1.2); H2 (орфографическая улика в ja) — не проверялась, для неё нужен эталон ja; H3 (жанровое = в ≥2 книгах) — не считалась; H4 (веб-справка помогает избирательно) — согласуется с единственным случаем
时辰, но n=1; H5 (разброс черновиков предсказывает трудность) — не считалась. - Вариативность выходов не закладывалась в дизайн набора. Пре-регистрация §A5 отбирала термы по классам и происхождению, но не требовала, чтобы армы на них РАСХОДИЛИСЬ. Следствие — п.12; для любого следующего замера это обязательное условие сборки, а не деталь.
§B5. Деньги — до цента
| статья | вызовов | вход, ток | выход, ток | USD |
|---|---|---|---|---|
| армы P0b/P0/P1/P2/P3 + первый P4 (60 вызовов) | 60 | 287 196 | 143 554 | 0.07791 |
| арм P4, пере-прогон с исправленной подачей справок | 10 | 66 219 | 25 944 | 0.01413 |
судья gpt-5-mini, прямой порядок |
80 | 81 240 | 10 891 | 0.04209 |
судья grok-4.3, прямой порядок |
80 | 88 747 | 9 365 | 0.13435 |
судья gpt-5-mini, обратный порядок (замер свопа) |
80 | 81 240 | 10 759 | 0.04183 |
| ИТОГО | 310 | 604 642 | 200 513 | $0.31030 |
- Смета до вызовов: $0.3397 (консолидация $0.0672 + судьи $0.0689 + $0.1347 + $0.0689). Факт $0.31030 — на 8.6% НИЖЕ сметы.
- Санкционированный коридор $1.20–2.60, потолок $2.60. Использовано 11.9% потолка. Стоп-условие не срабатывало ни разу.
- Ошибок вызовов — 0 из 310. Пустых консолидаций — 0 из 480.
- Брак, отчитанный честно: первый прогон арма P4 ($0.01 в составе $0.07791) оказался обесценен дефектом подачи и пере-прогнан за $0.01413. Итого на брак и его исправление ушло $0.024, и это не скрыто в сметах.
- Расход добора Z4 — $0 (curl, локальные клоны, веб-фетч харнесса).
Цены взяты из backend/configs/models.yaml (read-only): deepseek-v4-flash $0.14/$0.28, gpt-5-mini $0.25/$2.00, grok-4.3 $1.25/$2.50. Расход считается по фактическому usage каждого ответа с учётом cached_tokens.
§Z. Что на владельце и что предлагаю оркестратору
| # | Пункт | Основание |
|---|---|---|
| Z-B1 | Строка 修炼 остаётся неподписанной. V0 не снят: единственный планировавшийся путь к телу изданий закрыт отрицательным результатом (в Google Books изданий нет). Новые улики добора работают ПРОТИВ «культивации» (словарь её не знает; Ngram даёт сельхоз-омонимию r=0.97), но за «совершенствование» в жанровом регистре улик тоже не прибавилось |
§Z4.3, §Z4-Т |
| Z-B2 | ⚠ СНЯТО 26.07: жанровый словарь отменён владельцем как класс. Подписывать нечего; §Z4-Т переведена в справочную фактуру. Полигон согласен — наши же улики это и обосновали: V0 на центральной строке, ложная сходимость русских глоссариев, покрытие 0/80 | записка №10 |
| Z-B3 | ⚠ ПОНИЖЕНО ревизией до ГИПОТЕЗЫ. Правку §B3.2 (сузить правило транскрипции до антропонимов и топонимов) содержательно поддерживаю, но измеренным эффектом назвать нельзя: правило лежало во ВСЕХ шести армах, контрольного арма без него не было, а «три независимые улики» оказались одной (прокси на S5 = тот же терм 春秋蝉) плюс непроверенная поисковая сводка по Silversaint. Решение владельца: либо принять как редакторское суждение, либо санкционировать арм-контроль (~$0.02) |
§B6 R3–R5 |
| Z-B4 | Веб-фетч в v2 роли НЕ вводить — в силе. ⚠ Вторая половина («офлайн-словарь как пар-данные») СНЯТА самим полигоном 26.07: справка дала пользу в 1 случае из 80, а по решению об отмене жанрового слоя вводить ради этого пар-данные тем более не следует | §B4, записка №10 |
| Z-B5 | ⚠ ПЕРЕФОРМУЛИРОВАНО ревизией. Ранее предлагалось менять ИНСТРУМЕНТ (BWS негоден). Проверка показала обратное: инструмент не проверен, негоден был НАБОР — 35 термов из 80 состояли из семи одинаковых строк, и на 45 невырожденных судьи ставят P0b последним, согласно объективному слою. Менять надо не судью, а сборку набора: дедупликация кандидатов, уникальность эталона, отказ от айтемов без вариативности. Это дешевле полной замены методики | §B6 R1–R2 |
| Z-B7 | Отбраковка судей (§B2.3) СНЯТА. Их вердикты формально не дисквалифицированы: пре-регистрационный контроль оказался неизмерим (уникальной строки GOLD не было ни на одном терме). Ранжирование армов по BWS я по-прежнему НЕ выдаю — но по другой причине: набор наполовину состоял из вырожденных айтемов |
§B6 R1 |
| Z-B6 | ⚠ ПЕРЕФОРМУЛИРОВАНО 26.07: словаря не будет, но проблема осталась и стала острее. Recall эмиссии на классе term = 0.040 теперь связывающее ограничение: 修行 встречается в книге 326 раз и не получит соответствия НИОТКУДА, потому что emissionEligible пропускает только `name |
place |
Заявление = команда. Все прогоны воспроизводимы: eval/pkg7/build_termset.py → terminologist_arms.py → blind_judge.py → repair_judge.py → score_bws.py; сырьё каждого вызова (промпт, ответ, usage, finish_reason) сохранено целиком, цифры §B1 и §B5 пересчитываются из него без сети.