339 lines
63 KiB
Markdown
339 lines
63 KiB
Markdown
# Эксперимент 14. Эмпирика рычагов качества zh→ru (нарезка × ПРОМПТ + фронтир-диагностика + кривая нарезки)
|
||
|
||
> **Статус:** полигон-сессия 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 / катафора**-трапа в раннем срезе (гл.2–25, ранняя арка деревни) не нашлось дёшево — кросс-граница здесь 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 chunk0∪chunk1 внутри главы (как 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_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 / глава** × **две политики границ** (жадная упаковка | сцен/дискурс-граница) при сопоставимом бюджете (иначе размер спутается с качеством границ).
|
||
- **Бюджет чанка — в ВЫХОДНЫХ токенах на реальном токенизаторе** (кириллица-фертильность ~2–2.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), либо `total−prompt−completion` (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.015–0.02/чанк-edit; ~$1.5–2.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/… (судьи): ~$1–2 суммарно (кап **$0.20**).
|
||
- xAI (grok доп-фронтир, опц.): ≤$1 (кап **$0.40**), НЕ ch1.
|
||
- **Итог-цель ≈ $5–8 суммарно, глубоко в остатках.** Финальная сумма по ключам — в §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.6–1.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 317–646, len/P0 0.65–0.76). **Прицельный ре-тест с `max_tokens=20000`** (ch7.0/ch8.1, полные выходы `finish=stop`): T1 → «не знал ни один человек» = **ИНВЕРСИЯ**, T2 → «всё изменилось» = **сплющивание**. Т.е. Gemini НЕ лучше дешёвого на смысл-ловушках. **Плюс COGS-урок: Gemini-редактору нужен `max_tokens`≥16–20k × $12/M (thinking=output) = ~$0.10–0.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`.
|