Land voice-and-state research package: research/15 with voice, scene-state, prompting, and P4 echo-mitigation probes, plus orchestrator corrections from external review

This commit is contained in:
Claude (backend session) 2026-07-09 23:31:23 +03:00
parent b508faa5a6
commit 5953b37681
2 changed files with 274 additions and 5 deletions

View file

@ -809,10 +809,10 @@ keep-alive (Ф12), инъекция глоссария (`selective`), пор
### 2026-07-09 — Сессия «Голос и состояние» ЗАВЕРШЕНА → [research/15-voice-and-state.md](research/15-voice-and-state.md)
Метод: 12 направлений-сборщиков → адверсариальная верификация несущих клеймов refute-by-default (~60 верификаторов) → completeness-критик → 6 доборов (91 агент, ~3.2M ток., 0 отказов) + **живые пробы на SFW-чанках 蛊真人** ($0.04 из $2.50; сырые артефакты в scratchpad сессии; боевой драфт-промпт deepseek, редактор grok `reasoning_effort:none`, судьи кросс-семейно со свапом позиций). Зоны чужие не тронуты, ничего не закоммичено.
Метод: 12 направлений-сборщиков → адверсариальная верификация несущих клеймов refute-by-default (~60 верификаторов) → completeness-критик → 6 доборов (91 агент, ~3.2M ток., 0 отказов) + **живые пробы на SFW-чанках 蛊真人** ($0.04 — знаменатель $2.50 это жёсткий кап probe_runner.py, мандат ≤$3 на ec578ef / ≤$4 после 17ccea4; итог сессии с P4 — $0.28 (уточнено оркестратором); сырые артефакты в scratchpad сессии + дубль `/home/ubuntu/books/gu-zhenren/research15-probes/`; боевой драфт-промпт deepseek, редактор grok `reasoning_effort:none`, судьи кросс-семейно со свапом позиций). Зоны чужие не тронуты, ничего не закоммичено.
**Вердикт (кратко):**
- **Клейм «voice exemplars > дескрипторов» — REFUTED в универсальной форме** (прямого сравнения не существует нигде; ChatHaruhi количественной абляции НЕ содержит), но количественное ядро есть: RoleLLM — формат демо важнее наличия (9.85→30.19→61.79% win-rate); дистиллированный voice-sheet бьёт RAG-пример; насыщение ~5 реплик; **similarity-retrieval вредит** (69→36 AA) — удачно совпадает с детерминизмом банка. Строить **гибрид «1 строка регистра + 35 RU-реплик»**. Проба подтвердила направление: гибрид — ранг-1 у судей 5/5 (2 семейства); детерминированный маркер (奴婢-самоуничижение служанки): база 1/4, дескрипторы 3/4, **экземпляры/гибрид 4/4**; на «лёгкой» сцене (братья) инъекция нейтральна/шумит → **селективность по яркости голоса**.
- **Клейм «voice exemplars > дескрипторов» — REFUTED в универсальной форме** (прямого сравнения не существует нигде; ChatHaruhi количественной абляции НЕ содержит), но количественное ядро есть: RoleLLM — формат демо важнее наличия (9.85→30.19→61.79% win-rate; arXiv-v1, в ACL-версии 9.3→29.8→63.3 — ревью); дистиллированный voice-sheet бьёт RAG-пример; насыщение ~5 реплик; **similarity-retrieval вредит** (69→36 AA) — удачно совпадает с детерминизмом банка. Строить **гибрид «1 строка регистра + 35 RU-реплик»**. Проба подтвердила направление: гибрид — ранг-1 у судей 5/5 (2 семейства); детерминированный маркер (奴婢-самоуничижение служанки): база 1/4, дескрипторы 3/4, **экземпляры/гибрид 4/4**; на «лёгкой» сцене (братья) инъекция нейтральна/шумит → **селективность по яркости голоса**.
- **Голос выигрывается на ДРАФТЕ:** grok-редактор с узким мандатом вернул черновик **дословно** в 3/4 проб (сглаживание НЕ воспроизвелось; восстановление сплющенного голоса voice-блоком — тоже НЕ произошло). Редактору — констрейнты сохранения, переводчику — инъекция.
- **Прайор-арт: клейм стратревью «аналогов нет» сузить, не снять.** Пер-персонажный голос в промышленном MT существует как продукт-клейм (NAVER «캐릭터 인식 번역», Mantra, XL8 — механизмы не раскрыты); детерминированный no-LLM словарный слой и селективная инъекция по матчу — массовая практика фан-стека (GalTransl/LunaTranslator/SakuraLLM — «учебник» найден). **Уникальными остаются:** спойлер-окна since/until (нигде, вкл. патентные индексы), scene-state и voice-exemplars в MT, формула «disposition+окна+бюджет+детерминизм».
- **Scene-state: полная схема — ниша пуста; единственный доказанный срез — направленный регистр пары** (ты/вы = 67% деиксис-ошибок En→Ru; тег-контроль 7392% acc) → **реестр обращений пар** (speaker→addressee, ты/вы, since/until; индустриальный прототип — Netflix Treatments list / 呼称表) — самый дешёвый новый тип записи. DelTA после сверки первоисточника: чистый вклад памяти = +3.95 пп LTCR при 0.02 COMET (консистентность и качество **развязаны** — выигрыш виден только специализированной осью).
@ -828,8 +828,8 @@ keep-alive (Ф12), инъекция глоссария (`selective`), пор
Коммиты 17ccea4 (эхо-под-мандат 3-bis + бюджет ≤$4), 3d183bc (пакет-2 полигона) и 3011b88 (D19) залетели ПОСЛЕ старта сессии — промт читался на ec578ef. Сверка постфактум: веб-часть 3-bis (а)(б) оказалась закрыта completeness-критиком ещё до прочтения амендмента (copy-collapse наука + инвентарь prefill-каналов — research/15 §3-bis); мандатная проба (в) выполнена дополнением, exp10/D19 увязаны в док. Итого потрачено **$0.28 из $4**; сырые артефакты — scratchpad `probes/raw/echo-*.json`; конфиги — точная реплика exp10 (сопоставимость с полигонским 40%-замером); корпус — их же `refusal_corpus_gu` (уровень-2, скрин уровня-3 чист их аудитом) + мой SFW-кейс.
**Результаты P4 (эхо-митигции; метрика cjk_share>0.15; КАЧЕСТВО переводов не судилось):** grok-4.3 `reasoning:none`, 10 фрагментов: **база 3/10 эха** (реплика полигонских 4/10; эхо-фрагменты пересекаются лишь частично → эхо стохастично per-fragment) → **инструкция ПОСЛЕ текста 0/10 · микро-few-shot (2 пары zh→ru в system) 0/10 · комбо 0/10 · ⚠ языковой констрейнт («весь вывод — на русском, кириллицей») — ИНВЕРСИЯ: 9/10 эха** (verbatim-китайский без единого русского слова; diff с базой — одна строка system). DeepSeek thinking-ON (gu-008, база 2/3; T1+реестр, база 2/3): инструкция-после **0/6**, **префилл «Перевод:\n» (beta prefix-completion) 0/6** — работает на v4-flash без 400, но `reasoning_content` в ответе отсутствует и completion-токенов меньше → **prefix, по-видимому, обходит thinking** (вопрос «beta prefix × thinking» закрыт; цена по качеству реалий не мерена — thinking их чинит, exp03).
**Результаты P4 (эхо-митигции; метрика cjk_share>0.15; КАЧЕСТВО переводов не судилось):** grok-4.3 `reasoning:none`, 10 фрагментов: **база 3/10 эха** (реплика полигонских 4/10; эхо-фрагменты пересекаются лишь частично → эхо стохастично per-fragment) → **инструкция ПОСЛЕ текста 0/10 · микро-few-shot (2 пары zh→ru в system) 0/10 · комбо 0/10 · ⚠ языковой констрейнт («весь вывод — на русском, кириллицей») — ИНВЕРСИЯ: 9/10 эха** (verbatim-китайский без единого русского слова; diff с базой — одна строка system). DeepSeek (gu-008, база 2/3; T1+реестр, база 2/3): инструкция-после **0/6**, **микро-few-shot 0/3 (gu-008)**, **префилл «Перевод:\n» (beta prefix-completion) 0/6**. **Wire-аудит пост-верификацией по сохранённым usage (`completion_tokens_details.reasoning_tokens`): все v1-базы шли с thinking-ON per-call (1113204 > 0 — дефолт конфига providers.json подтверждён проводом, не докой), и все три deepseek-эха P4 случились ПРИ thinking-ON (базовые gu-008: rt 111/182; L-арм T1: rt 149 — испр. оркестратором по пересчёту) — thinking снижает, но не исключает эхо (сходится с exp10-контролем 1/10 и «25% на вебновелле»); префилл же отключает thinking — reasoning_tokens=0 во всех 6/6** (вопрос «beta prefix × thinking» закрыт wire-фактом; вендор-док о взаимодействии молчит — при смене API перепроверить; цена по качеству реалий не мерена — thinking их чинит, exp03).
> **[ОРКЕСТРАТОРУ — к D19.2]** (1) **Рекомендую в боевые промпты канала A/B**: микро-few-shot в кэшируемый префикс (≈$0) + дубль инструкции после чанка (~10 ток. хвоста) — суммарно **0/26 эха против базовых ~35%** на обоих провайдерах; понижает частоту эскалаций (COGS); echo-гейт не трогаем (рамка D19.2 соблюдена). (2) **Анти-находка для ратификации: явный языковой констрейнт в system на grok-none ИНВЕРТИРУЕТ эхо 3/10→9/10** — запретить «пиши по-русски»-строки в промптах reasoning-off путей без per-model замера; предостережение к любым будущим анти-эхо правкам. (3) Префилл DeepSeek — кандидат для драфт-канала только после fidelity-проверки (обходит thinking → возможен налог на реалии); каналу B нерелевантен (Mistral чист, grok-эскалация reasoning-ON — D19.1).
> **[ПОЛИГОНУ]** (1) В обобщающую строку quirks (поручение D19.2) добавить инверсию: «языковой констрейнт в system у reasoning-off моделей может УСИЛИВАТЬ эхо (grok-none 3/10→9/10, P4 research/15; проверена одна формулировка — чувствительность неизвестна)». (2) Fidelity-хвост P4: отсудить митигированные переводы против базы (32 пары, копейки) — если fidelity не падает, митигции готовы к wiring через оркестратора. (3) Эхо стохастично per-fragment (gu-009 эхнул у нас, не у вас; gu-001/006 — наоборот) → echo-rate мерить с повторами, не одним прогоном.
> **[ОРКЕСТРАТОРУ — к D19.2]** (1) **Рекомендую в боевые промпты канала A/B**: микро-few-shot в кэшируемый префикс (≈$0) + дубль инструкции после чанка (~10 ток. хвоста) — суммарно **0/29 эха против базовых 3067% по армам (пул ~44%)** на обоих провайдерах (счёт испр. оркестратором); понижает частоту эскалаций (COGS); echo-гейт не трогаем (рамка D19.2 соблюдена). (2) **Анти-находка для ратификации: явный языковой констрейнт в system на grok-none ИНВЕРТИРУЕТ эхо 3/10→9/10** — запретить «пиши по-русски»-строки в промптах reasoning-off путей без per-model замера; предостережение к любым будущим анти-эхо правкам. (3) Префилл DeepSeek — кандидат для драфт-канала только после fidelity-проверки (обходит thinking → возможен налог на реалии); каналу B нерелевантен (Mistral чист, grok-эскалация reasoning-ON — D19.1).
> **[ПОЛИГОНУ]** (1) В обобщающую строку quirks (поручение D19.2) добавить инверсию: «языковой констрейнт в system у reasoning-off моделей может УСИЛИВАТЬ эхо (grok-none 3/10→9/10, P4 research/15; проверена одна формулировка — чувствительность неизвестна)». (2) Fidelity-хвост P4: отсудить митигированные переводы против базы (35 пар, копейки) — если fidelity не падает, митигции готовы к wiring через оркестратора. (3) Эхо стохастично per-fragment (gu-009 эхнул у нас, не у вас; gu-001/006 — наоборот) → echo-rate мерить с повторами, не одним прогоном.
> **[БЭКЕНДУ]** НЕ вносить языковые констрейнты в промпты reasoning-off путей (P4-инверсия). Микро-few-shot пары zh→ru — кандидат в стабильный префикс шаблонов draft/канала B (кэшируется; 0/26 эха) — только через оркестратора при следующей правке промптов (prompt_version-бамп, снапшот-дисциплина).

View file

@ -0,0 +1,269 @@
# 15 — Голос и состояние: контекст-инжиниринг сверх терминологии
**Дата:** 2026-07-09 · **Сессия:** «Голос и состояние» (промт `docs/VOICE_STATE_RESEARCH_SESSION_PROMPT.md`) · **Зона записи:** этот файл + секция в PROGRESS.
**Метод:** мультиагентный веб-ресёрч по образцу research/13/14 — 12 направлений-сборщиков → адверсариальная верификация каждого несущего клейма по первоисточникам (refute-by-default; ~60 верификаторов) → completeness-критик → 6 доборов пробелов; 91 агент, ~3.2M токенов, 0 отказов. Плюс **живые пробы** на чанках 蛊真人 (deepseek-v4-flash боевым промптом, судьи grok-4.3/gemini — кросс-семейно, свап позиций; потрачено **$0.28 из $4**; сырые выходы персистированы в scratchpad сессии, сводка — §Пробы). ⚠ Амендмент мандата 3-bis (коммит 17ccea4, эхо-мода) залетел ПОСЛЕ старта сессии и был увиден постфактум — веб-часть (а)(б) оказалась закрыта completeness-критиком до его прочтения, проба (в) выполнена дополнением (§Пробы P4) с учётом exp10/D19 полигона. Каждый факт — URL+дата (фетчи 2026-07-09); препринт ≠ peer-review, вендор-клейм ≠ замер. Вердикты: **CONFIRMED** (первоисточник прямо подтверждает) / **PLAUSIBLE** (правдоподобно, прямого подтверждения нет) / **REFUTED**.
**Зоны не тронуты:** `backend/`, `eval/`, `architecture/` — только чтение; ничего не закоммичено; текст книги и производные — вне git.
**Внешнее ревью оркестратора (09.07 ночь → D21):** 5 спот-чеков несущих клеймов по первоисточникам (DelTA — CONFIRMED точно; RoleLLM/Voita/similarity/WMT25 — CONFIRMED с нюансами атрибуции, вписаны пометками *(ревью: …)*), пробы пересчитаны поштучно из сырых артефактов — сходятся; фактические микро-правки счёта внесены оркестратором с пометками; оговорки ратификации — D-лог §D21. Сырые артефакты продублированы в `/home/ubuntu/books/gu-zhenren/research15-probes/` (вне git; /tmp волатилен).
---
## TL;DR — вердикт
1. **Клейм antipattern-дока «voice exemplars > прилагательных-дескрипторов» в универсальной форме НЕ подтверждён** — прямого сравнения для голоса персонажа не существует нигде (honest negative), а два ближайших прямых сравнения разнонаправлены. Но количественное ядро есть: **RoleLLM (Findings ACL 2024): описание роли 9.85% win-rate → +демо инлайном 30.19% → те же демо диалоговыми ходами 61.79%** *(ревью: числа arXiv-v1, судья GPT-3.5; в камере-реди ACL — 9.3→29.8→63.3, судья GPT-4, картина та же)* — exemplars главный рычаг, причём **формат важнее наличия**; **дистиллированный из реплик «voice sheet» бьёт сырой RAG-пример** (87/78% vs 39% win-rate); насыщение **~5 реплик**; **отбор по семантической близости ВРЕДИТ** (AA 69.3→36.0 — Enron, максимальное из четырёх падений; направление на всех датасетах). Итог: строить **гибрид** «1 строка регистра + 35 коротких разнообразных RU-реплик», не выбирать между экземплярами и дескрипторами. Наша проба на 蛊真人 подтвердила направление (§Пробы): гибрид — единогласный ранг-1 у судей двух семейств; детерминированный маркер (самоуничижение служанки 奴婢) — экземпляры/гибрид 4/4 vs база 1/4.
2. **Голос выигрывается на ДРАФТЕ, не на редактуре** (проба P3): монолингвальный grok-4.3 с узким мандатом вернул черновик **дословно** в 3 из 4 конфигураций — он не сгладил голос (страх §14 внешнего дока на этом сэмпле не воспроизвёлся), но и **не восстановил** сплющенный: voice-блок редактора не заставил его вернуть потерянное самоуничижение служанки. Инъекция голоса нужна переводчику; редактору — только констрейнты сохранения.
3. **Прайор-арт: «аналогов не найдено» стратревью — сузить, не снять.** Пер-персонажный голос в промышленном MT сериальной фикции **существует как продукт-клейм** (NAVER Webtoon «캐릭터 인식 번역» с БД речевых стилей, пресса 05.2026; Mantra — 口調-консистентность длинным контекстом; XL8 — файнтюн на серию), но **ни один механизм не раскрыт** публикацией или патентом. Детерминированный no-LLM словарный слой — массовая практика фан-стека (GalTransl 译前/译后/条件字典, LunaTranslator, SakuraLLM `src->dst #info`) — «учебник» найден; селективная инъекция по матчу — тоже НЕ уникальна (GalTransl/AiNiee). **Остаются уникальными:** спойлер-окна since/until (нигде, вкл. CAT и патентные индексы — скрининг, не FTO; ближайшее — NovelCrafter Codex Progressions, писательский тул), scene-state инъекция в MT, voice-exemplars в MT, и сама формула «disposition + окна + бюджет + детерминизм».
4. **Оси «голос персонажа» нет ни в одном бенче литературного MT** (DITING, WMT24-Literary, BlonDe — CONFIRMED), и потерю различимости голосов при MT никто не измерял — наш voice-флаггер и BWS-рука голоса будут первым замером. Измерительная база: детерминированные маркеры (ты/вы — тривиальный морфоматч; маркер-листы; NG-лексика) + **mStyleDistance** (Findings ACL 2025, 9 языков вкл. русский, MIT, 0.3B — но качество умеренное, AV ROC-AUC ~0.66 → только мягкий флаггер, не гейт).
5. **Scene-state: полная схема — ниша пуста** (никто не инъектил «кто где/с кем/что скрывает» в MT с замером). Доказанный числом срез один: **направленный регистр пары** — 37% контекстных ошибок En→Ru это деиксис, **67% из них — ты/вы** (Voita ACL 2019); контекст поднимает точность 50→83.5%; formality-тег управляет с 7392% acc (CoCoA-MT/IWSLT; *ревью: огибающая, RU там только zero-shot*). Второй опорный факт — **консистентность и качество развязаны** (DelTA, ICLR 2025, после сверки первоисточника: абляция Proper-Noun-Records +3.95 пп LTCR-1 при 0.02 sCOMET; на вебновеллах Guofeng +15.5…+32.7 пп сверх контекстного бейзлайна при ~+0.24 sCOMET) → выигрыш банка/реестров виден только специализированной осью, общие метрики его не покажут. Эпистемику/ложь в схему НЕ переносить: перевод сохраняет ложь исходника бесплатно.
6. **Эпистемическое состояние читателя в переводе — ниша пуста** (spoiler-aware MT: 0 работ). Механика у нас уже есть: reveal-точки = те же спойлер-окна (`reveal_ch` + pre/post-reveal алиасы «таинственный незнакомец»→«её брат»); механический спойлер-канал zh→ru — **род русского прошедшего времени** (перевод из безродового языка принудительно раскрывает пол). Имплицитному трекингу «кто что знает» доверять нельзя (FANToM: человек 87.5% vs GPT-4+CoT 26.6%); прецедент инъектируемой модели читателя — StoRM (Findings EMNLP 2022, генерация). Переводоведение фиксирует наш риск качественно: эксплицитация — универсалия перевода — снижает саспенс.
7. **Промптинг:** согласованное ядро вендоров — структурные блоки (XML хорошо, **JSON — худший** в long-context по замеру OpenAI), позитивные формулировки вместо голых запретов, reasoning-моделям не нужен ручной CoT; «сэндвич» инструкций (повтор ключевых констрейнтов после чанка) — дёшево и вендор-подтверждено. **NO_CHANGE редактору давать обязательно** (дефолт LLM — пере-редактирование: P51/R63 на GEC; правка безошибочного текста в минус COMET), но долю NO_CHANGE не читать как сигнал — эффект «опция-артефакт» (плацебо-опции срабатывают как «Unknown»: 15.75 пп, абстенция 32.9%). **«Двухпроходность в одном вызове» — арм НЕ ставить:** выигрыш мульти-проходности даёт refinement на готовом черновике (+1.05 COMET первый проход — это наш draft→editor), план/декомпозиция незначимы или в минус, DRT — файнтюн с ~12× output-токенов; self-check в том же completion наследует галлюцинации черновика.
8. **Параметры запроса: доказанной причины менять draft 0.3 / editor 0.4 нет** (ни одного замера temp для литперевода/худ-редактуры в 202426), но свип бессмыслен без двух wire-проверок: **thinking-режим DeepSeek МОЛЧА игнорирует temperature/top_p/penalties** (вендор-док) — наш draft temp 0.3 может быть **no-op**; у V3 был документирован маппинг API→model temp ×0.3 — в V4 не описан, нужен probe. Академические MT-кривые за ~0, вендор-рекомендация DeepSeek «1.3 для перевода» — за ось натуральности, которую академия не мерила. Gemini 3.x: temp=1.0 обязателен (вендор). min_p недоступен на всех наших API и научно оспорен.
9. **Живые грабли, пойманные пробами** (все на боевых ключах, 09.07): (а) **deepseek-эхо воспроизведено на приёмочной книге** — 2/3 сэмплов одной конфигурации вернули китайский исходник дословно (HTTP 200); (б) **gemini-2.5-flash интермиттентно 404 «no longer available»** (1 из 4 вызовов прошёл; модель ЕСТЬ в /models — «есть в /models ≠ работает») — это судья fidelity-оси `memory_eval` полигона; (в) **gemini-3.5-flash эмитит `finish_reason=content_filter: PROHIBITED_CONTENT`** на сцене насилия — вывод exp07 «ветку content_filter не эмитит ни один из 5 провайдеров» на новых моделях Gemini **мёртв**; (г) CJK-артефакт «每人» утёк в русский выход драфта (класс cjk_artifact — гейт нужен, работает).
10. **Эхо-митигции промптом работают и почти бесплатны, но модель-специфичны до инверсии (проба P4, мандат 3-bis/D19.2):** инструкция ПОСЛЕ текста и микро-few-shot сняли эхо **0/29 против базовых 3067% по армам (пул ~44%)** (grok-none база 3/10 — реплика exp10; deepseek thinking-ON база 2/3); префилл «Перевод:\n» (DeepSeek beta) — 0/6, но по токен-профилю **обходит thinking**; ⚠ явный языковой констрейнт на grok-none **инвертирует — 9/10 эха** (одна строка diff) → анти-эхо строки в боевые промпты только через per-model замер. Echo-гейт остаётся навсегда (рамка D19.2: митигация = экономия эскалаций, не замена гейта).
---
## Направление 1. Голос персонажа (центр мандата)
### 1.1 SOTA: что доказано, что дыра
- **SAMAS (arXiv:2602.19840, 23.02.2026) — поправка постановки: это НЕ speaker-aware метод.** «Spectrum-Guided Multi-Agent System for Style Fidelity in Literary Translation»: 81-мерный спектр из wavelet-преобразования **длин слов** детерминированно роутит текст в один из промпт-воркфлоу 6 агентов. Авторский стиль, не голоса персонажей; семантика мерена на нелитературных FLORES/WMT24, стиль — только human head-to-head без эффект-сайзов; неверный стилевой воркфлоу роняет ~5.5 XCOMET (абляция). **CONFIRMED** (препринт). Переносим только паттерн «дешёвый детерминированный сигнал → выбор промпт-варианта» — он проекту уже родной; сам метод не копировать.
- **Оси «голос/регистр говорящего» нет ни в одном стандартном бенче** литературного/вебновелльного MT: DITING (6 осей, 18.7k экспертных zh→en пар), WMT24 Literary (general quality + discourse awareness), BlonDe (entity/pronoun/tense). **CONFIRMED** (peer-reviewed). Прямого замера потери различимости голосов при MT (per-character stylometry источник vs перевод) не найдено — измерено только лексическое обеднение (MTLD 96→90 en→nl при MT, 2408.17308). **CONFIRMED-absence.** → Наша voice-ось — первый замер, строить самим (см. §1.5, пилот).
- **Измерительная технология существует, но EN-центрична:** стилевые эмбеддинги StyleDistance (2410.12757) — EN-only; **разрешение через добор: mStyleDistance (Findings ACL 2025) обучен на 9 языках ВКЛЮЧАЯ русский** (~40 стилевых фич, xlm-roberta-base 0.3B, MIT на HF) — но качество умеренное (AV ROC-AUC avg 0.66; STEL-or-Content: formality 0.71, остальные оси 0.300.37) → пригоден как **мягкий флаггер дрейфа, не гейт**. Персонажные эмбеддинги работают на фикшене: UAR+DramaCV — SOTA атрибуции цитат на 28 английских романах (Findings EMNLP 2024). Speaker-verification-as-eval: роль-плей LLM систематически **проваливает** верификацию спикера (2405.10150) — паттерн «различимы ли реплики без атрибуции» валиден как детектор потери голоса.
- **Доказанные механизмы удержания голоса** (API-совместимые): retrieval **курированных** реплик персонажа помогает, retrieval сырого текста книги «barely enhances» (CoSER, ICML 2025, 771 книга; потолок Character Fidelity фронтиров ~49%); переинъекция персоны ближе к концу контекста лечит **меж-ходовой** дрейф (SPR, COLM 2024 — к нашим stateless-чанкам дрейф-лора не применима, см. §3.2). Persona drift измерен: 0.75→0.55 за 8 раундов; ошибки long-form кластеризуются в середине нарратива (4060% длины); **люди ловят инжектированные ошибки консистентности с recall 17.1%** (авточекер 55% при precision 0.884) → холистическому чтению не доверять, нужны таргетные пробы.
- Для zh есть готовая рубрика: **CharacterEval** (peer-reviewed, 1785 мультитёрн-диалогов, 77 персонажей китайских романов, 13 метрик, отдельные оси speech style / behavior) — донор осей для судья-анкеты.
### 1.2 Клейм «exemplars > дескрипторов» — разбор (мандатный)
**Вердикт: REFUTED в универсальной форме, CONFIRMED в форме «гибрид с экземплярами в правильном формате».** Провенанс клейма — фольклор RP-практики (ChatHaruhi, на которую все ссылаются, количественной абляции НЕ содержит — проверено по ar5iv полнотекстом; Sec 6.4 — только качественное).
Что установлено первоисточниками:
- **RoleLLM (Findings ACL 2024, zh-бенч):** role description 9.85% win-rate → +демо **инлайном** 30.19% → те же демо **отдельными диалоговыми ходами** 61.79%. Формат подачи важнее наличия. **CONFIRMED с нюансами** *(ревью по первоисточнику: числа — arXiv-v1 c судьёй GPT-3.5; в камере-реди ACL те же условия = 9.3/29.8/63.3 с судьёй GPT-4; win-rate = частота ранга-1 среди трёх вариантов у LLM-судьи, не human; базовое zsp-условие включает catchphrases — микро-экземпляры, т.е. 9.85% ≠ «чистые дескрипторы»; «формат важнее наличия» — по win-rate-колонке, по Avg.Rank дельты сопоставимы; демо отбирались BM25-similarity; вывод статьи — «for GPT models». Направление и величины эффекта устойчивы в обеих версиях.)*
- **Против наивного few-shot:** для persona-диалога crafted-инструкция бьёт random 5-shot (0.191 vs 0.160, GPT-3.5; демо догоняют с ≥7) — **CONFIRMED**; дистиллированный из примеров структурированный «sheet» стиля бьёт RAG-пример (faithfulness win-rate 87/78% vs 39%, GPT-4o, 2502.13028) — **CONFIRMED**.
- **За экземпляры против нуля:** few-shot до 23.5× style-matching vs zero-shot (2509.24930); в художественном MT 20 примеров переводчика утраивают style precision (0.080.10→0.240.32) **при сохранном COMET** (2505.16612, peer-reviewed) — стилевые примеры, в отличие от шумного глоссария, верность не роняют. **CONFIRMED.**
- **Насыщение ~5:** от 2 до 10 примеров метрики имитации «меняются очень мало» (Findings EMNLP 2025). **CONFIRMED.**
- **Отбор по близости ВРЕДИТ:** topical-similarity selection роняет AA 69.33→36.00 (Enron — максимальное из четырёх падений; направление держится на всех датасетах и в AV; 2509.14543); retrieval с identical context — худший (0.094 vs random 0.160 той же таблицы при k=5; random в среднем по k — 0.188; первоисточник чисел — arXiv 2402.09954, persona-диалог: провенанс добавлен ревью). **CONFIRMED** *(нюанс ревью: катастрофичен именно near-duplicate retrieval; мягкая embedding-similarity ≈ random — бесполезна, не смертельна)*. → Фиксированный курированный набор, отбор по **разнообразию** — удачно совпадает с детерминизмом банка (RAG не нужен и вреден).
- **Дыры (honest):** контент-контаминация из стилевых exemplars количественно не исследована никем; **инъекция реплик персонажа при MT не описана нигде** (ни академия, ни бенчи) — наш пилотный арм закрывает реальную дыру литературы; вся эмпирика EN-центрична или X→EN.
### 1.3 Полевая эмпирика RP-сообществ (SillyTavern / NovelAI / AI Dungeon)
Готовый, обкатанный годами словарь механик — весь **без формальных замеров** (единственные числа — размеры и позиции, не эффект-сайзы; честно перепроверено — A/B-замеров форматов карточек не существует):
- **«Show don't tell» зафиксирован независимо** в Ali:Chat, PygmalionAI Wiki, Sukino Guides: голос держат образцы речи, не списки черт; рабочая доза **23 примера по ~150 токенов**; карточка ≤2000 ток., комьюнити-оптимум <600 permanent-токенов. **CONFIRMED (community).**
- **mes_example эфемерны by design:** SillyTavern вытесняет примеры диалогов из контекста поблочно при нехватке места — голосонесущий материал по умолчанию расходный; поле отвечает переносом голоса в постоянные поля. **CONFIRMED (vendor-doc).**
- **Двухслотовый паттерн Trappu (PList+Ali:Chat):** факты/черты — в Author's Note у конца промпта, голос (диалоги) — в постоянный префикс, лор — по триггерам. Доктрина трёх платформ «ниже в промпте = сильнее» (NovelAI AN на 3 абзаца от конца, «very strong effect»). **CONFIRMED.**
- **ST World Info = зрелый словарь селективной инъекции:** keys+secondary AND/NOT, scan depth, sticky/cooldown/delay, позиция/глубина вставки, бюджет (~25% контекста), inclusion groups, рекурсия; CCv3 стандартизовал декораторы @@depth/@@activate_only_after/@@additional_keys. **Спойлер-окна «с N по M» отсутствуют и там** (issue #5193 открыт с 02.2026) — только нижняя граница+инерция.
- **Bleed голосов в мультиперсонажном промпте признан нерешаемым на уровне карточки** (ST issue #1211 Out of Scope); рабочая миграция — Swap mode: в контексте голос только активного спикера. → Не давать редактору N полных досье; подсвечивать только спикеров чанка.
- **Context poisoning:** история чата — самоусиливающийся образец; отравленный контекст дешевле выбросить, чем чинить (+ Chroma «Context Rot»: у всех 18 фронтиров качество падает с длиной входа; сфокусированный ~300-ток. промпт превосходит полный 113k на LongMemEval).
### 1.4 Индустрия: игровая локализация / аниме / стриминг
Индустрия ведёт голос **структурированным артефактом с малым числом перечислимых полей**, не прозой — три сходящихся формата (все процессные свидетельства, количественных замеров эффекта нет нигде — честная граница):
- **Японский 口調表/話し方リスト — 5 полей: 一人称 (первое лицо), 二人称/呼び方 (обращения к другим), 語尾 (финальные частицы), уровень регистра (кэйго/тамэгути), NGな言い回し (запретная лексика персонажа).** CONFIRMED (Irisphere 31.01.2026, Alpaca Connect; оговорка: источники называют формат 話し方リスト, контекст AI-промптинга). Для ru прямой аналог полей: самоназвание, ты/вы-карта, регистр, речевые тики, табу-лексика.
- **IGDA Loc SIG Best Practices (2011/2012, PDF вскрыт):** «For characterizations, list explanations and samples on how a character should sound, lists of word choices, and accents or speech impediments… with real samples and word choices» + **обязательные метаданные каждой строки скрипта озвучки: file, speaker, line, constraint — и явный АДРЕСАТ** («important to specify the audience»). **CONFIRMED.**
- **Netflix KNP** — локируемый центральный глоссарий (Person/Location/Org/Term, пол, алиасы, style notes; lock к началу дубляжа) + компаньон **«Treatments list» — реестр «кто как к кому обращается», специально для языков с T-V** — прямой индустриальный прототип нашего реестра ты/вы. Матрица обращений названа вендором «самым сложным в управлении» (3 персонажа → 9 комбинаций; 呼称表 в JP-практике). **CONFIRMED.**
- **CAT/TMS первоклассного поля «speaker» НЕ имеют** (memoQ/Trados/Crowdin/Phrase/XTM — спикер едет колонкой/маркером; проверено по докам); game-TMS **Gridly (гайд 29.04.2026) описывает ровно наш паттерн как промышленный: «dialogue tagged with character metadata routes through character-specific prompt libraries»** с примерами реплик по эмо-состояниям — vendor-claim без замера, но прецедент продаваемости. FFXIV фиксирует голос **машинно-проверяемыми правилами** («сильфы не употребляют „я“») — прообраз NG-лексики как детерминированного флаггера. REFUTED из этого блока один суб-клейм: «LQA-чек-листы содержат голос как формальный критерий с цитатой…» — цитата оказалась сфабрикованной агентом (вердикт REFUTED, урок верификации работает); сама практика voice-багов как Major в LQA — PLAUSIBLE по вендор-блогам.
- **Аниме:** キャラ表 — визуальные модель-листы, НЕ речевые таблицы; речевые живут в геймдев-переводе и стриминг-глоссариях. Русская сторона: только «концепция локализации» с ты/вы и общим стилем (DTF 2023), детальных публичных полей нет.
### 1.5 Дизайн-выход: voice-профиль, инъекция, детектор
**Схема voice-профиля** (расширение `speech`-колонки → отдельный тип записи банка; поля по конвергенции 口調表 × аудиокнижный паспорт × series-bible):
```
voice_profile {
char_id → src/алиасы (активация тем же Aho-Corasick по имени в чанке)
register 1 строка: регистр+тон («ледяная краткость, повелительно»)
self_ref самоназвание («ваша служанка» / просторечное «я»)
address_default дефолт ты/вы (пары — в реестре обращений, см. §2)
lexicon_markers характерные словечки (≤5, они же — маркеры флаггера)
ng_lexicon запретная лексика персонажа (FFXIV-паттерн; чек детерминирован)
exemplars 35 коротких RU-реплик из УТВЕРЖДЁННОГО перевода ранних глав,
отбор по разнообразию ситуаций, НЕ по similarity; формат — скрипт-строки
brightness яркость голоса (приоритет инъекции; серые голоса не инжектить — проба T2)
since_ch/until_ch окна (маска/смена манеры — сюжетное событие)
}
```
**Правило инъекции:** (а) топ-23 главных героя — в кэшируемый префикс (стабильны на книгу, кэш почти бесплатен); (б) остальные — селективно: профиль активируется, когда персонаж **говорит** в чанке (имя+кии 说/道 рядом с кавычкой — детерминированно; полный speaker-ID — Annotator, §2.3), только спикеры чанка (Swap-паттерн, анти-bleed), 12 профиля на чанк в существующем бюджете 800 ток.; (в) **exemplars — русские** (монолингвальный редактор D1 исходника не видит; источник самонакапливающийся — approved-реплики ранних глав; холодный старт: первые главы без exemplars, профиль дозаполняется). **Цена:** ~100200 ток./активный профиль; на вебновеллу-500 ≈ +$0.20.3 к стандарт-миксу (~+23%; модель exp08) — приемлемо; в драфт-инъекцию дешевле (вход deepseek $0.14/M vs grok $1.25/M) и, по пробе P3, эффективнее — **голос выигрывается на драфте**.
**Дешёвый детерминированный детектор отклонения голоса** (двухслойный, по духу наших флаггеров):
- **Слой 1 ($0, Go, та же AC-машинерия):** ты/вы-флип в атрибутированной реплике против реестра пар (бинарный, надёжен на одной реплике — ru формальность = местоимение 2 л. + согласование глагола); самоназвание против `self_ref`; вхождение `ng_lexicon`; лексикон-маркеры; средняя длина реплик спикера по главе против базлайна. Прецедент детерминированного стиль-чека — Главред (правиловый, коммерческий). Канцелярит/просторечие-лексикон — своя работа (готового ru-словаря с пометами «разг./прост.» машиночитаемо НЕ существует; сырьё — дамп ru.wiktionary).
- **Слой 2 (опционально, вне горячего пути, $0 к COGS — локально):** mStyleDistance-эмбеддинг **агрегата** реплик спикера по главе/арке, аларм на дрейф между главами → эскалация к судье, НЕ блокирующий гейт (AA на коротких текстах 6673% — пер-репличный сигнал шумит; агрегировать).
- **Эвал-база детектора:** IWSLT22 formality EN→RU (600 золотых контрастных пар, CDLA-Sharing-1.0) + ru-срез mSynthSTEL (~3.3k пар) + пертурбационный сет из реплик 蛊真人 (свап ты/вы, инъекция канцелярита) — методология author≠reviewer как в валидации банка.
**Метрика пилота (голосовая ось, новая):** blind speaker attribution — судья угадывает спикера реплики без атрибуции (в источнике vs в переводе; падение различимости = потеря голоса) + BWS-рука «различимость голосов» + доля сохранённых маркеров. Не полагаться на холистическое чтение (recall людей 17%).
---
## Направление 2. Состояние сцены и знание читателя
### 2.1 Scene-state: что инъектить, что нет
- **Полной схемы сцены в MT не инъектил никто** (verified-absence; TransAgents несёт только book-level guidelines — CONFIRMED по TACL 2025; Agentic AI Translate 05.2026 явно НЕ трекает голос/сцену — цитируемое подтверждение белого пятна). Из генерации перенос осторожный: явный граф состояний персонажей снижает инконсистентность (Magnet 07.2026: 41% претензий; SCORE: 41.8% галлюцинаций) — но это генерация, не перевод.
- **Единственный срез с доказанной ценой ошибки И управляемостью — направленный регистр пары.** Voita ACL 2019 (En→Ru!): деиксис = 37% контекстных ошибок, из них 67% — ты/вы; контекст поднимает 50→83.5%; CoCoA-MT/IWSLT 202223: formality-тег управляет с 7392% acc без потери качества. Для zh→ru острее: исходник T-V маркирует слабо (您 спорадично), а **монолингвальный редактор исходника не видит вовсе**. **CONFIRMED** *(ревью по первоисточникам: 83.5 — у concat-бейзлайна на контрастивном сете, где 50% гарантированы построением, метрика скоринговая и меряет консистентность T-V, не абсолютный выбор регистра; 7392% — синтетическая огибающая CoCoA-MT (EN→6 пар, БЕЗ ru) и IWSLT22/23, где EN-RU только zero-shot — informal-контроль у одной системы падал до M-Acc 1.1 → управляемость для ru подтверждена классом методов, не ru-замером — довод за supervised-подобный явный тег, наш случай)*.
- **DelTA (ICLR 2025) — после сверки первоисточника (добор разрешил противоречие двух направлений):** headline «+4.58 пп/+3.16 COMET» — против sentence-бейзлайна, где +2.54 из +3.16 даёт голое контекстное окно; **чистый вклад памяти: абляция PNR +3.95 пп LTCR-1 при 0.02 sCOMET; на вебновеллах Guofeng +15.5…+32.7 пп сверх Context при ~+0.24 sCOMET**. Число «+0.36 COMET» в статье НЕ существует (не цитировать). LTCR-1 меряет самосогласованность с первым вхождением, не правильность. → Консистентность и качество **развязаны**; мерить своей осью; DelTA платит за память LLM-вызовами, мы — нет (COGS-козырь).
- **Не переносить:** эпистемику/ложь как state (соц-симуляции CiF/Versu/Talk of the Town — эффект на ТЕКСТ никем не мерен; перевод сохраняет ложь исходника бесплатно); отдельный NLP-трекер сцен (детекция границ сцен BERT F1=24%); имплицитный трекинг самим LLM (FANToM/ICML-26 — провал). Психолингвистика: читатель мониторит «кто/когда» сильнее «где» (event-indexing) — пространственная ось наименее ценна.
**Дизайн-выход — реестр обращений пар** (самый дешёвый новый тип записи; доцифровой прототип готов — Netflix Treatments list, 呼称表, series-bible «How characters address each other»):
```
address_pair {
speaker_id, addressee_id (направленная пара)
register ты|вы (+ форма: «молодой господин», титул, прозвище)
status/closeness 1 слово (иерархия — прямо влияет на ты/вы)
since_ch/until_ch переход ты↔вы = сюжетное событие (журнал D7 уже так решён)
}
```
Активация: оба имени в чанке (тот же AC), инъекция только CONFIRMED-пар (disposition-симметрия); ~1020 ток./пара; O(n²) гасится тем, что реальных пар с маркированным регистром — десятки. Флаггер: морфочек 2-го лица в атрибутированной реплике против реестра — **самый надёжный детерминированный voice-сигнал вообще** (наша проба: DeepSeek на «лёгких» парах держит ты/вы сам — ценность реестра сосредоточена в неоднозначных парах: равный статус, чужаки, перемены отношений; мерить на них).
### 2.2 Эпистемическое состояние читателя и спойлеры
- **Spoiler-aware translation: 0 работ** (7 адверсариальных поисков; PLAUSIBLE-absence). Переводоведение документирует риск качественно: **эксплицитация снижает саспенс** (Rodopi 2014: «when the narrator intervenes… the suspense decreases»; «suspense can also be neutralized by prologues or glossaries» — прямое предупреждение и для наших сносок/глоссариев). **CONFIRMED.**
- **Механика у нас есть:** состояние читателя = расширение схемы глоссария, не новая машинерия. Поля: `reveal_ch` (глава, где читатель узнаёт X) + пара алиасов **pre-reveal/post-reveal** («таинственный незнакомец» ↔ «её брат Ли»); механика идентична since/until+disposition; состояние читателя на чанк = множество сработавших reveal-точек — детерминированно, кэш не ломает.
- **Флаггер (2 детерминированных чека):** (а) post-reveal алиас/термин родства в выходе до `reveal_ch` (AC по нормализованному выходу — инфраструктура есть); (б) **родовые формы прошедшего времени/прилагательных у сущностей с `gender=hidden` до reveal** — механический спойлер-канал zh→ru (MT дефолтит в masculine — 2311.08836), никем не закрытый; это конкретизация C3 реестра памяти (морфо-гейт рода, Ф2-сайдкар).
- **Имплицит не работает:** FANToM (EMNLP 2023) — человек 87.5% vs GPT-4+CoT 26.6% (All), успехи ToM «иллюзорны»; OpenToM — психологические состояния проваливаются. НЕ класть «кто что знает» в бриф в надежде, что модель разберётся; только явные слот-констрейнты. **CONFIRMED.**
- **Прецеденты для вдохновения, не для Ф1:** StoRM (Findings EMNLP 2022) — инъектируемый KG «что читатель уже узнал» повышает когерентность генерации (**единственный** найденный reader-model прецедент); CAST (R2LM 2025) — инъекция знания о произведении усиливает LLM-детект спойлеров (знание-интенсивный > обученного); foreshadowing-реестр — одна работа (CFPG 01.2026, Foreshadow-Trigger-Payoff триплеты из BookSum). **Dramatic irony registry в Ф1Ф2 не строить** — ущерб покрывается reveal-окнами; наши спойлер-окна действительно оказались «половиной механизма», вторая половина — pre/post-reveal алиасы, копеечная.
### 2.3 Annotator-pre-pass: скоуп и error-budget (Ф2)
Вся индустрия работает line-level со speaker/addressee на каждой строке (IGDA), а мы — chunk-level без атрибуции: **без атрибуции прямой речи voice-инъекции и voice-флаггеру не к чему привязаться** — это предусловие обоих механизмов. Числа по zh (добор):
- Speaker-ID на китайских романах — зрелая область (WP/《平凡的世界》 2596 реплик; JY-QuotePlus; CSI): few-shot GPT-3.5 на уся 85.587.6% спикер, **адресат на 1015 пп хуже** (70.379.9%) — а для реестра пар нужен именно joint (~7084%); затюненная малая модель бьёт LLM (95.1/85.1%). Frontier-чисел (GPT-4o/DeepSeek-V3/Qwen2.5) на zh speaker-ID НЕ опубликовано; en-потолок Llama-3-70b на невиданном романе 99.8% (контаминация проверена). Implicit-цитаты — концентрат ошибок (en: 7278%→~53%).
- **Скоуп Annotator Ф1.5Ф2 (обязательное ядро):** (а) **детерминированный пре-гейт**: explicit-кии китайского (имя+说/道/问 у кавычки) правилами — бесплатно и точно; (б) LLM только на implicit-остаток; (в) выход — speaker+addressee per реплика с disposition: **инъекция/флаггер работают только по CONFIRMED-атрибуции**, AMBIGUOUS не инжектить (симметрия с банком). Извлечение отношений/иерархии zero-shot непригодно (GPT-3.5 F1 0.260.52) → пары курировать как глоссарий (сид+человек), не доверять аннотатору. (г) **Мусор (не аннотировать):** пространство/погода/объекты сцены (читатель «где» почти не мониторит; F1 24% у детекции сцен), эмоции без речевого следствия, эпистемика вне reveal-точек.
- **COGS:** аннотатор-пасс амортизируется на книгу при инжесте (не пер-чанк в промпт редактора!); цен в литературе нет — считать из токенов; дешёвая роль (deepseek/локаль-спот) ≈ порядка стоимости драфта (~10% стандарт-микса) — уточнит смок. **Микро-бенч на 蛊真人 обязателен** (~200 реплик gold: LLM-предразметка ~90% + ручная дочистка; контроль мемоизации Min-K% — книга в претрейне).
---
## Направление 3. Промптинг литперевода
### 3.1 Гайды провайдеров (все фетчи 09.07.2026; почти всё — вендор-рекомендации БЕЗ опубликованных эффект-сайзов)
- **Согласованное ядро:** структурные блоки для отделения данных от инструкций — XML-теги канон Anthropic (`<instructions>/<context>/<example>`); **OpenAI — единственный с прямым (качественным) замером форматов: XML хорошо, JSON — особенно плохо** в long context (GPT-4.1 guide). Позитивные формулировки вместо голых запретов (Anthropic+OpenAI; запреты — с мотивировкой и исключениями). Reasoning-моделям НЕ добавлять ручной CoT (OpenAI, xAI); противоречивые инструкции для reasoning-модели жгут reasoning-токены = деньги (GPT-5 guide).
- **Расхождение по позиции:** Anthropic/Google — длинные данные наверх, запрос/инструкции в конец («up to 30%» — без методологии); OpenAI GPT-4.1 — инструкции **с обеих сторон** длинного контекста (если однократно — сверху). → «Сэндвич» совместим с обоими лагерями и с нашей раскладкой: 12 строки повтора ключевых констрейнтов ПОСЛЕ чанка, кэш префикса не ломается — дешёвый арм пилота.
- **Few-shot раскол по классу модели:** Google «всегда» (Gemini), Anthropic 35 в тегах, OpenAI reasoning «сначала zero-shot», DeepSeek R1 — few-shot вредит. Судье Gemini — 35 консистентных примеров; thinking-драфту DeepSeek — zero-shot.
- **DeepSeek-специфика:** единственный вендор с переводным промптом (信达雅 в Prompt Library) и **официальной temp 1.3 для перевода** (без замера; ось натуральности); **deepseek-chat/reasoner отключаются 24.07.2026** (алиасы deepseek-v4-flash) — миграция слагов срочная (бэкенд в курсе, D8-волна); **thinking-режим не поддерживает temperature/top_p/penalties** (см. §4). Anthropic **выпилил prefill** (400 на 4.6+) — тренд хрупкости канала.
- Для grok-4.3 вендорской документации больше НЕТ (доки описывают grok-4.5); наши квирки (default low, off через явный `reasoning_effort:"none"`) держатся только на live-фактчеках проекта — мониторить при любом изменении поведения.
### 3.2 Формат и позиция инъецируемых блоков (эмпирика)
- **Универсально лучшего формата НЕТ** — оптимум модель-специфичен (GPT-3.5 любил JSON, GPT-4 — Markdown; разброс до 76 пп на открытых моделях от косметики форматирования; ±23% MMLU от одного разделителя). **CONFIRMED.** → Формат инъекции — **гиперпараметр пилота** (plain `src → dst` vs markdown vs XML, отдельно для DeepSeek и grok), не решение по литературе; JSON — наименее вероятный кандидат; дешёвый буст — явно объявить формат блока в префиксе.
- **Позиция:** lost-in-middle воспроизводится уже на ~3k токенов (GPT-3.5: 75.8→53.8%, середина ХУЖЕ closed-book 56.1% — Liu et al.); позиционные смещения сильнее всего при входе ≤50% окна — короткий промпт НЕ защищает. **CONFIRMED.** Наша раскладка (префикс → инъекция → чанк в конце) согласуется: критичное не в геометрической середине. Меж-ходовой persona-drift (SPR) к stateless-чанкам неприменим — внутри одного хода внимание на system почти константно → **кэшируемый префикс с voice-блоком силы не теряет** (снятие позиционного противоречия RP-доктрины «ниже=сильнее»: она про силу оперативных инструкций, наша пост-кэшевая инъекция у чанка ей соответствует).
- **WMT25 Terminology (peer-reviewed; WMT24-таски не существовало):** победители — **пояснительные констрейнты** (o3-term-guide, 99.1% term acc) и **code-switching** (подстановка целевых терминов прямо в исходник, laniqo, 99.3%); дамп всего словаря — 90.7%. Даже случайная терминология поднимала chrF++ (63.6→68.1→71.0). Контролируемого A/B форматов глоссария не существует — конфаунд с моделью. *(Ревью: цепочка 63.6→68.1→71.0 — строка ОДНОЙ системы o3-term-guide, Track 1; «случайная терминология» в постановке таски = случайные слова источника с ПРАВИЛЬНЫМИ переводами из референса — «случайные верные подсказки», не шум; у слабых систем proper≈random — §7.1 findings; laniqo — не чистый code-switching: +LoRA-файнтюн и Pareto-декодинг, победа по Парето-оси accuracy при chrF++ у дна таблицы.)* STITCH-паттерн (удаление отработанных терминов из промпта) — кандидат в бэклог селективной инъекции.
- **Разбавление:** 24 пп к 3k токенов нерелевантного паддинга; без лексического якоря деградация уже на 28k (NoLiMa) — **точный AC-якорь = правильная ставка**; до ~100 одновременных инструкций фронтир держит ≥94%, ошибки смещены в хвост списка (primacy ×2), доминирует omission → CONFIRMED-критичное ставить первым в блоке, десятки терминов безопасны, **post-check остаётся обязательным** (omission — главный отказ).
- **Пометки ненадёжности НЕ защищают:** текстовые credibility-метки хуже naive RAG у 713B (CrAM); reasoning-модели замечают шум в trace, но следуют ему; маркеры неуверенности в тексте **занижают оценки LLM-судей** (EMBER, NAACL 2025). → Наша дисциплина «AMBIGUOUS лучше не инъектить вовсе» получает внешнее подтверждение; ⟨проверить⟩-пометка — для человека и post-check, на модель не надеяться; замера на фронтирах 202526 нет (граница).
### 3.3 Анти-галлюцинации, NO_CHANGE, минимальный дифф, «двухпроходность»
- **Негативные констрейнты:** у фронтиров негация в основном понимается, но упоминание запрещённого таргета **праймит** его (нарушения растут с давлением контекста; слабый 7B-препринт); вендор-консенсус — позитивный рефрейминг. Измеренные враги: **плотность инструкций** (GPT-4.1: 98→48.9% при 10→500; омиссии 30:1) и **включённый CoT** (NeurIPS 2025: «performance drops when CoT prompting is applied» на IFEval/ComplexBench) → reasoning редактора off — правильно и для констрейнтов.
- **NO_CHANGE/AMBIGUOUS:** дефолт LLM-редактора — пере-редактирование (GEC: ChatGPT P51.2/R62.8 vs GECToR P71.2/R38.4; правка безошибочного en-ru 0.62→0.51 COMET — Ki&Carpuat NAACL'24) → канал NO_CHANGE давать обязательно, прописать позитивно в префиксе. НО: **опция-артефакт** — плацебо-опции срабатывают как «Unknown» (15.75 пп acc, абстенция 32.9%, p>0.2 к плацебо; 2507.16199) и reasoning-FT снижает абстенцию на 24% (Meta FAIR) → долю NO_CHANGE не читать как качество, норма в PE 375% — только per-book калибровка на смоке. *(Оговорка пробы P3: наш grok с узким мандатом на чистом черновике и так вернул текст дословно — пере-редактирование может оказаться не нашей болью; мерить на грязных черновиках.)*
- **Минимальный дифф:** достижим — aider udiff снизил «лень» GPT-4 Turbo втрое; **search/replace-блоки — лучший формат генерации патчей у фронтиров (0.940.95 EM)**; гибкий апплай обязателен (жёсткий парсер = 9× ошибок). Вся эмпирика — КОД; для прозы замеров нет. → Арм пилота: редактор выдаёт search/replace-спаны по русскому черновику + гибкий детерминированный апплай в Go; бонус — режет output-токены редактора (~90% COGS) и даёт «доказуемые правки» (§17 антипаттерн-дока) бесплатно.
- **«Переводи как будто прочитал всю книгу» одним вызовом (V1.13): арм НЕ ставить.** Эмпирики «план+перевод в одном completion» не существует; близкие замеры против: выигрыш даёт refinement на готовом черновике (+1.05 COMET первый проход, дальше плато — 2506.04521), самогенерация «опор» окупается только с внешней QE-селекцией и ~14× цены (MAPS), декомпозиция незначима/в минус, DRT — файнтюн, ~12× output-токенов; self-check в том же вызове наследует галлюцинации черновика (CoVe: joint 60.8 vs factored 71.4 FACTSCORE). Наш draft→editor уже реализует единственный доказанный проход.
### 3-bis. Эхо-мода на плотном CJK (добор критика; проба полигону — §Пинги)
- Наука: off-target/language confusion — воспроизводимый системный дефект с бенчмарком (LCB, EMNLP 2024); **копирование источника — механистический аттрактор** трансформеров (copy-suppression головы, NeurIPS 2023; translation-initiation features, AAAI 2026 — их абляция каузально даёт копирование); verbatim-copy на zh-парах у современных LLM (вкл. DeepSeek) задокументирован (2504.16286) и инфлирует surface-метрики. Few-shot снижает off-target; примеры курировать (плохие — вредят). «Инструкция после текста» доказана только как формат файнтюна (Post-Ins), на frozen API — своя проба.
- **Инвентарь prefill-каналов по нашему пулу (вендор-доки):** ЕСТЬ у DeepSeek (beta base_url, `prefix:true`), Mistral (GA; вендор сам документирует use case «Language Adherence» — принуждение языка ответа!), Kimi (`partial:true`; ответ БЕЗ префикса — конкатенировать до эхо-гейта); **НЕТ** у xAI/Gemini (trailing model → 400)/GLM/OpenAI; Anthropic выпилил. → Префилл русским — реализуемая митигация **ровно на нашем черновом канале DeepSeek**, но не кросс-провайдерная несущая конструкция; **echo-гейт остаётся обязательным навсегда** (аттрактор механистичен). Открытый вопрос — совместимость beta prefix с обязательным thinking (эхо-мина запрещает thinking-off) — первый шаг пробы.
- **Эмпирика проекта (exp10/D19, пакет-2 полигона, увязка):** grok-4.3 `reasoning_effort:none` на плотных CJK-фрагментах 蛊真人 — **эхо 40%** (4/10 + 1 дегенеративный луп); контроль reasoning-ON — 10/10 чисто (гипотеза владельца «thinking = ре-анкоринг задачи» согласуется с механистикой translation-initiation features); Mistral 10/10 чисто; DeepSeek thinking-ON 1/10. D19.2 обобщил класс: «reasoning-off + плотный CJK = зона эха» — свойство класса моделей, не квирк вендора.
- **Наша проба митигаций (P4, мандат 3-bis-в; сырые артефакты в scratchpad):** базлайн-реплика конфига exp10 на grok-none дала **3/10 эха** (стохастично и ПО ДРУГИМ фрагментам, чем у полигона — эхо не детерминировано per-fragment); **инструкция ПОСЛЕ текста — 0/10; микро-few-shot (2 пары zh→ru) — 0/10; комбо — 0/10**. На deepseek (эхо-фрагмент gu-008, база 2/3; SFW-кейс T1+реестр, база 2/3): **инструкция-после 0/6 суммарно, микро-few-shot 0/3 (gu-008), префилл «Перевод:\n» (beta prefix) — 0/6**. Wire-аудит по `usage.completion_tokens_details.reasoning_tokens` (пост-верификация по сохранённым сырым записям): **все v1-вызовы шли с thinking-ON per-call** (reasoning_tokens 1113204 > 0; конфиг polygon providers.json без thinking-параметра → дефолт enabled подтверждён на проводе, не по доке), причём **все три deepseek-эха P4 случились ПРИ thinking-ON** (базовые gu-008: rt 111/182; L-арм T1: rt 149 — испр. оркестратором по пересчёту сырья) — thinking снижает, но не исключает эхо (сходится с полигонскими «25% даже при thinking-ON», exp10-контроль 1/10). ⚠ **Анти-находка: явный языковой констрейнт («весь вывод — на русском, кириллицей») на grok-none ИНВЕРТИРУЕТ эффект — 9/10 эха** (verbatim-китайский без единого русского слова; diff с базой — одна строка system) — митигации модель-специфичны и могут усиливать аттрактор; в боевые промпты БЕЗ замера не вносить. **Префилл×thinking (открытый вопрос добора — закрыт wire-фактом):** beta prefix-completion на v4-flash работает (не 400) и **отключает thinking — `reasoning_tokens=0` во всех 6/6 префилл-вызовах** (в v1 без префикса тот же промпт даёт >0); предмет гейта (эхо) при русском якоре не возник (0/6), но цена по качеству реалий (thinking их чинит — exp03) не мерена → в драфт-канал только после fidelity-проверки. Рамка D19.2 сохранена: митигация = снижение частоты (экономия эскалаций), echo-гейт обязателен всегда.
---
## Направление 4. Параметры запроса (V1.8)
Свежая эмпирика (202426) **не даёт причины менять draft 0.3 / editor 0.4**: ни одного прямого замера temperature для литперевода или монолингвальной худ-редактуры не опубликовано (verified-absence). Косвенно: MT — самая temp-чувствительная задача с оптимумом около 0 по адекватности (12 открытых моделей, FLORES; монотонный спад), greedy ≥ sampling вне креатива (NAACL 2025), temp 0→1 незначим для problem-solving, «temp=креативность» не подтверждается (слабая корреляция с новизной, умеренная — с бессвязностью). Вилка с вендором: DeepSeek официально рекомендует **1.3 для перевода** — но это ось натуральности/translationese, которую академия не мерила. **Разрешается только своим свипом с ДВУМЯ осями (fidelity + натуральность).**
**Два wire-факта гейтят любой свип (оба CONFIRMED по вендор-докам):**
1. **Thinking-режим DeepSeek МОЛЧА игнорирует temperature/top_p/penalties.** Наш драфт-канал держит thinking ON (эхо-мина) → **temp 0.3 драфта, вероятно, no-op**. Это же означает: temp-арм драфта в пилоте фиктивен, пока не подтверждён non-thinking канал без эха.
2. У DeepSeek-V3 был документирован **нелинейный маппинг API→model temp** (×0.3 при T≤1: API 1.3 ≈ модельная 0.6); в карте V4 маппинг не упомянут — нужен live-probe (дисперсия выходов при API temp 0.01/1.0/2.0).
Прочее: **Gemini 3.x — temp=1.0 обязателен** (вендор: ниже — «looping or degraded performance»; судью не охлаждать, детерминизм добирать структурированным выводом/медианой повторов); reasoning-модели блокируют ручки (OpenAI o/GPT-5 temp=1 only; xAI reasoning — ошибка на penalties; статус grok-4.3 при `effort:none` неизвестен — probe бэкенду); **min_p не экспонирован ни одним нашим API и научно оспорен** (переанализ: при контроле гиперпараметров не превосходит бейзлайны) — исключить; **penalties ненадёжны против петель и портят длинный текст** (frequency ломается на длине; presence >1.2 деградирует) → петли лечить детерминированным флаггером (top n-граммы + slop-лист, EQ-Bench-паттерн) + redrive, не penalties.
**ТЗ полигону — параметр-свип (готовый арм, ~$12):** (0) пре-шаг, блокирующий всё: wire-аудит — пишутся ли sampling-параметры в thinking-канале DeepSeek (3×2 вызова, дисперсия на одном чанке) + V4-маппинг + grok `effort:none`+penalties; (1) драфт-арм (только если существует non-thinking канал без эха): API temp {0.3, 0.7, 1.0, 1.3} × оси {fidelity: M-набор memory_eval; натуральность: BWS/судья + MTLD/длины}; (2) editor-арм grok {0.4, 0.7, 1.0} — выше не идти (редактор слеп к оригиналу, дрейф не отловится); (3) судья Gemini temp=1.0 фикс; (4) min_p/penalties — вне скоупа.
---
## Направление 5. Прайор-арт наших «уникальных» механизмов
| Механизм | Прайор-арт | Вердикт для клейма стратревью |
|---|---|---|
| Спойлер-окна since/until | Нигде в переводческих тулзах (RP/CAT/фан-MT/патентные индексы). Ближайшее: **NovelCrafter Codex Progressions** (писательский тул: addendum/replacement записи видны ИИ только со сцены создания — готовый UX-паттерн «замена с главы N» одной операцией); SillyTavern sticky/cooldown/delay (только нижняя граница+инерция; окно NM — открытый фича-реквест #5193) | **Выживает** (PLAUSIBLE-absence: скрининг, не FTO — испр. ревью по собственному п.6 слабых мест) |
| Детерминированный no-LLM словарный слой | **Массовая практика фан-стека:** GalTransl — 译前/译后-словари + условный 条件字典 с булевой логикой + GPT字典 с селективной инъекцией по матчу батча; LunaTranslator — плейсхолдер-lock ZX?Z + `{DictWithPrompt}`; SakuraLLM v1.0 — `src->dst #annotation` как экосистемный стандарт; noveltrans — SHA-256 entity-lock; AiNiee build_glossary | **Снимается как уникальность, берётся как учебник**: уникальна не селективность, а формула «disposition+окна+бюджет+AC-детерминизм» |
| Scene-state инъекция в MT | Нет нигде (манга-MT берёт сцену из ИЗОБРАЖЕНИЯ — COLING 2025; Agentic AI Translate явно отказывается) | **Выживает** |
| Voice-exemplars в MT | Нет нигде; прайор-арт голоса в MT = стиль-хинты в info-поле глоссария (GalTransl `あたし→我/人家 "use 人家 when being cute"`, пол в LinguaGacha) и per-utterance formality/honorifics-контроль (IWSLT); продуктовые клеймы NAVER/Mantra/XL8 без раскрытых механизмов | **Выживает с сужением**: «механизм не раскрыт ни одним найденным конкурентом», не «первые вообще» (испр. ревью: «первые с опубликованным механизмом» ложно до фактической публикации) |
| Патенты | Терминологическая консистентность — есть (CN104298663A, CN103678287B, US11341340B2); NAVER honorific-патент (KR102188564B1) — глобальный per-request токен-контроль, не пер-персонажный; spoiler-/character-aware перевод — **не найдено**. ⚠ Статус: скрининг Google Patents-индекса, НЕ FTO (Espacenet 403, KIPRIS/CNIPA недоступны; Mantra JP-патенты не проверены — 503) | Риск низкий, статус честный |
Конкурентные механизмы голоса дороги для нашей COGS-модели: Mantra — длинный контекст (раздувает каждый чанк = деньги на 90%-редакторе), XL8 — файнтюн на серию (несовместим со стейтлесс API+кэш-префиксом). **Наш подход — единственный найденный, совместимый с кэшируемым префиксом и ~800-токенным бюджетом.**
---
## Направление 6. Креатив (гипотезы; каждая — со слотом; всё помечено 🧪)
1. 🧪 **Реестр обращений пар** (Treatments-list/呼称表-паттерн) — селективная инъекция по двум именам + детерминированный ты/вы-флаггер. Самый дешёвый и самый обоснованный новый тип записи (§2.1). Слот: инъекция + флаггер.
2. 🧪 **NG-лексика персонажа** (5-е поле 口調表; FFXIV-правила) — «этот персонаж никогда не говорит X» проверяется AC за $0. Слот: детерминированный флаггер.
3. 🧪 **Операция «замена термина с главы N»** (NovelCrafter progressions): одна команда ставит `until_ch=N` старой записи и `since_ch=N` новой — закрывает дыру «оба варианта активны». Слот: тулинг банка (tmctl), не пайплайн.
4. 🧪 **Голос негативными констрейнтами + лимит лексикона** (библия Freaks and Geeks: «never be too clever», «nothing more than teenager's lexicon») — для персонажей-масок дешевле экземпляров. Слот: префикс (voice-профиль, поле ng/lexicon-cap). Оговорка: негативы — с мотивировкой (§3.3).
5. 🧪 **Аудиокнижный «рефрешер»**: чтецы держат голос, переслушивая 23 записанные реплики перед сессией — прямой аналог наших exemplars; их паспорт из ~7 полей (age/pitch/pace/accent/emotional baseline/quirks) — донор полей voice-профиля. Слот: схема профиля.
6. 🧪 **`knows_since_ch` из писательских series bibles** («What they know as of each book / Secrets / Lies believed») — точечный флаг «X ещё не знает Y» тем же механизмом окон, только для сцен с активным секретом. Слот: селективная инъекция, Ф2+, после reveal-окон.
7. 🧪 **STITCH-паттерн** (WMT25): термин, отработанный моделью N чанков подряд, перестаёт инжектиться (экономия бюджета инъекции; post-check продолжает следить). Слот: селективная инъекция, бэклог.
8. 🧪 **Префилл русским на DeepSeek beta** как анти-эхо драфт-канала (+микро-few-shot zh→ru пары в кэш-префиксе + дубль «переводи на русский» после чанка). Слот: адаптер/промпт; проба — полигону (§Пинги).
9. 🧪 **Blind-attribution как судья-вопрос пилота**: «кто из персонажей говорит эту реплику?» по переводу без атрибуции против того же вопроса по исходнику — метрика потери голоса без разметки. Слот: арм пилота.
10. 🧪 **«Паспорт тона главы»** (ATTG/bracket-metadata из NovelAI): 1 строка `[Тон: мрачный; Темп: быстрый]` на чанк от Annotator. Оговорка: механизм завязан на файнтюн NAI — на инструкт-API перенос не гарантирован; только как дешёвый арм.
11. 🧪 **Эхо exemplar-контента** — контент-контаминация из образцов никем не мерена: добавить в пилот флаггер эха реплик-экземпляров в выходе (по образцу echo-контроля memory_eval). Слот: флаггер/метрика пилота.
---
## Пробы (живые, 2026-07-09; индикатив — малый N!)
**Материал:** 蛊真人, SFW-сцены с контрастными голосами: T1 — лесть служанки (§11, реплики 沈翠+方源, обрезано до SFW-границы), T2 — конфронтация братьев (§18, 方源+方正); источники экземпляров — §3, §8 (не пересекаются с тестовыми). **Стек:** deepseek-v4-flash (боевой драфт-промпт+глоссарий, thinking ON), редактор grok-4.3 (`reasoning_effort:"none"`, temp 0.4, боевой монолингвальный промпт), судьи grok-4.3 и gemini-3.1-flash-lite/3.5-flash (кросс-семейно к драфту, слепые метки, свап позиций). Инъекция аппроксимирована блоком в конце system (боевой слот — отдельное system-сообщение; оговорка). Сырые выходы: scratchpad сессии `probes/raw/*.json` (полные промпты/выходы/usage/цены; дубль — `/home/ubuntu/books/gu-zhenren/research15-probes/`). Потрачено $0.04 (P1P3; P4 добавил ~$0.24 — итог $0.28, сведён ревью по usage×прайс).
**P1 — voice-инъекция A/B/C/D на драфте** (A база / B дескрипторы / C экземпляры 24 реплики/спикер / D гибрид «строка регистра + 23 реплики»):
- **Детерминированный маркер** (самоуничижительное самоназвание 奴婢×4 в T1; прототип флаггера-слоя-1): база **1/4** (сплющено в «я»), дескрипторы 3/4, **экземпляры 4/4, гибрид 4/4**. Ты/вы служанка→господин: везде «вы» (0 нарушений; частично маркировано 您 в исходнике).
- **Слепые судьи** (5 валидных вердиктов: grok ×2 свапа, gemini-lite ×2, gemini-2.5-flash ×1 — испр. оркестратором: оба вызова gemini-3.5 на T1 упали 503): **гибрид D — ранг-1 единогласно во всех пяти**; порядок B/C/A ниже нестабилен (позиционный шум). Согласуется с предсказанием литературы (sheet+exemplars > каждого по отдельности). *(Пересчёт ревью: счётчики маркера — выход флаггера analyze_voice.py, включающего смежный маркер «осмел-» и двойной счёт внутри реплики; строгое послотовое выравнивание 奴婢×4 даёт база 0/4 · дескрипторы 2/4 · экземпляры 3/4 · гибрид 4/4 — порядок армов тот же.)*
- **T2 (братья, «лёгкая» сцена — голоса несёт содержание):** маркеры арм-нейтральны (ты/вы 0 нарушений везде), судьи предпочли БАЗУ армy C (2/2 свапа) — на немаркированных голосах инъекция шумит. → **Селективность по яркости: инжектить профили только маркированных голосов** (поле brightness).
- P2 (реестр ты/вы пар, R-арм): на этих чанках лифта нет — пары «лёгкие» (претрейн/您); ценность реестра сосредоточена в неоднозначных парах — **готовое ТЗ полигону** (трудные пары: равные статусы, смена отношений, отсутствие 您).
**P3 — сглаживает ли монолингвальный редактор голос:** черновики T1-A (сплющенный) и T1-C (голосовой) → grok-editor ± voice-блок. Результат: **3 из 4 конфигураций вернули черновик ДОСЛОВНО** (нулевой дифф; в четвёртой — одна микроправка). Сглаживание голосов редактором не воспроизвелось; **восстановление** голоса voice-блоком — тоже (сплющенный A остался сплющенным). → Голос выигрывается на драфте; редактору — констрейнты сохранения, не восстановления. Побочно: «пере-редактирование как дефолт LLM» (§3.3) на нашем узком мандате+чистом черновике не проявилось — grok-редактор экстремально консервативен (N=4, чистые короткие черновики; на грязных может быть иначе).
**Пойманные операционные грабли** (все с сырыми артефактами): deepseek-эхо 2/3 на одной конфигурации (§3-bis); **gemini-2.5-flash — интермиттентный 404 «no longer available» при наличии в /models** (судья fidelity-оси memory_eval!); gemini-3.5-flash — 503 high demand + **`finish_reason=content_filter: PROHIBITED_CONTENT` на сцене пощёчин** (exp07-вывод о мёртвой ветке content_filter не переносится на Gemini 3.5); gemini-3.1-flash-lite — рабочий; CJK-утечка «每人» в русском выходе драфта (валидация cjk-гейта); wire-грабля `extra_body.google` (нужен дабл-нест — уже знал polygon providers.json).
**P4 — эхо-митигции (мандат 3-bis-в, дополнение после амендмента 17ccea4/D19.2).** Материал: 10 эхо-провоцирующих zh-фрагментов пакета-2 полигона (`refusal_corpus_gu`, уровень-2 violence, скрин уровня-3 чист — аудит полигона) + мой SFW-кейс T1+реестр. Конфиги — точная реплика exp10 (grok-4.3 `reasoning_effort:none` temp 0.3 / deepseek v1 thinking-ON / система refusal_bench). Метрика — детерминированная (cjk_share>0.15), качество переводов НЕ судилось (только эхо-ось):
| Конфиг (база) | База | Инстр. ПОСЛЕ текста | Микро-few-shot | Языковой констрейнт | Комбо | Префилл «Перевод:\n» |
|---|---|---|---|---|---|---|
| grok-4.3 none, 10 фраг. | **3/10** (полигон: 4/10) | **0/10** | **0/10** | **⚠ 9/10** | **0/10** | канала нет (xAI) |
| deepseek think-ON, gu-008 ×3 | **2/3** | 0/3 | 0/3 | — | — | **0/3** (reasoning_content отсутствует) |
| deepseek think-ON, T1+реестр ×3 | 2/3 (P1) | 0/3 | — | 1/3 | — | **0/3** |
Итог: дешёвые митигации (постинструкция ≈10 ток. некэшируемого хвоста; few-shot — в кэшируемый префикс ≈0) сняли эхо 0/29 против базовых 3067% по армам (пул ~44%) на обоих провайдерах; языковой констрейнт на grok-none — **инверсия в 9/10** (одна строка diff, verbatim-эхо без русского) → промпт-строки против эха валидировать per-model замером, не здравым смыслом. Эхо стохастично по фрагментам (наши эхо-фрагменты пересекаются с полигонскими частично: gu-003/008 да, gu-009 у нас/не у них, gu-001/006 у них/не у нас).
---
## Сводная таблица: боль → механизм → слот → цена → как мерить → фаза
| Боль (источник) | Механизм | Слот архитектуры | Цена COGS/токены | Как мерить | Фаза |
|---|---|---|---|---|---|
| Стирание голосов маркированных персонажей (12-common §3; проба: 1/4 маркеров у базы) | **Voice-профиль**: гибрид «1 строка регистра + 35 RU-экземпляров» (схема §1.5); отбор по разнообразию, БЕЗ similarity-RAG; только спикеры чанка; топ-2 героя — в префикс | Драфт-инъекция (тот же AC по имени спикера) + префикс; редактору — только констрейнт сохранения | ~100200 ток./активный профиль; ≈+$0.20.3/вебновелла-500 (+23%) | Арм пилота A/B/C/D (наша проба = скаффолд) + маркеры слоя-1 + blind attribution; эхо-флаггер экземпляров | Ф2 (сид вручную на приёмке Ф1 — дёшево) |
| Рандомное ты/вы в парах (04-unhappy §3; 67% деиксис-ошибок En→Ru) | **Реестр обращений пар** (speaker→addressee, register, since/until; Treatments-list-паттерн) | Селективная инъекция по ДВУМ именам; CONFIRMED-only | ~1020 ток./пара, редко >2 пар/чанк | Детерминированный ты/вы-флаггер по атрибутированным репликам; полигон-эксп на ТРУДНЫХ парах | Ф2 (поля уже в духе D7-журнала) |
| Дрейф голоса на дистанции книги (никем не измерен — §1.1) | **Voice-флаггер 2 слоя**: (1) детерминированные маркеры (ты/вы-флип, self_ref, NG-лексика, длины) $0; (2) mStyleDistance-агрегат по главе, локально | Детерминированный флаггер + офлайн-телеметрия | $0 / $0 (локаль) | Precision на пертурбационном сете (свап ты/вы, канцелярит-инъекция); IWSLT22-RU + mSynthSTEL-ru | Ф2 |
| Спойлер формулировкой/референцией (12-common §16; эксплицитация против саспенса) | **Reveal-окна**: `reveal_ch` + pre/post-reveal алиасы; морфо-чек рода у `gender=hidden` до reveal | Расширение спойлер-окон глоссария (та же механика) + флаггер | ~0 (десятки reveal-точек на книгу) | Мини-реестр reveal-точек приёмочной книги + judge-вопрос «раскрыто ли X до гл. N» | Ф2 (морфо-род — сайдкар C3) |
| Эхо на плотном CJK (боевое: grok-none 40% exp10, deepseek 25%) | **Замерено (P4): инструкция-после-текста + микро-few-shot = 0/29 vs база 3067% по армам (пул ~44%)** на обоих провайдерах; префилл DeepSeek beta 0/6 (но обходит thinking); ⚠ языковой констрейнт на grok-none — ИНВЕРСИЯ 9/10, не вносить; **echo-гейт остаётся навсегда** (D19.2) | Промпт (few-shot в кэш-префикс, постинструкция в хвост) + адаптер (prefix — опция) | ~0 (префикс кэшируется; хвост ~10 ток.) | Сделано индикативно (P4); остаток: fidelity-цена митигаций (не судилась) + prefill-качество реалий без thinking | Ф1.5 (снижает COGS эскалаций) |
| Атрибуция реплик — предусловие голоса и пар (§2.3) | **Annotator-ядро**: детерминированный пре-гейт (имя+说/道) + LLM на implicit + disposition; отношения — курировать как глоссарий | Пре-пасс инжеста (амортизируется на книгу) | ~порядка стоимости драфта, один раз | Микро-бенч ~200 реплик 蛊真人 (gold; joint speaker+addressee; Min-K% контроль мемоизации) | Ф2 |
| Пере-редактирование/потеря NO_CHANGE (§3.3; не воспроизвелось на чистом черновике) | NO_CHANGE-канал позитивной формулировкой + minimal-diff (search/replace + гибкий Go-апплай) | Промпт редактора + раннер | Минус output-токены (редактор = 90% COGS) | Арм пилота: diff-режим vs полный рерайт (verbatim-rate, COGS, качество) | Ф2 (арм) |
| Формат/позиция инъекции (модель-специфично — §3.2) | plain-строки vs markdown vs XML; сэндвич (повтор констрейнтов после чанка) | Рендер инъекции | ~0 | Дешёвый арм пилота отдельно для deepseek и grok | Ф2.5 |
| Слепой temp-свип (§4) | Пре-шаг wire-аудита (thinking×sampling no-op; V4-маппинг; grok penalties) → потом свип с двумя осями | Полигон-эксперимент | ~$12 | ТЗ в §4 | Ф2.5 (пре-шаг — сейчас) |
---
## Честные слабые места
1. **Все probe-числа — индикатив:** N=2 сцены × 1 сэмпл/арм, одна книга (в претрейне — модель «знает» персонажей!), инъекция аппроксимирована концом system, exemplars курировал автор проб (author=curator; в проде — approved-переводы). Единогласие судей по гибриду устойчиво к свапу, но 5 вердиктов — не мощность. Претрейн-знакомость 蛊真人 может занижать ценность инъекции (модель различает братьев сама) и завышать лёгкость ты/вы — вебновелльный срез вне претрейна обязателен (та же оговорка, что у всей эмпирики проекта).
2. **P3 (редактор не сглаживает) — 4 вызова на чистых коротких черновиках.** Верить как «страх снят» нельзя; верить можно как «на дефолтном конфиге пере-редактирование не дефолт». На длинных/грязных черновиках и при think-ON поведение может отличаться — рука пилота 7-bis это покроет.
3. **Клейм «exemplars>дескрипторов» проверен на РОЛЬ-ПЛЕЕ и авторском стиле, не на переводе** — инъекция реплик при MT не изучена нигде (наш арм будет первым), перенос RoleLLM-чисел на zh→ru — по аналогии. Формат «отдельные диалоговые ходы» (сильнейший по RoleLLM) в наш одно-сообщенческий слот инъекции переносится лишь частично (скрипт-строки) — форма подачи в боевом слоте не оптимизирована.
4. **Вся измерительная база голоса EN-центрична**; mStyleDistance покрывает русский, но ru-специфичных AV-чисел не публикует (0.66 avg на чужих языках), 94.7% разделимости ru-регистров — невоспроизводимо (артефакты не выложены). Ru-детектор до собственной валидации — гипотеза с прецедентами, не факт.
5. **Ты/вы-реестр не показал лифта на пробе** — потому что пары были лёгкими. «Мерить на трудных парах» — обещание, а не результат; возможно, DeepSeek и там справится сам, и реестр станет только флаггер-осью (тоже ценно, но дешевле).
6. **Негативные absence-клеймы** («никто не делал X») — это PLAUSIBLE по природе: патентный скрининг не FTO (Espacenet/KIPRIS/CNIPA недоступны), промышленные механизмы (NAVER/Mantra/Yuewen) могут существовать непублично; reddit-треды не индексируются — RP-консенсус реконструирован по докам/гайдам/issues.
7. **COGS-оценки voice-слоя** (+$0.20.3/вебновелла) — модельные (exp08-пропорции), не замер; цена Annotator-пасса вообще не оценена литературой — только собственный смок ответит.
8. **Часть первоисточников не вскрыта:** OpenReview-рецензии DelTA (anti-bot), точные PDF-таблицы OpenToM/SIG/SPC, Netflix KNP-шаблон (за партнёрским логином), «When Thinking Fails» per-model дельты (PDF не парсится), 2509.24930 verbatim. Помечено в направлениях; на несущие выводы не опирается.
9. **Соседний функционал не перепроверялся**: выводы «уже установлено» (CoT-плато, in-context демо, editor-bake-off) взяты как данность по мандату — если пилот их флипнет, локальные выводы этого дока (напр. «двухпроходность не ставить») пересмотреть.
10. **P4 (эхо-митигции) — индикатив с тремя ограничениями:** (а) качество митигированных переводов НЕ судилось — только эхо-ось; постинструкция/few-shot могли внести другие искажения (маловероятно, но не исключено); (б) корпус один (10 violence-фрагментов + 1 SFW-чанк одной книги из претрейна), N на арм 10/3; (в) инверсия языкового констрейнта (9/10) может быть чувствительна к формулировке строки — проверена ОДНА формулировка; вывод «не вносить без замера» устойчив, вывод «любой языковой констрейнт вреден» — нет. Статус thinking в каждом вызове верифицирован по wire (`reasoning_tokens` в сохранённых usage: v1 всегда >0, префилл всегда =0) — это НЕ допущение; вендор-док beta prefix про взаимодействие с thinking молчит — поведение установлено эмпирически, при смене API перепроверять.
## Ключевые источники (сверх процитированных инлайн)
Направление 1: arXiv:2602.19840 (SAMAS); 2510.09116 (DITING); 2412.11732 (WMT24-Lit); 2408.17308 (lexical diversity); 2410.12757 + aclanthology 2025.findings-acl.869 (StyleDistance/mStyleDistance); 2406.11368 (UAR-цитаты); 2405.10150 (speaker-verification); 2502.09082 (CoSER); 2402.10962 (persona drift/SPR); 2603.05890 (long-form errors, human recall 17%); 2401.01275 (CharacterEval); aclanthology 2024.findings-acl.878 (RoleLLM); 2502.13028 (sheet>RAG); 2505.16612 (MT-персонализация); 2025.findings-emnlp.532 (насыщение/имплицитные стили); 2509.14543 (similarity вредит); ar5iv 2308.09597 (ChatHaruhi — без абляции); docs.sillytavern.app, rentry.co/alichat, wikia.schneedc.com/trappu, docs.novelai.net, github character-card-spec-v3; IGDA Loc SIG v2.2 PDF; note.com/renka_tono (話し方リスト); ATA-AVD KNP; partnerhelp.netflixstudios.com; gridly.com (04.2026); GDC2007-Honeywood.
Направление 2: aclanthology P19-1116 (Voita деиксис); 2022.findings-naacl.47 + iwslt.org/2023/formality (CoCoA-MT); 2410.08143 + ar5iv (DelTA, сверка таблиц); 2025.tacl-1.42 (TransAgents); 2607.00918 (Magnet); 2503.23512 (SCORE); 2310.15421 (FANToM); 2402.06044 (OpenToM); 2112.08596 (StoRM); 2025.r2lm-1.11 (CAST); 2601.07033 (CFPG); 2311.08836 (gender-канал); 2103.11878 (BWB); Inform7/CiF/Graphiti-доки; 2408.09452 (zh speaker-ID GPT-3.5); 2312.14590 (SIG/WP); 2507.04852 (zh relations); 2025.naacl-short.62 (Llama-3 контаминация проверена).
Направление 3: platform.claude.com long-context-tips / use-xml-tags; developers.openai.com gpt4-1 + gpt-5 guides + reasoning-best-practices; ai.google.dev long-context / prompting-strategies / gemini-3; api-docs.deepseek.com (parameter_settings, thinking_mode, news260424, chat_prefix_completion); docs.mistral.ai/guides/prefix; platform.moonshot.ai partial; lost-in-the-middle (Liu); 2508.07479 (относительная позиция); 2507.22887 (демо в system); 2411.10541+2310.11324 (формат); 2025.wmt-1.30 (WMT25 Terminology); 2402.14848 (dilution); 2502.05167 (NoLiMa); 2507.11538 (IFScale); 2406.11497 (CrAM); 2025.naacl-long.452 (EMBER); 2507.16199 (Abstention Inflation); 2506.09038 (AbstentionBench); 2404.07851+2303.13648 (over-editing); aider.chat udiff; 2510.12487 (Diff-XYZ); 2506.04521; 2305.04118 (MAPS); 2412.17498 (DRT); 2309.11495 (CoVe); 2406.20052 (LCB); 2310.04625 (copy-suppression); 2504.16286 (verbatim zh); 2308.12097 (Post-Ins); 2505.11423 (CoT vs instructions).
Направление 4: 2506.07295 (temp-кривые MT); 2025.naacl-long.211 (greedy); 2024.findings-emnlp.432 (01 плато); 2405.00492 (temp≠креативность); 2506.13681 vs 2407.01082 (min_p спор); 2504.20131+2512.04419 (penalties); HF DeepSeek-V3-0324 README (маппинг temp); eqbench longform.
Направление 5: github GalTransl/LinguaGacha/SakuraLLM/noveltrans; docs.lunatranslator.org; novelcrafter.com progressions; ST issue #5193; patents.google.com (CN104298663A, KR102188564B1, US20070294077A1, KR20260021445A); issueinsight.co.kr + byline.network (NAVER 캐릭터 인식 번역, 05.2026); prtimes.jp (Mantra); xl8.ai; chinawriter.com.cn (Yuewen); 2605.17041 (Agentic AI Translate).
Направление 6/доцифровое: 7kingdoms.ru (Виленская, глоссарий ~100 стр.); ata-divisions.org (Treatments list); louiseharnbyproofreader.com (style sheet); slate.com (библия Freaks and Geeks); jaymyersvoiceover.com (голосовой паспорт чтеца); rivereditor.com/janefriedman.com (series bible «What they know»); hp-games.net (Росмэн-дрейф — негативный контроль); glvrd.ru/api (Главред).