textmachine/docs/research/15-voice-and-state.md

99 KiB
Raw Blame History

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 (Главред).