22 KiB
Промт: полигон-сессия exp14 — эмпирика рычагов качества (нарезка×промпт + фронтир-диагностика + кривая нарезки) (2026-07-12, D36, приоритет №1)
Кто ты и зачем
Ты — полигон-сессия TextMachine, exp14. Пере-прогон 25 глав дал вердикт владельца «лучше, но крайне слабо художественно» — 2 претензии: (1) нет логической редактуры абзацев / конвенций русского; (2) места, где модель не понимает связей/смысла. Диагноз (D35) верифицирован исполнением: не баг — недострой Ф2 + невыжатые near-term рычаги (промпт/нарезка/глоссарий). Ресёрч research/18 (ДВА отчёта, D36, оба залендены оркестратором после верификации первоисточников — Claude ACCEPT_WITH_FIXES / ChatGPT ACCEPT) дал карту рычагов и §C-таблицы. Твоя задача — ЭМПИРИЧЕСКИ измерить, а не утверждать: снимает ли near-term (нарезка×промпт) бо́льшую часть претензий на дешёвом миксе, и где потолок — в дешёвых МОДЕЛЯХ или в нашей НАРЕЗКЕ/ПРОМПТЕ (фронтир-арм = диагностика этого).
Ключевая ось, которую exp04/12/13 НЕ крутили: они варьировали только МОДЕЛЬ в фикс-нарезке с уже-вшитым reflow-промптом. Ты крутишь нарезку × ПРОМПТ.
Зона: eval/ + docs/experiments/14-quality-empirics.md + секция «Полигон» в PROGRESS.md + курация глоссария (вне git). Бэкенд не трогать (там могут быть живые правки; git status перед любым касанием дерева — часто 2 живые сессии; стейджинг тебе НЕ нужен, ты не коммитишь). Прямые API-вызовы из eval/-харнеса (НЕ через прод-пайплайн бэкенда — прод трогаем только чтобы воспроизвести инъекцию глоссария как якорь).
Онбординг (порядок)
CLAUDE.md→ CURRENT-STATE вPROGRESS.md→ D35 и D36 целиком (мандат; D36 = приёмка research/18 + этот промт).docs/research/18-quality-levers.md(ревью-шапка оркестратора СНАЧАЛА — там поправки к цитатам/рамке) +docs/research/18-quality-levers-chatgpt.md(ревью-шапка). Твой рабочий вход — §C обоих. Скелет протокола бери из ChatGPT-§C (P0-baseline → армы с фаза-тегами → пре-рег гейты C4 → дерево решений C5 → ядро reflow-промпта C3); СОДЕРЖАНИЕ дискурс-reflow-промпта (5 техник Ван Цуй) и COGS-модель — из Claude-§C.docs/experiments/00-provider-quirks.md: deepseek thinking ON всегда (эхо-мина); gemini слаг ТОЛЬКО-preview,additive_total, mandatory thinking,PROHIBITED_CONTENTнеконфигурируем; grok reasoning-ON = аддитивный биллинг; grok на архаичном хане ch1 — эхо-риск D22.5 (исключить grok из ch1-армов).rerun/FIDELITY_REGATE_HANDOFF.md— пакет re-gate верности (гонишь ПАРАЛЛЕЛЬНО, независимо от этого эксперимента).- Уроки судейского слоя: шапки
docs/experiments/12-quality-diagnosis.md+13-translator-bakeoff.md(ложная «сходимость» ловилась дважды — мемоeval-aggregation-no-manufactured-convergence).
Пре-регистрация (закоммить §1 exp14-дока ДО первого платного вызова — D30.10; path-scoped только exp14-док)
0. Материал (исключить сломанное)
- Срез: те же 25 глав пере-прогона (
rerun/records.jsonнесёт source/draft/final по 57 чанкам). ИСКЛЮЧИТЬ ch5.0 и ch20.0 (экспорт-баг D35.4a — финалы пусты; спутают оценку) до бэкенд-фикса; если нужен их текст — бери edit-выход из checkpoints (тело цело, дефект = ведущий###). - Trap-набор (Ступень I — ЛОВУШКИ, не «средние главы»): разметь 6–8 мест ДО генерации, поле
supporting_span+допустимый_смысл. Типы (ChatGPT §C1): (a) нарратив-строки, которые ДОЛЖНЫ стать одним русским абзацем; (b) диалог 1:N; (c) связь, разрешимая ВНУТРИ текущего чанка; (d) связь, опора которой — ЗА границей чанка. Обязательно включить места владельца, воспроизведённые оркестратором фактически: gl.7古月族人没有一个不知道的(двойное отрицание = «все знали» → финал инвертировал в «никто не знал»); gl.8物是人非(заглавие-ключ → сплющено в «всё изменилось»). Эти два — тип (c)/verность, вход и в fidelity re-gate. - Главы для Ступени II — 3 чистые главы разной диалого-плотности формулой (как exp12 high/mid/low), исключая ch1 (архаика), ch5, ch20.
1. Армы — ось НАРЕЗКА × ПРОМПТ (полный 2×2 — мандат D36) + аблации
Прямые вызовы, ручная упаковка; дешёвый прод-микс (draft deepseek-v4-flash thinking-ON → editor glm-5 билингв) как якорь; глоссарий-инъекцию воспроизвести из retrieval_state.injected_ids (боевой блок, rig-фиделити как exp12 A1′).
| Арм | Нарезка | Промпт | Смысл |
|---|---|---|---|
| P0 baseline | чанк 1.5k | ТЕКУЩИЙ прод (v1-reflow/v2-bilingual-reflow) |
Нулевая точка обеих претензий (= пере-прогон, но на trap-наборе) |
| P1a | чанк 1.5k | сильный дискурс-reflow | Промпт-рычаг при фикс-нарезке |
| P1b | глава целиком | ТЕКУЩИЙ прод | ⚠ ячейка, которую НИ ОДИН отчёт не крутил — изолирует «бо́льшая единица САМА помогает без нового промпта?» |
| P1c | глава целиком | сильный дискурс-reflow | Верхняя near-term точка нарезка+промпт |
Плюс аблации (ChatGPT §C2, на базе P1a):
- Draft-layout ablation: перед editor заменить пустые строки/построчную разбивку draft на нейтральные сепараторы ИЛИ пронумерованные смысловые атомы (финал удаляет ID) → изолирует ЯКОРЕНИЕ редактора на форме черновика (если резко улучшает абзацы при той же модели/промпте — менять нарезку преждевременно; это дешёвый ПРОД-МИНОР при победе).
- Semantic-first vs combined: один combined-editor против двух узких пассов (билингв семантика-репэйр → target-only литературный reflow) под ОДНИМ coverage-гейтом → снимает конкуренцию мандатов у слабой модели; замерить реальный output-множитель (≤~2× editor-output).
- ±1 reference-контекст: дать пред-source+пред-target хвост и след-source-абзац до границы сцены, явно
REFERENCE — НЕ ПЕРЕВОДИТЬ; три РАЗДЕЛЬНЫЕ абляции prev / next / both (не сливать в один «context arm»). Цель — кросс-граница (тип d), нулевые подлежащие, катафора.
2. Фронтир-арм — ДИАГНОСТИКА потолка (бюджеты владельцем ПОДТВЕРЖДЕНЫ D36.1 — трата разрешена в рамках ключей)
- Capability-vs-activation 2×2: {дешёвая прод-модель | фронтир} × {baseline-промпт | дискурс-промпт} на trap-наборе + 1 главе. Разводит: фронтир верстает, дешёвая нет → gap способности; ни та ни другая → недоспецифицированный промпт; краткое правило/пример чинит дешёвую → это была активация.
- Фронтир: GPT-5 — основной (OpenAI ~$9); Gemini 3.1 Pro (
-preview) — ЭКОНОМНО (остаток€2.6, thinking = аддитив-биллинг → быстро сгорит; лучше как кросс-семейный мета-ревьюер, НЕ прогонять им всё); grok ($9) — доп, но НЕ на архаичной ch1 (D22.5, эхо-риск); НЕ Claude/Opus (нет ключа). Мета-ревьюер — self-family exclusion (не ревьюит свой выход). - Фронтир кросс-семейный мета-ревьюер (span-цитаты: где ломается смысл + какой механизм чинит): self-family exclusion (модель НЕ ревьюит свой выход — если Gemini переводил, мета-ревьюер GPT, и наоборот).
- Гарды: эхо/refusal-скрин на всех выходах; per-call predicted-cost кап ДО вызова (НЕ group-level — урок exp13 +10%); пре-регистрация армов заморожена коммитом.
3. Кривая размер-чанка ↔ качество ↔ биллинг ↔ ретраи
- Размеры 0.75k / 1.5k / 3k / глава × две политики границ (жадная упаковка | сцен/дискурс-граница) при сопоставимом бюджете — иначе размер спутается с качеством границ.
- Снимать (пре-рег): in/out/reasoning-токены, латентность, retry-rate ПО ПРИЧИНАМ (timeout/refusal/length/echo/sanitizer/decode — раздельно), доля ПОВТОРНО ОПЛАЧЕННЫХ токенов (не только retry-rate — урон одного крупного сбоя), coverage, слепое предпочтение, KPI-абзацы, trap-теги.
- Бюджет чанка — в ВЫХОДНЫХ токенах на реальном токенизаторе (кириллица-фертильность ~2–2.5× — Petrov NeurIPS 2023, проверено); оптимизировать на retry-adjusted output-cost; связность давать кэшированным carryover, НЕ размером единицы. Cache-ordering: статику (system+glossary) ПЕРВОЙ, volatile (running summary/reference) ПОСЛЕ — иначе кэш бьётся.
4. Сильный дискурс-reflow промпт — ЭТО АРМ ДЛЯ ЗАМЕРА (не «оптимальный промпт»), ядро (Claude §C1#1 + ChatGPT §C3)
СОДЕРЖАНИЕ (zh→ru, из Ван Цуй, Вестник МГУ Сер.22 — прескрипция ТЕХНИКИ, подтверждена оркестратором по телу статьи; НЕ «норма языка» — норму держат Розенталь/Правила-1956):
- Молча определи смысловые ходы: единый фокал/наблюдатель; действие+непосредственная реакция; одна тема рассуждения; смена говорящего/времени/места/фокала.
- Один повествовательный ход — обычно один русский абзац, ДАЖЕ если китайский разбит на однофразовые строки (паратаксис→гипотаксис). Инструмент слияния — причастные/деепричастные обороты + подчинительные союзы/связки (5 техник Ван Цуй: иерархия → сегментация по смыслу → маркировка вида/времени предиката → варьирование лексики → добавление связок). Не сливать ТОЛЬКО ради длины.
- Каждая реплика — с нового абзаца через тире; слова автора при той же реплике — в её абзаце (Розенталь).
- Разрешено объединять/делить русские предложения; ЗАПРЕЩЕНО терять смысловые атомы (число предложений/абзацев совпадать не обязано).
REFERENCE-блоки — только для разрешения связей; не переводить/не пересказывать в выходе.
Few-shot — минимальные, ортогональные: narrative N:1, dialogue 1:N, focal-shift boundary (target-side русский якорь). Для DeepSeek-thinking сначала zero-shot против few-shot (модель-специфика research/15; не переносить результат между моделями); ручной verbose CoT reasoning-модели НЕ добавлять.
5. Метрики и гейты — ПРЕ-РЕГИСТРИРОВАТЬ (C4 ChatGPT + §C10 Claude)
| Ось | Первичный показатель | Аварийный гейт |
|---|---|---|
| Претензия 1 (абзацы) | детерминированный структурный KPI БЕЗ судьи (распределение предложений/нарратив-абзац vs русский референс) + слепое чтение | нельзя «побеждать» только МЕНЬШИМ числом абзацев |
| Претензия 2 внутри-чанк | билингв span-цитирующая trap-accuracy (обязательный supporting_span) |
любая инверсия действия/участника = КАТАСТРОФА независимо от среднего ранга |
| Претензия 2 кросс-граница | accuracy РАЗДЕЛЬНО prev-/next-/chapter-supported | 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: NMT>LLM по d-BLEU без human-eval). Судьи: span-цитирующие, reasoning-ON, верность/стиль РАЗДЕЛЬНО, кросс-семейно, self-family exclusion, ≥3 повтора со свапом, parse-чек полноты ранжирования.
6. Ступень II — слепое чтение владельцем ТОЛЬКО 3 финалистов
После trap-гейта оставить: baseline + лучший near-term арм + фронтир-диагностик (НЕ 8 почти-одинаковых, как exp12). Monitor-паттерн (слепые метки, ключ отдельно, вне хостинга — копирайт). Главный исход — бинарное закрытие 2 претензий + ранжирование; вторичный — размеченные ошибки.
7. Дерево решений (пре-рег, ChatGPT §C5)
- P1a закрывает абзацы БЕЗ падения fidelity → катить промпт, размер НЕ менять.
- Помогает только draft-layout ablation → строить deformat/atom-rendering, не chapter-editor.
- ±1 reference закрывает большинство смысловых traps → строить малое context-window до Ф2-памяти.
- Нужна chapter-card, но whole-chapter НЕ лучше → Ф2 state-extraction.
- Whole-chapter выигрывает по fidelity И абзацам И retry-adjusted COGS → тогда проектировать per-stage гранулярность (повторить на длинной главе).
- Фронтир выигрывает обе колонки 2×2, организация почти не помогает → model floor (не строить сложную память ради слабой модели).
- Организация помогает ОБЕИМ, фронтир+организация даёт доп-лифт → развести near-term context-fix и премиум-тир.
Fidelity re-gate (ПАРАЛЛЕЛЬНО, D34.3 — rerun/FIDELITY_REGATE_HANDOFF.md)
Независим от exp14. Span-цитирующий, reasoning-ON, раздельно стиль/верность, охота на КЛАСС ИНВЕРСИЙ редактуры (ch11/0 аутлайер: editor расширил 3009→4631, sim 0.064), катастроф-скрин терминов у победителя, author≠reviewer (не glm-5/deepseek), leave-one-out. Пере-прогон НЕ засчитан до пройденного re-gate.
Deliverable
docs/experiments/14-quality-empirics.md: пре-регистрация (§1, заморожена коммитом) → таблицы армов (KPI-абзацы / trap-accuracy со спанами / perturbation / retry-по-причинам / цена) → кривые размер↔качество↔биллинг↔ретраи → capability-vs-activation вывод (потолок: модели vs организация) → рекомендация near-term конфига + что строить под ROI → 3 финалиста для слепого чтения владельца. Смена дефолта — ратификация оркестратора. Ничего не коммитить, КРОМЕ пре-рег-раздела (D30.10-гейт).
Дисциплина / бюджет
- Бюджеты ключей (подтверждены владельцем, D36.1 — «делай что нужно в этих рамках»): OpenAI ~$9, Gemini ~€2.6 (крошечный — беречь), DeepSeek/ZAI(glm)/Kimi/xAI(grok)/Mistral ~$9 каждый; ДРУГИХ ключей нет. Отдельный owner-
ceiling-запрос НЕ нужен — работай внутри остатков. Per-call predicted-cost кап ОБЯЗАТЕЛЕН до каждого платного вызова (НЕ group-level — exp13 переоврал на +10%); в пре-регистрации разложи ожидаемую трату по ключам и держи запас (near-term дешёвые армы — первыми; фронтир GPT-5 — основная фронтир-статья; Gemini — точечно). Заканчивается ключ → останавливайся на нём, не блокируй остальные армы. - Каждый платный вызов персистит usage/cost; финальная сумма в отчёте (D30.10). Полигонное Python-зеркало ↔ Go: при расхождении верить Go.
- Слепота свята; пре-рег заморожен после коммита; аномалии провайдеров → вендор-дока +
/models(не гадать);.envне читать; тексты книги в git-доки не тащить (≤15 слов); 18+ регистров в раннем срезе нет — перенос на 18+ требует отдельной пробы (D22/exp10-11). - Методика-guard (мемо eval-aggregation — ловил ДВАЖДЫ): fidelity-first агрегация, leave-one-out по судьям, катастроф-скрин к ПОБЕДИТЕЛЮ тоже, независимость сигналов до агрегации, ось решения (near-term-достаточность vs потолок-моделей). Не собирай ложную «сходимость».