textmachine/docs/experiments/14-quality-empirics.md

390 lines
69 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Эксперимент 14. Эмпирика рычагов качества zh→ru (нарезка × ПРОМПТ + фронтир-диагностика + кривая нарезки)
<!-- ─────────────────────────────────────────────────────────────────────────
ОРКЕСТРАТОР — РЕВЬЮ-ШАПКА (D37, 12.07 №4). Отчёт был закоммичен инкрементально самой
сессией (6 коммитов) — отклонение от «сессии не коммитят, лендит оркестратор»; принято
как есть (историю не переписываю — git-правило), независимая верификация — пост-хок (ниже).
Полный разбор — PROGRESS §D37 + D-лог D37.
ВЕРДИКТ: **ACCEPT_WITH_FIXES** (ИНТЕРИМ пре-скрин, НЕ пилот Ф2.5). Лучший по дисциплине
полигон-прогон: сам поправил переобобщение партии 1, ДЕМОТИРОВАЛ собственного фаворита
A-2pass на верифицированной катастрофе, отказался менять дефолт. Независимая верификация
(7-агентный воркфлоу, span-уровень, refute-by-default, реплика сырья, $0) подтверждает
несущие ноги и ловит две пере-натяжки.
ПОДТВЕРЖДЕНО (ратифицировано):
- **Претензия 1 (абзацы) = рычаг ПРОМПТА/активации, НЕ модель.** F-base (gpt-5.4+текущий
промпт) рубит ХУЖЕ P0 (пересчёт 1.75 vs 1.95 spp) → сильная модель абзацы НЕ чинит;
дискурс-промпт реверстает у ВСЕХ семей. *(Точные mean_spp — макро-усреднение, метод-
зависимы; порядок и несущий клейм устойчивы. KPI/han/len — воспроизведены; G-disc-числа
СТЕЙЛ: 7.0/8.1 регенерены gemini-ретестом после расчёта KPI.)*
- **Дрейф разрядов 甲乙丙 = реальный читательский дефект** (span: ch9.1 В→Б, ch18.1 «цинское
качество», ch16.0; 2 внешние + владелец). **Владелец зафиксировал схему: кириллица «класс
А/Б/В/Г», развести с 转→«ранг», принудительная сверка** (D35.4в → приоритет).
- **НЕ A-2pass** (2-й пасс дрейфует): span-верифицировано — A-2pass сохранил дрейф черновика
人上之人→«среди людей» (иерархия), который ОДИНАРНЫЙ P0 ПОЧИНИЛ. Одинарный дискурс безопаснее.
- **Fidelity re-gate: класс D34.3 РЕАЛЕН** — ~56 подтверждённых редактор-инверсий смысла
(ch10.1 числа 10×-масштаб; ch9.1/ch15.1 ранг; ch13.1 валентность эмоции; ch16.0 иерархия+CJK-
утечка; ch18.1 грейд-мусор). Reflow-армам нужен omission/inversion-гард. **НО «13 катастроф»
ЗАВЫШЕНО** (10/13 — от kimi, ошибся 29/55 слотов + оверфлаг; ~7 флагов = judge-FP/минор, вкл.
ch11.0 — редактор его УЛУЧШИЛ, не испортил). Реальный хвост ≈56, не 13.
ХОЛД / ПОПРАВЛЕНО (НЕ ратифицировано):
- **Нога 2 (селективная эскалация смысл-риска на gpt-5.4) — НЕДО-МОЩНА.** Факт (glm/grok/
gemini инвертируют T1, только gpt-5.4 чинит) ВЕРИФИЦИРОВАН на двойном отрицании, НО на 1
конструкции + на фронтир-армах судил ОДИН судья (gpt-5-mini self-excluded → F-* судил только
kimi). §2.5 «ОБА судьи чистят фронтир» — НЕВЕРНО (одно-судейно). Дорогое routing-решение
требует БАТАРЕИ смысл-трапов (≥35 типов, ≥2 кросс-семейных судьи на фронтире) до коммита.
- **§2Б.3 «холистик-панель литерал-смещена → P0 не вернее» — ПЕРЕ-НАТЯЖКА, поправлено.** Панель
единогласно (ОБА судьи) ставит P0 вернее на ch17/18/19; T1-катастрофа, которой это
«опровергают», — в ch7 (ВНЕ ранг-выборки) = категориальная ошибка. Единственный IN-SAMPLE
спан (ch17.0 人上之人) ВЫГОРАЖИВАЕТ верность P0 (P0 верно, A-2pass инвертировал). На типовых
главах верность дешёвой модели В ПОРЯДКЕ (совпадает с чтением владельца); превосходство
F-disc по верности внутренне НЕ доказано. Не дисконтировать свою панель ради фронтира (мемо #2/#4).
- Деньги: пересчёт $8.67 (≈$8.5, в 2%); per-call капы ВСЕ соблюдены; Gemini €2.21 = 85%
крошечного бюджета (тугой). **«0 ошибок на 64 арм-вызовах» неточно** — 36 вызовов ошиблись+
билленулись (~$0.89, ~10%, в осн. kimi-таймауты), ретраены; вызовов 105, не 64.
СЛЕДУЮЩИЙ ПОЛИГОН-ШАГ (свежий промт): батарея смысл-трапов (больше конструкций, ≥2 фронтир-
судьи) для ноги 2 + ранжирование P1a (рекомендованный near-term конфиг) head-to-head против
F-disc — НИКОГДА не делалось (финалисты {P0, A-2pass, F-disc} исключили P1a). Под omission-гард.
───────────────────────────────────────────────────────────────────────────── -->
> **Статус:** полигон-сессия exp14 (D36, приоритет №1). Мандат — `docs/POLYGON_QUALITY_EMPIRICS_SESSION_PROMPT.md` + D35/D36. Пре-скрин планки «2 претензии владельца» (ИНТЕРИМ, D35 — НЕ пилот Ф2.5). Смену дефолта ратифицирует ОРКЕСТРАТОР (D-блоком) — не эта сессия.
> **Зона:** `eval/` + этот файл + секция PROGRESS «Полигон» + курация глоссария (вне git). Бэкенд не трогаю (2 живые сессии; `git status` перед касанием дерева; стейджинг не нужен — не коммичу код).
> **Артефакты:** сэмплы/выходы/сырьё судей — `/home/ubuntu/books/gu-zhenren/exp14/` (ВНЕ git; в доке — только числа и цитаты ≤15 слов). Каждый платный скрипт персистит usage/cost (D30.10). Полигонное Python-зеркало ↔ Go: при расхождении верить Go.
---
## 0. Онбординг-факты (контракт, на которых стоит дизайн)
- **Триггер (D35):** пере-прогон 25 глав связкой (draft `deepseek-v4-flash` `v1-reflow` → editor `glm-5` `v2-bilingual-reflow` + сид v2 + reflow + санитайзер) → вердикт владельца **«лучше (из-за сида), но крайне слабо художественно»**: (1) нет логической редактуры абзацев / конвенций РЯ; (2) места, где модель не понимает связей/смысла. Диагноз «Ф2-недострой + near-term рычаги, НЕ баг» верифицирован исполнением.
- **Ключевая невыжатая ось (D35.3):** exp04/12/13 крутили только МОДЕЛЬ в фикс-нарезке с уже-вшитым reflow-промптом. **exp14 крутит нарезку × ПРОМПТ.**
- **Вход-ресёрч (D36):** `research/18-quality-levers.md` (Claude, ACCEPT_WITH_FIXES) + `research/18-quality-levers-chatgpt.md` (ACCEPT). Скелет протокола — из ChatGPT §C; содержание дискурс-reflow-промпта (5 техник Ван Цуй) + COGS-модель — из Claude §C. §A обоих заморожены до чтения стека; вывод «потолок скорее в ОРГАНИЗАЦИИ (нарезка/промпт/контекст), не в сырой дешёвой модели» — гипотеза к ЗАМЕРУ, не факт.
- **Механизм-как-есть** (`backend/prompts/{translator,editor}.md`, `chunker.go`): по-чанково draft → по-чанково bilingual edit; каждый чанк в ИЗОЛЯЦИИ; единственная кросс-чанк-память — глоссарий. Обе reflow-инструкции ПРИСУТСТВУЮТ в промптах и практически ИНЕРТНЫ (замер: медиана 1 предл./нарратив-абзац, ниже §1.3).
- **Провайдер-квирки (`experiments/00-provider-quirks.md`, обязательно):** deepseek thinking ON ВСЕГДА (эхо-мина; `disabled`→эхо на плотном CJK); gemini слаг ТОЛЬКО `gemini-3.1-pro-preview`, mandatory thinking, `additive_total`-биллинг, `PROHIBITED_CONTENT` неконфигурируем; grok reasoning-ON = аддитивный биллинг, **grok на архаичной ch1 — эхо-риск D22.5 (исключён из ch1-армов)**; glm thinking `{type:disabled}`; gpt-5 — `max_completion_tokens`, без `temperature`, `reasoning_effort`.
- **Уроки судейского слоя (exp12/13, мемо `eval-aggregation-no-manufactured-convergence`):** ложная «сходимость» ловилась ДВАЖДЫ. Судьи span-цитирующие, reasoning-ON, стиль/верность РАЗДЕЛЬНО, кросс-семейно (author≠reviewer, self-family exclusion), ≥3 повтора со свапом, leave-one-judge-out, катастроф-скрин к ПОБЕДИТЕЛЮ тоже, per-call кап (НЕ group-level — exp13 переоврал +10%). НИКОГДА не гейтить художественность на BLEU/COMET (zh→ru инверсия WMT24).
- **Fidelity re-gate (D34.3, `rerun/FIDELITY_REGATE_HANDOFF.md`) — гоню ПАРАЛЛЕЛЬНО, независимо** (§3 ниже). Пере-прогон НЕ засчитан до пройденного re-gate.
- **Харнес-факты (реплика eval/):** call-ядро — `refusal_bench.call_provider` (`eval/refusal_bench.py:151`); usage→$ с тремя reasoning-режимами `subset`/`additive`/`additive_total` (`exp13_translate.py:106`, ветвление по `models.yaml reasoning:`); цены — `backend/configs/models.yaml` (единственный источник, `prices_checked 2026-07-10`); токенайзеры — `tokenizers.Tokenizer.from_file` (`glm-4.6`, `deepseek-v3.2` присутствуют; `deepseek-v4`/`kimi-k2` — БЕЗ `tokenizer.json`, использую `deepseek-v3.2` как прокси BPE-семейства); реконструкция инъекции — `retrieval_state.injected_ids` + `exp12_blocks.py` (боевой блок не персистится, детерминированно пересчитывается); блайнд — seeded-shuffle + отдельный ключ-файл (`exp13_monitor.py`).
---
## 1. ПРЕ-РЕГИСТРАЦИЯ (заморожена коммитом ДО первого платного вызова — D30.10)
Всё в §1 зафиксировано до генерации армов и оценки. Промпты армов ЗАМОРОЖЕНЫ — никакого промпт-инжиниринга по ходу (урок exp04: сломанная слепота однажды уже дала дефолт-редактора). Path-scoped коммит: только этот файл.
### 1.0. Материал
**Срез:** те же 25 глав пере-прогона (`rerun/records.json`, 57 чанков; `source`/`draft`/`final`/`disposition`/флаги). Char-длины (замер): `source` min/медиана/max = **8 / 1639 / 1812**; `final` = **0 / 5015 / 6184** (0 = 2 обнулённых чанка).
**Исключено (экспорт-баг D35.4a):** **ch5.0 и ch20.0** — единственные `edit_flag='sanitizer_defect'`, `final`-длина = 0 (финалы пусты, спутают оценку). Если нужен их текст — edit-выход из checkpoints store (тело цело, дефект = ведущий `###`). ch16 — единственный `escalated=1` (эхо-эскалация flash→pro, RESCUED).
**1.0.1. Trap-набор (Ступень I — ЛОВУШКИ, размечены ДО генерации).** Поля `тип`/`chapter.chunk`/`supporting_span`(zh)/опустимый_смысл`/`P0-наблюдение`/`гейт`. Обязательны 2 места владельца (T1/T2, воспроизведены оркестратором фактически; входят и в fidelity re-gate).
| ID | Тип | ch.chunk | supporting_span (zh, ≤15 слов) | допустимый_смысл | P0-наблюдение (пере-прогон) | Гейт-класс |
|---|---|---|---|---|---|---|
| **T1** | (c) внутри-чанк, **КАТАСТРОФА** | 7.0 | `古月族人没有一个不知道的` | все/каждый в роду Гуюэ ЗНАЛИ это предание (двойное отрицание = «нет ни одного, кто не знал») | «не знал в роду Гуюэ **ни один человек**» = НИКТО не знал — **инверсия полярности** (дефект в черновике, редактор НЕ починил) | любая инверсия участника/действия = дисквалиф. независимо от ранга |
| **T2** | (c) внутри-чанк + глава, chengyu | 8.0 (заглавие) + 8.1 | `物是人非` | контраст «вещи/места прежние — люди уже не те» (物是 «вещи те же» + 人非 «люди иные») | заглавие гл.8 и тело → «**Всё изменилось**» — сплющено, потерян контраст 物是 | потеря смыслового атома (половина идиомы) |
| **T3** | (a) абзацы (нарратив-слияние) | 10.0 | прогон подряд идущих однопредложенческих нарратив-строк (один непрерывный ход) | слить в ≤2 многопредложенческих русских абзаца | ~1:1 строка→абзац (43 строки → 43 абзаца; reflow добавил разделители, НЕ слил) | нельзя «побеждать» только МЕНЬШИМ числом абзацев |
| **T4** | (b) диалог-конвенция (**КОНТРОЛЬ/регресс-гард**) | 9.0 | обмен репликами 1:N (слова автора + реплики дядя/тётя/Фан Чжэн) | реплики с «—», слова автора в своём абзаце (Розенталь) | P0 в целом **КОРРЕКТНО** (диалог-тире работает; атрибуция на месте) | арм НЕ должен СЛОМАТЬ то, что P0 сделал верно |
| **T5** | (d) кросс-граница, **prev-supported** | 24.0→24.1 | 24.1 откр.: `这当然不是他的肌肤本色,而是一种铜皮蛊的效果` | «это [бронзовый цвет кожи наставника, описан в 24.0] — не природный, а эффект гу медной кожи» | chunk-изолированный редактор 24.1 не видит антецедент «这/他的» (в 24.0) | perturbation: correct-prev vs shuffled-prev не должен совпасть |
| **T6** | (d) кросс-граница, **prev-supported #2** | 11.0→11.1 | 11.1 откр.: `那隐藏在暗处的人马,见到沈翠这般出来` | «те, кто прятался в засаде [люди舅父/舅母, введены в 11.0], увидев так вышедшую Шэнь Цуй…» | «那…人马» без введения в изолированном 11.1 | perturbation (как T5); prev-support робастность |
**Оговорка (честная):** чистого **next-supported / катафора**-трапа в раннем срезе (гл.225, ранняя арка деревни) не нашлось дёшево — кросс-граница здесь prev-доминирована (T5/T6). Next/chapter-support факторизуется частично: T2 несёт chapter-supported измерение (полный вес 物是人非 раскрывается сменой отношений братьев по главе), gl.7-легенда (T1) полно рассказана в гл.13. Ограничение логирую; ±1-абляция next-плеча всё равно гонится (может не дать лифта на этих трапах — это валидный результат).
**1.0.2. Главы для Ступени II (слепое чтение владельца — 3 чистые главы разной диалого-плотности).** Отбор детерминированной формулой (как exp12 §1.1: `D` = доля символов внутри «“…”» от не-пробельных; high/mid/low), из **чистых** глав (все чанки `disposition=ok`, `postcheck_miss=0`, `style_flags=0`, 0 flagged/escalated), исключая **ch1 (архаика), ch5, ch20**. Заморожены:
| Регистр | Глава | `D` (замер) | реализованный характер | чанков |
|---|---|---|---|---|
| нарратив/низкий диалог | **гл. 19** | 0.061 | почти без прямой речи | 2 |
| смешанный (медиана) | **гл. 17** | 0.246 | нарратив + диалог | 2 |
| диалого-плотный (high) | **гл. 18** | 0.440 | самая чистая высоко-диалоговая глава | 3 |
`D` — детерминированно (`exp14_material.py dialogue_D`, доля символов в «“…”»), $0 до генерации; при равенстве — меньший номер главы. Гл.9/12 плотнее по диалогу, но несут по 1 минорному `postcheck_miss`/`style_flag` → взяты чистые.
**1.0.3. Trap-чанки (Ступень I — все армы гоняются на этом объединении):** {7.0, 8.0, 8.1, 9.0, 10.0, 11.0, 11.1, 24.0, 24.1} = **9 чанков** (T5/T6 требуют обоих чанков главы для кросс-граничной опоры).
**1.0.4. Реконструкция глоссарий-инъекции (rig-фиделити, как exp12 A1).** Боевой блок инъекции НЕ персистится — детерминированная функция (сид v2 + нормализованный чанк). Воспроизвожу из `retrieval_state.injected_ids` (JSON-массив композит-ключей `src\x1fsense\x1fsince\x1funtil`) приёмочного store + `guzhenren-seed-v2.yaml` (57 терминов, 47 approved/10 draft, `status` гейтит):
- **Editor-блок** (`renderEditorConstraintBlock`): заголовок «КАНОНИЧЕСКИЕ ПЕРЕВОДЫ имён и терминов (…приводи к ним любые расхождения, склоняя по контексту…):», далее `- «dst»` (dst-only, CONFIRMED/approved-only, dedup по dst).
- **Translator-блок** (`renderGlossaryBlock`): заголовок «ГЛОССАРИЙ (…):», далее `src → dst`, ambiguous → суффикс `⟨проверить⟩`.
- Layout: `system(стабильный префикс, CacheBoundary) → system(инъекция) → user` (`render.go:174 MessagesWithInjection`). Верификация: реконструированный `injected_ids` побайтно = store per-chunk. Sticky-инерция (n_sticky) — union chunk0chunk1 внутри главы (как exp12).
### 1.1. Армы — ось НАРЕЗКА × ПРОМПТ (полный 2×2 — мандат D36) + аблации
Прямые вызовы, ручная упаковка (НЕ через прод-пайплайн). Дешёвый прод-микс (draft `deepseek-v4-flash` thinking-ON @temp 0.3 → editor `glm-5` билингв @temp 0.4, thinking-disabled) — якорь. Brief-vars из `rerun/book.yaml`: source_lang=zh, target_lang=ru, genre=вебновелла, audience=взрослые читатели вебновелл, title=蛊真人, honorifics=keep, transcription=palladius, **venuti=0.6**, footnotes=minimal. floor `max_tokens`=8000 (D24.3). Черновик держу общим для editor-армов (варьируем editor-стадию), кроме армов, где нарезка/промпт меняет и черновик.
| Арм | Нарезка | Промпт (editor) | Черновик | Смысл | Источник/цена |
|---|---|---|---|---|---|
| **P0 baseline** | чанк (прод 1.5k) | ТЕКУЩИЙ прод `v2-bilingual-reflow` | flash `v1-reflow` | Нулевая точка обеих претензий (= пере-прогон на trap-наборе) | **`records.json` reuse, $0** (rig-фиделити A1) |
| **P1a** | чанк | **сильный дискурс-reflow** (§1.2) | тот же flash-draft | Промпт-рычаг при фикс-нарезке | glm-5 live |
| **P1b** | **глава целиком** | ТЕКУЩИЙ прод | flash-draft главы (склеен) | ⚠ ячейка, которую НИ ОДИН отчёт не крутил — «бо́льшая единица САМА помогает без нового промпта?» | glm-5 live |
| **P1c** | глава целиком | сильный дискурс-reflow | flash-draft главы | Верхняя near-term точка нарезка+промпт | glm-5 live |
Аблации (на базе P1a, чанк-нарезка; ChatGPT §C2):
- **A-layout — draft-layout ablation:** перед editor заменить пустые строки/построчную разбивку draft на нейтральные сепараторы ИЛИ пронумерованные смысловые атомы (финал удаляет ID) → изолирует ЯКОРЕНИЕ редактора на форме черновика. Победа = дешёвый ПРОД-МИНОР (не менять нарезку).
- **A-2pass — semantic-first vs combined:** один combined-editor (=P1a) против двух узких пассов (билингв семантика-репэйр → target-only литературный reflow) под ОДНИМ coverage-гейтом → снимает конкуренцию мандатов; замерить реальный output-множитель (≤~2× editor-output).
- **A-ref-prev / A-ref-next / A-ref-both — ±1 reference-контекст:** пред-source+пред-target хвост / след-source-абзац до границы сцены / оба, явно `REFERENCE — НЕ ПЕРЕВОДИТЬ`. **Три РАЗДЕЛЬНЫЕ абляции** (не сливать). Цель — кросс-граница (T5/T6), нулевые подлежащие, катафора. Только на чанках с кросс-граничными трапами (11.*, 24.*).
### 1.2. Сильный дискурс-reflow промпт — ЭТО АРМ ДЛЯ ЗАМЕРА (не «оптимальный промпт»)
Ядро (Claude §C1#1 + ChatGPT §C3; содержание zh→ru — из Ван Цуй, Вестник МГУ Сер.22, прескрипция ТЕХНИКИ; норму держат Розенталь/Правила-1956). Добавляется к editor.md-мандату (не заменяет сверку смысла/полноту/глоссарий):
1. Молча определи смысловые ходы: единый фокал/наблюдатель; действие + непосредственная реакция; одна тема рассуждения; смена говорящего/времени/места/фокала.
2. Один повествовательный ход — обычно один русский абзац, ДАЖЕ если китайский разбит на однофразовые строки (паратаксис→гипотаксис). Инструмент слияния — **причастные/деепричастные обороты + подчинительные союзы/связки** (5 техник Ван Цуй: иерархия → сегментация по смыслу → маркировка вида/времени предиката → варьирование лексики → добавление связок). Не сливать ТОЛЬКО ради длины.
3. Каждая реплика — с нового абзаца через тире; слова автора при той же реплике — в её абзаце (Розенталь).
4. Разрешено объединять/делить русские предложения; ЗАПРЕЩЕНО терять смысловые атомы (число предложений/абзацев совпадать не обязано).
5. `REFERENCE`-блоки — только для разрешения связей; не переводить/не пересказывать в выходе.
Few-shot — минимальные, ортогональные: narrative N:1, dialogue 1:N, focal-shift boundary (target-side русский якорь, ≤3). **Для DeepSeek-thinking (если гоню его переводчиком/редактором с дискурс-промптом) — сначала zero-shot против few-shot** (модель-специфика research/15; не переносить между моделями); ручной verbose CoT reasoning-модели НЕ добавлять. Точный текст промпта и few-shot — в `eval/exp14/exp14_prompts.py`, sha256 фиксируется в §2 при заморозке армов.
### 1.3. Фронтир-арм — ДИАГНОСТИКА потолка (capability-vs-activation)
**2×2 (первичный):** держу ЧЕРНОВИК константным (дешёвый flash-draft, общий), варьирую EDITOR × промпт:
| | baseline-промпт | дискурс-промпт |
|---|---|---|
| **дешёвая** (glm-5) | = P0 (reuse $0) | = P1a |
| **фронтир** (gpt-5.4) | F-base | F-disc |
Разводит: фронтир верстает/чинит, дешёвая нет → **gap способности**; ни та ни другая → недоспецифицированный промпт; краткое правило/пример чинит дешёвую → **активация**. Плюс **спот-чек фронтир-как-ПЕРЕВОДЧИК** на T1/T2 (2 fidelity-трапа): избегает ли сильный ЧЕРНОВИК инверсии gl.7 в принципе (потолок на translate-стадии vs edit-стадии).
**Фронтир (слаги live-фактчекнуты 2026-07-11, /models):** **gpt-5.4** — ОСНОВНОЙ (OpenAI ~$9; standard-тир, не pro); **gemini-3.1-pro-preview** — ЭКОНОМНО, преим. кросс-семейный мета-ревьюер (остаток €2.6, output $12/M+thinking = быстро сгорит); **grok-4.3** — доп, но **НЕ на архаичной ch1** (D22.5, эхо-риск) — в exp14 ch1 и так исключена; **НЕ Claude/Opus** (нет ключа). Мета-ревьюер — **self-family exclusion** (если Gemini переводил/редактировал — мета-ревьюер GPT, и наоборот; span-цитаты: где ломается смысл + какой механизм чинит).
**Гарды:** эхо/refusal-скрин на ВСЕХ выходах; **per-call predicted-cost кап ДО вызова** (НЕ group-level); пре-регистрация армов заморожена коммитом.
### 1.4. Кривая размер-чанка ↔ качество ↔ биллинг ↔ ретраи
- Размеры **0.75k / 1.5k / 3k / глава** × **две политики границ** (жадная упаковка | сцен/дискурс-граница) при сопоставимом бюджете (иначе размер спутается с качеством границ).
- **Бюджет чанка — в ВЫХОДНЫХ токенах на реальном токенизаторе** (кириллица-фертильность ~22.5×, Petrov NeurIPS 2023; `glm-4.6`/`deepseek-v3.2` токенайзеры). Оптимизировать на **retry-adjusted output-cost**; связность давать кэшированным carryover, НЕ размером единицы.
- **Cache-ordering:** статику (system+glossary) ПЕРВОЙ, volatile (running summary/reference) ПОСЛЕ — иначе кэш бьётся.
- Снимать (пре-рег): in/out/**reasoning**-токены, латентность, **retry-rate ПО ПРИЧИНАМ** (timeout/refusal/length/echo/sanitizer/decode — РАЗДЕЛЬНО), **доля ПОВТОРНО ОПЛАЧЕННЫХ токенов** (не только retry-rate — урон одного крупного сбоя), coverage, слепое предпочтение, KPI-абзацы, trap-теги.
### 1.5. Метрики и гейты — ПРЕ-РЕГИСТРИРОВАНЫ (C4 ChatGPT + §C10 Claude)
| Ось | Первичный показатель | Аварийный гейт |
|---|---|---|
| Претензия 1 (абзацы) | **детерминированный структурный KPI БЕЗ судьи**: распределение предложений/нарратив-абзац (P0-baseline замер `exp14_material.py`: **медиана 1.0, среднее 1.701, доля 1-предл. абзацев 0.579**, n=1378 нарратив-абзацев/55 чанков) + слепое чтение | нельзя «побеждать» только МЕНЬШИМ числом абзацев (парно с atom-coverage) |
| Претензия 2 внутри-чанк | билингв span-цитирующая trap-accuracy (обязательный `supporting_span`) на T1/T2 | любая инверсия действия/участника (T1) = КАТАСТРОФА независимо от среднего ранга |
| Претензия 2 кросс-граница | accuracy РАЗДЕЛЬНО prev-/next-/chapter-supported (T5/T6 prev) | **perturbation:** correct-context vs random/shuffled НЕ должен дать тот же результат (иначе контекст не используется — Mohammed&Niculae) |
| Полнота | покрытие смысловых АТОМОВ (не совпадение числа предложений) | пропуск заголовка/события дисквалифицирует арм на фрагменте |
| Операционность | `$`, in/out/reasoning-токены, латентность, retry-по-причинам, **повторно-оплаченные токены** | per-call predicted-cost кап; НЕ group-level |
| Робастность | leave-one-judge-out + отдельный катастроф-скрин | коррелированные колонки одного судьи ≠ независимые сигналы |
**НИКОГДА не гейтить художественность/связность на BLEU/COMET** (zh→ru инверсия WMT24). Судьи: span-цитирующие, reasoning-ON, верность/стиль РАЗДЕЛЬНО, кросс-семейно (self-family exclusion), ≥3 повтора со свапом, parse-чек полноты ранжирования. Судьи-модели: `gemini-3.1-pro-preview`, `gpt-5-mini`, `kimi-k2.6` (кросс-семейно к переводившим glm-5/deepseek/gpt-5.4/mistral — семья судьи ≠ семья арма для каждого трапа).
### 1.6. Заморожённая таблица моделей/цен (единый источник `models.yaml`; фронтир — live-фактчек 2026-07-11)
| модель | in $/1M | out $/1M | cached-in | reasoning-режим | роль в exp14 |
|---|---|---|---|---|---|
| deepseek-v4-flash | 0.14 | 0.28 | 0.0028 | subset (thinking ON) | черновик (общий) |
| deepseek-v4-pro | 0.435 | 0.87 | 0.003625 | subset | эскалация черновика |
| glm-5 | 1.0 | 3.2 | 0.2 | subset (thinking disabled) | editor (дешёвый прод-якорь) |
| grok-4.3 | 1.25 | 2.50 | 1.25 | additive (reasoning-ON) | доп-фронтир (НЕ ch1) |
| gemini-3.1-pro-preview | 2.0 | 12.0 | 0.20 | additive_total (mandatory) | судья / кросс-семейный мета-ревьюер (экономно) |
| gpt-5-mini | 0.25 | 2.0 | 0.025 | subset | судья (second-opinion) |
| **gpt-5.4** | **2.50** | **15.0** | **0.25** | subset (reasoning⊆completion) | **ОСНОВНОЙ фронтир** (live 2026-07-11: `gpt-5.4-2026-03-05`; pricing developers.openai.com — gpt-5.5/5.6=$5/$30, 5.5-pro=$30/$180 → дорого, взят 5.4) |
| kimi-k2.6 | 0.95 | 4.0 | 0.16 | subset (temp=1, floor 16k) | судья |
| mistral-large-2512 | 0.5 | 1.5 | 0.5 | subset (не reasoning) | доп-фронтир/канал-B справка |
usage→$: `(in·pin + (comp + reason)·pout)/1e6`; `reason`= из `completion` (subset), отдельного поля (additive/grok), либо `totalpromptcompletion` (additive_total/gemini). Fallback-якорь неизвестной модели — цена `deepseek-v4-flash` (никогда $0).
### 1.7. Бюджет по ключам + per-call кап (обязателен ДО каждого платного вызова — exp13 +10%)
Бюджеты владельца (D36.1): OpenAI ~$9, Gemini ~€2.6 (крошечный — беречь), DeepSeek/ZAI/Kimi/xAI/Mistral ~$9 каждый. Отдельный owner-`ceiling` не нужен — работаю в остатках. Заканчивается ключ → останавливаюсь на нём, не блокирую остальные армы. Near-term дешёвые армы — ПЕРВЫМИ; фронтир GPT — основная фронтир-статья; Gemini — точечно.
**Оценка трат (замерю точно; предельные, не group-cap):**
- ZAI (glm-5 editor-армы): P1a/P1b/P1c + 5 аблаций + Stage-II + кривая ≈ ~$0.0150.02/чанк-edit; ~$1.52.5 суммарно (кап на вызов **$0.08**).
- DeepSeek (flash re-drafts для нарезки/главы): ~$0.001/чанк; <$0.3 (кап **$0.03**).
- OpenAI (gpt-5.4 фронтир 2×2 + translate-спот-чек): ~11 чанков × 2 cells + 4 спот ≈ ~$2 (кап на вызов **$0.40**).
- Gemini (судья/мета-ревьюер, output $12/M): держать <$1 экв. (кап **$0.30**); ре-джадж на gpt-5-mini/kimi если жжётся.
- Kimi/OpenAI-mini/… (судьи): ~$12 суммарно (кап **$0.20**).
- xAI (grok доп-фронтир, опц.): ≤$1 (кап **$0.40**), НЕ ch1.
- **Итог-цель ≈ $58 суммарно, глубоко в остатках.** Финальная сумма по ключам — в §2.
`predict_cost(model, in_est, max_out)` = `in_est·pin + max_out·pout` (in_est из токенайзера/char-эвристики; max_out = потолок `max_tokens`); отказ ДО вызова, если > кап модели. Каждый вызов персистит usage/cost в append-only JSONL немедленно (не батчить), running `spent` per-key.
### 1.8. Дерево решений (пре-рег, ChatGPT §C5)
- **P1a закрывает абзацы БЕЗ падения fidelity** → катить дискурс-промпт, размер НЕ менять.
- **Помогает только A-layout** → строить deformat/atom-rendering, не chapter-editor.
- **±1 reference (A-ref-*) закрывает большинство кросс-граничных traps** → строить малое context-window до Ф2-памяти.
- **Нужна chapter-card, но whole-chapter НЕ лучше** → Ф2 state-extraction.
- **Whole-chapter (P1b/c) выигрывает по fidelity И абзацам И retry-adjusted COGS** → проектировать per-stage гранулярность (повторить на длинной главе).
- **Фронтир выигрывает ОБЕ ячейки 2×2, организация почти не помогает** → **model floor** (не строить сложную память ради слабой модели).
- **Организация помогает ОБЕИМ, фронтир+организация даёт доп-лифт** → развести near-term context-fix и премиум-тир.
### 1.9. Гарды сессии
Слепота свята; пре-рег заморожен после коммита (промпты армов — sha256 в §2); аномалии провайдеров → вендор-дока + `/models` (не гадать); `.env` не читать; тексты книги в git-доки не тащить (≤15 слов); 18+ регистров в раннем срезе нет (перенос на 18+ — отдельная проба D22/exp10-11). Методика-guard (мемо `eval-aggregation`): fidelity-first агрегация, leave-one-out по судьям, катастроф-скрин к ПОБЕДИТЕЛЮ тоже, независимость сигналов до агрегации, ось решения (near-term-достаточность vs потолок-моделей). Git-координация: `git status` + опознание чужого перед касанием дерева; чужое не трогать; никаких reset/rebase/checkpoint-перезаписей.
---
## 2. Результаты (пост-freeze; ПАРТИЯ 1 — near-term армы + фронтир 2×2, на trap-наборе)
> **Статус партии 1:** прогнаны P0/P1a/P1b/P1c + аблации (A-layout/A-2pass/A-ref-prev/A-ref-both) + фронтир 2×2 (F-base/F-disc, gpt-5.4) на 9 trap-чанках. **0 ошибок на 64 арм-вызовах.** Трата: ARM ZAI $0.43 + OpenAI $1.34 = **$1.77**; trap-судьи (gpt-5-mini $0.03 + kimi $0.46) = **$0.50**; итого ≈ **$2.27** (глубоко в остатках). Медиана латентности: glm-5 35с, gpt-5.4 37с.
> **ПАРТИЯ 2 (не в этой партии):** кривая нарезки, слепые пакеты Ступени II владельцу, полная ранжирующая панель ≥3 повтора + leave-one-out, fidelity re-gate, 3 финалиста, хендофф оркестратору.
> **Заморожённые промпты армов (sha256[:16]):** editor_baseline `ca03a921df5db728` · editor_discourse `b3b4f6042e8c5673` · discourse_core `ec86a5623e3c6f02` · fewshot `d8f204cc4550ee99` · translator `a8298f725a3b2844`. **Stage-II `D`:** гл.19=0.061 / гл.17=0.246 / гл.18=0.440.
### 2.1. Претензия 1 (абзацы) — детерминированный структурный KPI (trap-набор, 9 чанков)
| Арм | нарезка×промпт | mean предл./нарратив-абзац | доля 1-предл. | CJK-утечка | len/P0 | gloss |
|---|---|---|---|---|---|---|
| **P0** | чанк × прод-baseline (glm-5) | 1.91 | 0.472 | 2 | 1.00 | 0.94 |
| **P1a** | чанк × дискурс (glm-5) | 2.61 | 0.318 | 2 | 0.99 | 0.93 |
| **A-2pass** | чанк × семантика→target-reflow (glm-5) | **3.33** | **0.187** | 2 | 0.99 | 0.93 |
| **A-layout** | чанк × дискурс + deformat-draft (glm-5) | 3.13 | 0.215 | **39 ⚠** | 1.00 | 0.93 |
| **A-ref-prev** | чанк × дискурс + ±1 prev (glm-5, 2 чанка) | 2.75 | 0.196 | 0 | 1.00 | 0.85 |
| **F-base** | чанк × прод-baseline (**gpt-5.4**) | **1.58** | **0.584** | 0 | 1.03 | 0.93 |
| **F-disc** | чанк × дискурс (**gpt-5.4**) | 2.45 | 0.369 | 0 | 1.02 | 0.93 |
**Вывод П1 — абзацы = ПРОМПТ/ПАЙПЛАЙН-рычаг, МОДЕЛЬ-агностичный:**
- Дискурс-промпт двигает распределение к русской норме на ОБЕИХ моделях (P1a 2.61, F-disc 2.45 vs baseline ~1.61.9). **Фронтир с ТЕКУЩИМ промптом (F-base 1.58) — ХУЖЕ дешёвого baseline (P0 1.91):** сильная модель зеркалит построчность черновика ещё вернее — «сильнее модель» само по себе абзацы НЕ чинит.
- **Сильнейший near-term рычаг П1 — A-2pass** (билингв семантика → отдельный target-only литературный reflow-пасс): mean 3.33, доля-1-предл. 0.187, БЕЗ коллапса длины (len/P0 0.99) и БЕЗ CJK-утечки. Подтверждает DocRepair-класс (отдельный монолингв. RU reflow-пасс) на дешёвой модели. Цена — ~2× editor-output (замерено: 18 вызовов на 9 чанков).
- **A-layout (deformat черновика) — НЕ чистая победа:** улучшает абзацы (3.13), но **CJK-утечка 39 симв. (×20 vs baseline)** — снятие построчной формы у glm-5 провоцирует эхо-осколки исходника. Регресс-гард сработал (детерм. KPI поймал). Deformat на дешёвой модели требует CJK-пост-гарда — не катить as-is.
### 2.2. Претензия 2 внутри-чанк (T1/T2) — capability floor
**T1 (gl.7 `古月族人没有一个不知道的`, двойное отрицание = «все знали») — КАТАСТРОФА-класс, детерм. читаемо:**
| Арм | рендер | вердикт |
|---|---|---|
| P0 (glm base) | «не знал в роду Гуюэ ни один человек» | ✗ ИНВЕРСИЯ (никто) |
| P1a (glm disc) | «в роду Гуюэ не знал ни один человек» | ✗ ИНВЕРСИЯ (промпт НЕ починил) |
| F-base (gpt-5.4 base) | «не знал разве что мёртвый» | ✓ ВЕРНО (все знали) |
| F-disc (gpt-5.4 disc) | «не было ни одного, кто бы его не знал» | ✓ ВЕРНО |
**Дешёвая модель инвертирует полярность НЕЗАВИСИМО от промпта; фронтир чинит НЕЗАВИСИМО от промпта → это МОДЕЛЬ-потолок, не активация.** T2 (`物是人非` chengyu): P0/P1a сплющивают («всё изменилось»); F-base улучшает («стало совсем не тем, что прежде» — восстанавливает 人非-контраст). Тот же знак: фронтир-редактор ловит смысловой дефект черновика, дешёвый — нет.
### 2.3. Претензия 2 кросс-граница (T5/T6) — слабые трапы в этом срезе
- **T5 (ch24.1 `这…铜皮蛊`): все армы рендерят локально-когерентно** («это не природный цвет кожи, а эффект гу Медной кожи») — предложение самодостаточно, chunk-изоляция его НЕ ломает. **A-ref-prev дал БАЙТ-идентичный P1a выход** (prev-контекст ничего не изменил — чинить было нечего).
- **P1c (глава целиком) на T5 — единственный, кто ЯВНО связал антецедент:** «Как у этого наставника: вся его кожа бронзового цвета» — склеив 24.0+24.1, редактор соединил «этого наставника» ↔ бронзовую кожу (chunk-изолированные оставляют висячее «его»). Один датапоинт: **whole-chapter даёт кросс-граничный лифт связывания**, но на этом срезе кросс-граница — НЕ доминирующий сбой (в отличие от within-chunk T1).
- Честно (пре-рег-оговорка): next-supported/катафора-трапа в раннем срезе нет; вывод по кросс-границе — предварительный (2 prev-трапа, локально самодостаточные).
### 2.4. Capability-vs-activation — прямой ответ на вопрос владельца
**Потолок РАСЩЕПЛЁН по двум претензиям — не «модели ИЛИ организация», а «каждая претензия — своё»:**
| Претензия владельца | Где потолок | Доказательство (партия 1) | Near-term ход |
|---|---|---|---|
| **(1) абзацы / конвенции РЯ** | **наша ПРОМПТ/ПАЙПЛАЙН** (активация) | дискурс-промпт двигает KPI на обеих моделях; F-base (фронтир+старый промпт) ХУЖЕ P0; A-2pass (дешёвый 2-пасс) — лучший (3.33) | катить дискурс-промпт + отдельный target-only reflow-пасс на ДЕШЁВОЙ модели |
| **(2) понимание связей внутри-чанк** | **дешёвая МОДЕЛЬ** (capability) | T1 инверсия: glm-5 фейлит обе промпт-версии, gpt-5.4 чинит обе; T2 то же | селективная фронтир-эскалация редактора на смысл-риск ИЛИ фронтир-редактор; промпт НЕ закрывает |
| **(2) связи кросс-граница** | не доминирует в срезе; whole-chapter даёт лифт | A-ref null (локально самодостаточно); P1c связал антецедент | НЕ строить сложную Ф2-память под слабый сигнал; whole-chapter/edit=глава — кандидат под ROI |
### 2.5. Судейская корроборация (trap-accuracy, кросс-семейно) — ЗАВЕРШЕНА
Панель **gpt-5-mini + kimi-k2.6**, span-цитаты, self-family exclusion (F-* армы OpenAI → судит только kimi; gpt-5-mini исключён). 50 вызовов, ~$0.50 (OpenAI $0.03 + Kimi $0.46). Свод (✓ correct / ~ partial / ✗ wrong):
| Трап | P0 | P1a | A-2pass | A-layout | F-base | F-disc | Читается |
|---|---|---|---|---|---|---|---|
| **T1** (двойн. отриц., КАТАСТРОФА) | ✗✗ **кат** | ✗✗ **кат** | ✗✗ **кат** | ✗✗ **кат** | ✓ | ✓ | **ОБА судьи флагают КАТАСТРОФУ на ВСЕХ дешёвых армах; ОБА чистят фронтир** → model floor корроборирован независимо |
| **T2** (物是人非 тело) | ~~ | ~~ | — | ~✗ | ~ | ~ | дешёвый = partial, фронтир не хуже; A-layout ✗ у kimi (CJK-порча) |
| **T2b** (物是人非 заглавие) | ~~ | ~~ | — | ~~ | ✓ | ✓ | **фронтир чинит заглавие-chengyu, дешёвый — partial** |
| **T5** (кросс-гр. prev) | ✓✓ | ✓✓ | — | ✓~ | ✓ | ✓ | ✓ у ВСЕХ → трап локально самодостаточен (не дифференцирует) |
| **T6** (кросс-гр. prev #2) | ~✗ | ~~ | — | ~✓ | ✗ | ~ | шумно, без чистого паттерна → кросс-граница неинформативна в срезе |
| **T4** (диалог-КОНТРОЛЬ) | ✓✓ | ✓✓ | — | ✓✓ | ✓ | (ERR) | диалог-оформление сохранено ВЕЗДЕ → армы НЕ ломают контроль |
**Корроборация (методика-guard, НЕ ложная сходимость):** судьи ЕДИНОГЛАСНЫ там, где сигнал резкий (T1-катастрофа на 4 дешёвых армах 2/2 судьи + оба чистят фронтир; T4-контроль сохранён) и ЧЕСТНО РАСХОДЯТСЯ на тонком (T2 partial, T6 шум). Leave-one-judge-out на T1: любой из 2 судей в одиночку держит ✗+катастрофу на дешёвых. **T1-вывод стоит на ДЕТЕРМ. полярности И независимой кросс-семейной панели** — не на среднем ранге. Судейская панель ПОДТВЕРЖДАЕТ §2.4: претензия-2-внутри-чанк = capability floor; кросс-граница (T5/T6) в срезе не дифференцирует.
### 2.6. Дерево решений — резолюция партии 1
- **P1a закрывает абзацы БЕЗ падения длины/атомов** ✓ → **катить дискурс-промпт, размер НЕ менять** (ветка 1 подтверждена). **Сильнее — A-2pass** (target-only reflow-пасс) — рекомендация near-term №1 по П1.
- **A-layout (deformat) улучшает абзацы, НО CJK-утечка** → deformat/atom-rendering строить ТОЛЬКО с CJK-пост-гардом (иначе регресс).
- **±1 reference НЕ дал лифта** (трапы локально самодостаточны) → малое context-window до Ф2 под этот срез НЕ обосновано; пере-проверить, когда/если появятся next-supported/катафора-кейсы.
- **Whole-chapter (P1c) дал кросс-граничный лифт связывания (1 датапоинт) но НЕ выиграл абзацы у A-2pass** → chapter state-extraction — кандидат под ROI, НЕ near-term приоритет.
- **Фронтир чинит within-chunk смысл, организация — нет (T1)** → **model floor на претензии 2-внутри-чанк**: дешёвый трек её НЕ дотянет промптом; ход — селективная фронтир-эскалация редактора по смысл-риску (не тотальный фронтир — F-base абзацы даже портит).
### 2.7. Предварительная near-term рекомендация (на ратификацию оркестратора — НЕ смена дефолта этой сессией)
1. **Претензия 1 (абзацы):** внедрить **дискурс-reflow-контент (Ван Цуй 5 техник + Розенталь) в editor-промпт** — дёшево, модель-агностично, доказанный лифт (P1a); рассмотреть **отдельный target-only reflow-пасс** (A-2pass, лучший KPI) под COGS-замер (~2× editor-output — оценить на полной книге).
2. **Претензия 2 (смысл внутри-чанк):** промпт НЕ закрывает на дешёвой модели → **селективная фронтир-эскалация редактора по смысл-риску** (двойное отрицание/chengyu/инверсия черновика) — точечно, не тотально (тотальный фронтир портит абзацы и жжёт COGS). Квантификация — fidelity re-gate (§3) + партия 2.
3. **CJK-гард обязателен** при любом deformat-черновике (A-layout урок).
4. **НЕ строить** сложную Ф2-кросс-чанк-память под этот срез (сигнал слабый); whole-chapter/edit=глава — держать кандидатом под доказанный ROI.
**Оговорки партии 1 (пересмотрены партией 2):** T1-вывод «capability floor» партии 1 стоял на 1 фронтир-модели (gpt-5.4) → партия 2 (3 семьи) его УТОЧНИЛА (см. §2Б.1 — floor model-SPECIFIC, не общий). Прочее: срез PD-смежный без 18+; ИНТЕРИМ пре-скрин (D35), не пилот Ф2.5.
---
## 2Б. ПАРТИЯ 2 — 3-семейный фронтир + fidelity re-gate + ранжирование финалистов + кривая нарезки
> Трата партии 2: Gemini $2.39 (≈€2.21, вкл. прицельный ре-тест T1/T2 — в лимите €2.3), Kimi +$2.7, OpenAI +$0.9, ZAI +$0.14, XAI $0.15, DeepSeek $0.02. **Итог обеих партий ≈ $8.5** across 6 ключей (каждый под лимитом). grok-4.5 — региональный лок (`403 not available in your region`, ОБА ключа, не бюджет); тестим доступный grok-4.3.
### 2Б.1. Capability floor — MODEL-SPECIFIC, не общий фронтир (ключевая поправка партии 1)
3-семейный фронтир-редактор на trap-наборе (черновик flash общий; варьируем editor-модель × промпт):
| Editor-семья | T1 двойн. отриц. (детерм.) | mean предл./абзац | доля 1-предл. | CJK | len/P0 |
|---|---|---|---|---|---|
| glm-5 (дешёвый) P0/P1a/A-2pass | ✗ **инверсия** (все промпты) | 1.91→3.33 | 0.47→0.19 | 2 | ~1.0 |
| **gpt-5.4** F-base/F-disc | **✓ чинит** (оба промпта) | 1.58 / 2.45 | 0.58 / 0.37 | 0 | ~1.02 |
| **grok-4.3 ON** X-base/X-disc | ✗ **инверсия** (оба! якорится на черновике) | 1.74 / **4.22** | 0.50 / 0.26 | 2 / 6 | ~0.97 |
| **gemini-3.1-pro** G-disc (ре-тест) | ✗ **инверсия** (T1) + сплющивание (T2) | — | — | 0 | ~1.0 |
- **T1 «capability floor» — MODEL-SPECIFIC: из ТРЁХ фронтир-семей ТОЛЬКО gpt-5.4 чинит инверсию двойного отрицания; grok-4.3 И gemini-3.1-pro её ИНВЕРТИРУЮТ** — как дешёвый glm. Grok-редактор заякорился на ошибке черновика (мини-проба grok на СВЕЖЕМ предложении `他没有一个不知道的` дала верно → провал именно в РЕДАКТОРСКОЙ задаче «поймай ошибку черновика»). ⇒ **это не «любой фронтир чинит», а СПЕЦИФИЧЕСКАЯ компетенция gpt-5.4** (2 из 3 фронтиров проваливают). Партия 1 (n=1 фронтир) это переобобщила — партия 2 (3 семьи) прочно поправила.
- **grok-4.3 + дискурс (X-disc) — ЛУЧШИЕ абзацы из всех (mean 4.22)**, но CJK-утечка 6 и провал T1. Профиль: отличная переверстка, слабое понимание.
- **gemini-3.1-pro как редактор:** первый прогон (G-base/G-disc, `max_tokens=8000`) — мис-конфиг: mandatory-thinking съел бюджет → `finish=length`, обрыв (comp 317646, len/P0 0.650.76). **Прицельный ре-тест с `max_tokens=20000`** (ch7.0/ch8.1, полные выходы `finish=stop`): T1 → «не знал ни один человек» = **ИНВЕРСИЯ**, T2 → «всё изменилось» = **сплющивание**. Т.е. Gemini НЕ лучше дешёвого на смысл-ловушках. **Плюс COGS-урок: Gemini-редактору нужен `max_tokens`≥1620k × $12/M (thinking=output) = ~$0.100.12/вызов, ×10 к glm/grok** — COGS-враждебно И не качественнее. Итог Gemini-ключа $2.39 (€2.21, в лимите €2.3).
### 2Б.2. Fidelity re-gate (D34.3) — пере-прогон НЕ чист
Span-цитирующий, раздельно верность/стиль, охота на класс инверсий редактуры (final vs draft vs src), author≠reviewer (gpt-5-mini + kimi, НЕ glm/deepseek), leave-one-out. 55 чанков (ch5.0/ch20.0 — пустые экспорт-баг, вне скора).
- **Средняя верность: gpt-5-mini 93.7 (min 60), kimi 87.6 (min 60); leave-one-out 87.6↔93.7.** Широко приемлемо, НО с хвостом.
- **13 КАТАСТРОФ-флагов + 21 ИНВЕРСИЯ РЕДАКТУРЫ** на ~10 чанках. **ch10.1 — катастрофа обоими судьями (fid 60)**; прочие: 1.2, 5.1, 6.0, 9.1, 11.0, 12.0, 13.1, 15.1, 16.0, 20.1. Класс, которого боялся D34.3 (билингв-редактор купил гладкость ценой смысла), ПОДТВЕРЖДЁН на хвосте.
- **Вердикт re-gate: пере-прогон НЕ проходит чисто — ~10 чанков с span-цитированными инверсиями/катастрофами на ревью оркестратору/владельцу** (часть может быть FP LLM-судьи — верифицировать спаны; но ch10.1 both-judge — вероятно реален). Пере-прогон засчитан НЕ полностью (D1.1/D34.3).
### 2Б.3. Ранжирование 3 финалистов (Ступень II, гл.19/17/18) — style↑ у reflow, но HOLISTIC fidelity литерал-смещён
Финалисты: **Fin-A=P0 · Fin-B=A-2pass · Fin-C=F-disc (gpt-5.4)**. Панель gpt-5-mini+kimi+gemini, 3 повтора со свапом, leave-one-out (Borda, 2=лучший):
- **Стиль:** Fin-C **1.43** > Fin-B 0.95 > Fin-A 0.62 (робастно во всех leave-one-out) → **gpt-5.4-дискурс читается лучше, A-2pass второй, прод P0 худший.**
- **Верность (holistic):** Fin-A(P0) **1.53** > Fin-C 0.76 > Fin-B 0.71 (робастно) — **НО P0 содержит T1-КАТАСТРОФУ (инверсию «все знали»→«никто»), которую F-disc чинит.** Панель holistic-верности этого НЕ поймала → **литерал-смещение судей** (награждают консервативную близость P0 к черновику, слепы к его span-катастрофе — точный урок exp12/мемо `eval-aggregation`).
- **Синтез:** доверять SPAN-уровню (F-disc чинит T1, P0 инвертирует) выше, чем holistic-скаляру верности. Reflow/фронтир поднимают СТИЛЬ; на верность есть НАПРЯЖЕНИЕ (агрессивная переверстка ↔ omission-риск), но «P0 вернее» — артефакт литерал-bias, не факт.
### 2Б.4. Кривая нарезки — крупнее чанк = ДЕШЕВЛЕ И лучше абзацы (0 ретраев)
ch17+ch13 × 800/1600/3200/whole (жадная упаковка; flash-draft→glm-5-дискурс; реальный токенайзер):
| размер | ch17 out-ток / mean_spp | ch13 out-ток / mean_spp |
|---|---|---|
| 800c | 15159 / 2.59 | 12171 / 3.48 |
| 1600c (прод) | 10284 / 3.03 | 8043 / 3.95 |
| 3200c | 8691 / 3.67 | 6090 / 4.09 |
| whole | 7782 / 3.59 | 4560 / 3.88 |
- **Монотонно: крупнее чанк → МЕНЬШЕ выходных токенов (дешевле) И ЛУЧШЕ абзацы** (mean_spp↑, доля-1-предл.↓). 0 ретраев на всех размерах (retry blast-radius не наблюдён на этих 2 главах). Оптимум ~**3200c / whole** по обеим осям.
- Мелкий чанк (800c) — дороже (дублирующий overhead/повторы) И рубленее. Опровергает «мельче = дешевле» для output-домината; на ЭТОМ тексте перевёрнутой-U вниз не видно (lost-in-middle не бьёт до главы). **Поддерживает `edit=крупная единица / глава` (D35.7) — И по COGS, И по качеству.** Оговорка: 2 главы, 1 текст, 0 наблюдённых ретраев (retry-adjusted не активировался).
### 2Б.5. Итоговая capability-vs-activation карта (обе партии)
| Претензия | Потолок | Уточнённое доказательство | Ход |
|---|---|---|---|
| (1) абзацы | **ПРОМПТ + РАЗМЕР** (активация) | дискурс-промпт (P1a/F-disc/X-disc) + 2-пасс (A-2pass 3.33) + крупный чанк (кривая) двигают KPI; grok-disc лучший (4.22); фронтир-модель НЕ нужна | катить дискурс-промпт + крупная edit-единица; A-2pass если COGS позволит |
| (2) внутри-чанк смысл | **MODEL-SPECIFIC** (только gpt-5.4), не общий floor | gpt-5.4 чинит T1; glm-5, grok-4.3 И gemini-3.1-pro — ИНВЕРТИРУЮТ (2 из 3 фронтиров провалили) | селективная эскалация на **gpt-5.4** по смысл-риску (grok/gemini НЕ годятся — инвертируют) |
| (2) кросс-граница | не доминирует в срезе | A-ref null; P1c связал (1 датапоинт) | не строить Ф2-память под слабый сигнал |
| верность пере-прогона | **есть хвост порчи** | re-gate: 13 катастроф + 21 инверсия на ~10 чанках | ревью флагов + omission-гард на reflow-армы |
### 2Б.7. Внешняя слепая оценка (2 независимые нулевые сессии: ChatGPT + Claude) — корроборация + новое
Владелец прогнал `monitor14.md` (оригинал + 3 слепых финалиста) через 2 независимые анти-анкоринговые сессии (промпт `docs/EXP14_BLIND_EVAL_PROMPT.md`; ключ им не выдавался). Декодировано (Fin-A=P0/Fin-B=A-2pass/Fin-C=F-disc):
**Сходимость 4 сигналов (наш KPI + наша панель + ChatGPT + Claude):**
- **P0 (прод) — худшая проза во ВСЕХ 4** (KPI 1.91, панель 0.62, ChatGPT P0-последний 3/3, Claude 3/3). Претензия-1 реальна и прод-специфична; Claude: «рублёнка — рычаг промпта/постобработки, не модели» (= наш вывод).
- **F-disc (gpt-5.4) — лучший по прозе И по верности у ОБЕИХ внешних сессий** → **подтверждает поправку §2Б.3: наша holistic-панель ошибочно ставила P0 «вернее всех» (литерал-смещение); внешние голоса + span-трапы говорят — вернее F-disc.** Доверять span-уровню, не holistic-скаляру — корроборировано независимо.
**Новое (внешние поймали, наши метрики — нет):**
- **Разряды 甲/乙/丙 (А/Б/В) ПЛЫВУТ** — обе сессии независимо (丙→«В» потом «Ц»; «цинская одарённость»-мусор). Трапы разряды не покрывали → **D35.4c апгрейд: «дешёвый бэклог» → подтверждённый читателем дефект, в приоритет.**
- **A-2pass несёт РИСК ВЕРНОСТИ:** ChatGPT нашёл катастрофу `人上之人`(«над людьми»)→«среди людей» (иерархия перевёрнута; спан-верифицировано — реально). 2-й reflow-пасс перефразирует → дрейф. ⇒ **near-term безопаснее ОДИНАРНЫЙ дискурс-пасс (P1a), не A-2pass.**
- **Битые склейки черновика** (F-disc гл.17) — дыра санитайзера даже во фронтире.
**Расхождение (не подгоняю):** катастрофу A-2pass поймал только ChatGPT (Claude — «нет катастроф») → даже слепая панель имеет разброс на тонком; катастроф-скрин нужен ≥2 независимыми глазами (подтверждает мемо eval-aggregation).
**Итог:** лучший конфиг (F-disc gpt-5.4+дискурс) перешёл «лучше фана» у обеих сессий и берёт обе оси, но это дорогой фронтир; дешёвый дискурс-промпт закрывает абзацы (прод-специфичную претензию-1); разряды 甲乙丙 — чинить.
### 2Б.6. Пересмотренная near-term рекомендация (на ратификацию оркестратора)
1. **Абзацы (П1):** дискурс-reflow-промпт (Ван Цуй, ОДИНАРНЫЙ пасс) + сдвиг edit-единицы к КРУПНОЙ (3200c/глава — дешевле И лучше по кривой). **A-2pass даёт топ-KPI абзацев, НО внешняя оценка нашла у него катастрофу верности (人上之人-инверсия) — 2-й reflow-пасс дрейфует смысл → НЕ рекомендую A-2pass; одинарный дискурс безопаснее.** Всё под omission-гард (следить за атомами).
2. **Смысл (П2):** селективная эскалация редактора на **gpt-5.4 конкретно** по смысл-риску (двойное отрицание/chengyu/инверсия черновика). **grok и gemini НЕ заменяют**оба ИНВЕРТИРУЮТ T1 (ре-тест gemini подтвердил), gemini ещё и COGS-враждебен. Не тотальный фронтир (портит абзацы у F-base, дорого).
3. **CJK-гард** обязателен на deformat (A-layout) и на grok-выходах (утечка 6). **Разряды 甲/乙/丙 → единая схема + принудительная сверка** (2 внешние сессии подтвердили плавающий рендер — D35.4c в приоритет).
4. **Пере-прогон:** ~10 re-gate-флагов на ревью до «засчитан».
5. **Слепые пакеты Ступени II** (`exp14/monitor/monitor14.md`) — владельцу на человеческий вердикт «лучше фана» (арбитр, D30.7).
**Оговорки (методика-guard):** trap-набор мал (6, prev-boundary, без катафоры); T1 — детерм.-чистый, но 1 конструкция; holistic-fidelity судьи литерал-смещены (доверять спанам); gemini полный батч был мис-конфигом max_tokens, но T1/T2 ре-тестнуты корректно (инвертирует); кривая — 2 главы/0 ретраев; ИНТЕРИМ пре-скрин (D35), НЕ пилот Ф2.5. Смену дефолта ратифицирует ОРКЕСТРАТОР.
## 3. Fidelity re-gate (D34.3) — свод в §2Б.2
Пройден с результатом **«не чист»**: средняя верность gpt-5-mini 93.7 / kimi 87.6 (leave-one-out 87.6↔93.7), но **13 катастроф-флагов + 21 инверсия редактуры на ~10 чанках** (ch10.1 — both-judge катастрофа fid 60). Класс инверсий редактуры (D34.3) подтверждён на хвосте. Флаги — на span-верификацию оркестратором/владельцем; пере-прогон засчитан НЕ полностью. Вход: `rerun/records.json` (source/draft/final, author≠reviewer gpt-5-mini+kimi). Артефакты: `exp14/regate_verdicts.jsonl`.