17 KiB
Пере-прогон rerun2 — отчёт (蛊真人, главы 1–5, zh→ru)
Сессия: операционная, пост-D39.19 (промт docs/PERERUN_SESSION_PROMPT.md). Дата: 2026-07-23.
Стенд: /home/ubuntu/books/gu-zhenren/rerun2/ (всё ВНЕ git). backend/+docs/ — не трогались (read-only).
Прогон: ОДИН --resnapshot fresh-translate среза глав 1–5 через прод-стек D38.5, три арма редактора.
0. Итог одной строкой
Прод-путь отработал чисто. Несущий инвариант D39 «переоплата ОДНА» подтверждён живьём: драфт-волна оплачена ОДИН раз ($0.0109) и резюмится за $0 во всех трёх армах редактора (0 новых draft-вызовов на арм; draft-снапшот 4ed6cdd97fae бит-стабилен). Эхо-мины нет нигде (echo_draft=0, echo_edit=0). Три арма разошлись по качеству: glm-5 — чистый (0 флагов), mistral — дешёвый но рубленее и хуже по глоссарию, deepseek-pro — лучшая структура/глоссарий, но 3 катастрофы CJK-leak (оставляет китайские заголовки глав).
1. Деньги — реальный итог эксперимента (леджер)
Реальные траты = сумма ОТДЕЛЬНЫХ вызовов (драфт — один раз; каждый арм — своя edit-волна; судья). Пер-DB committed НЕ суммировать — арм-DB это КОПИИ базового (несут скопированный glm-edit; двойной учёт).
| Волна / арм | Модель | Вызовы | $ (реальные) |
|---|---|---|---|
| Драфт-волна (единожды) | deepseek-v4-flash (thinking-ON) | 10 | $0.010931 |
| Edit — арм base | glm-5 | 7 | $0.076583 |
| Edit — арм mistral | mistral-large-2512 | 7 | $0.040093 |
| Edit — арм deepseek-pro | deepseek-v4-pro | 7 | $0.040555 |
| Судья-риг (probe+floor+cat+pairwise) | gemini-3.1-pro-preview + grok-4.3 | 140 | $6.461700 |
| ИТОГО ЭКСПЕРИМЕНТА | $6.633102 |
Реальный API-расход = пайплайн $0.171402 + судья $6.461700 = $6.63 — под потолком $15 книжным/дневным. Судья — доминирующая статья (полные окна + gemini thinking + grok-фолбэк на 3-0). Порог «50% до конца base edit» ($7.50) не сработал (к концу base-edit потрачено <$0.09). Прогон завершён 23.07; платных deepseek-вызовов на 24.07 (катовер слагов) нет — прайс-ре-чек не требуется (судья на gemini/grok).
Пер-арм COGS-проверка (5 глав): glm $0.0766 · mistral $0.0401 · deepseek-pro $0.0406. Свап-армы дешевле базы (совпадает с планом 11 §6(g): свап-редакторы дешевле glm).
2. Подтверждение $0-резюма драфта (несущий D39-инвариант)
На КАЖДОМ из трёх армов translate --resnapshot резюмил драфт-волну за $0.000000 — ни одного нового вызова deepseek-v4-flash:
| Арм | draft model-calls в прогоне | draft committed | draft snapshot |
|---|---|---|---|
| base (glm) | 0 (все «stage resolved from chunk_status») | $0.010931 (без изменений) | 4ed6cdd97fae |
| mistral | 0 (grep подтверждён) | $0.010931 | 4ed6cdd97fae |
| deepseek-pro | 0 | $0.010931 | 4ed6cdd97fae |
Механика: mined_delta = Source:mined → двигает ТОЛЬКО enriched (edit) снапшот; base-банк (draft) не меняется → baseMemoryVersion стабилен → draft-чекпоинты под snapshot_draft не пере-гоняются. Каждый арм = отдельный snapshot_edit (glm 211b6aac48ea / mistral e71b99087601 / deepseek-pro d769c9f7d51d), edit пере-пиннится+пере-оплачивается, draft — нет. Армы гонялись на КОПИЯХ базового DB (draft-чекпоинты переиспользованы, не пере-оплачены).
3. Майнинг-стоп (W1.5) и ТАЧПОЙНТ №1
Драфт-волна → банк-майнинг-стоп (exit 3 = WaveSignatureStop), карта у guzhenren-rerun2.db.mined-signature.yaml. Предложено 3 новых терма (сверх 52 подписанных из exp16-карты — все 52 уже в seed-v2, майнер их исключил).
| Терм | occ | Что это | Решение владельца |
|---|---|---|---|
| 和智慧 | 7 | ложное срабатывание (和=«и»; строка «力量蛊和智慧蛊») | reject → mined_rejects |
| 花海 | 8 | нарицательное «море цветов» (поле 月兰花) | reject → mined_rejects |
| 陈博 | 6 | второстеп. персонаж (古月陈博, провалил тест) | promote → «Чэньбо» (m), alias 古月陈博 |
Плюс владелец добавил 2 гу-типа, которые майнер не поймал/сегментировал неверно (за 和智慧 спрятаны): 智慧蛊→«гу Мудрости», 力量蛊→«гу Силы» (третья пара 人祖三蛊, консистентно с seeded 希望蛊→«гу Надежды»).
Счётчики майнинг-стопа: предложено 3 · покрыто exp16-картой 0 (все её термы уже в seed) · резидуал 3 (2 reject + 1 promote) · доп. добавлено 2. Merged seed+mined lint (60 термов) = 0 коллизий. Пере-запуск → дельта пуста → auto-continue.
Материализация в выводе (проверено): 南疆→«Южные земли» (гл.4), 陈博→«Гуюэ Чэньбо» (гл.4), 力量蛊/智慧蛊→«гу Силы»/«гу Мудрости» (гл.5) — все отработали.
4. Детерминированные сигналы качества (наблюдаемость, не гейт) — по армам
| Сигнал | glm-5 (base) | mistral | deepseek-pro |
|---|---|---|---|
| edit $ | 0.0766 | 0.0401 | 0.0406 |
| hard-флаги | 0 | 0 | 3 (sanitizer_stripped) |
| exit code | 0 | 0 | 2 (completed-with-flags) |
| echo_draft / echo_edit | 0 / 0 | 0 / 0 | 0 / 0 |
| structure: предл./нарратив-абзац | 2.65 | 2.16 (рубленее) | 3.43 (лучшая) |
| dialogue-dash | 4 | 1 | 0 |
| glossary-misses | 3 | 5 (худшая) | 1 (лучшая) |
| cosmetic-strip units | 0 | 0 | 3 (42.9%) |
| post-check miss | 0 | 0 | 1 (开窍) |
deepseek-pro — 3 катастрофы CJK-leak (санитайзер D30.3 поймал и вырезал, флаг+skip; сырьё в export НЕ течёт):
- гл.1/чанк0:
第一节,纵身亡魔心仍不悔(маркер+заголовок главы оставлены по-китайски) - гл.4/чанк0:
第四节 - гл.5/чанк0:
改善
Т.е. deepseek-v4-pro как редактор оставляет китайские заголовки глав в русском выводе — санитайзер их стрипает → у этих глав в export может отсутствовать заголовок. glm/mistral заголовки переводят («Глава 1…», «Раздел 2…»). Мелочь глазами (glm): открыл их again (гл.1, латиница), войть (гл.2), Вперди (гл.3) — авто-QA поймал again.
Сигналы бэкенда идут РЯДОМ с вердиктами судьи (§6), НЕ сливаются в одну цифру (без сфабрикованной сходимости).
5. Время волн
| Волна | старт→конец (UTC) | длит. |
|---|---|---|
| Драфт (10 чанков, 4 воркера) | 19:35:52 → 19:37:14 | ~82 с |
| Edit base glm-5 (7 ед., 4 воркера) | 19:47:45 → 19:49:48 | ~123 с |
| Edit mistral (7 ед., rate-guard=2) | 19:53:26 → 19:56:03 | ~157 с |
| Edit deepseek-pro (7 ед., thinking) | 19:56:20 → 19:58:39 | ~139 с |
mistral медленнее из-за rate-guard (max_concurrency 2 вместо 4) — но ноль retry-fails (без гуарда полигон ловил ~48%). Гуард отработал.
6. Судья-риг (D39.7) — gemini-3.1-pro-preview (+ grok-4.3 фолбэк)
Полные окна (без обрезки), per-vote JSONL, position-swap, катастроф-скрин ко ВСЕМ армам, floor-пасс. 140 вызовов, $6.4617 (105 gemini + 17 grok-фолбэк + ранние без judge-тега); 0 аномалий. Рига — eval/rerun2_judge/judge.py, результаты — judge/judge_results.json, per-vote — judge/votes_*.jsonl.
Аномалия→вендор-дока (правило двух направлений): на ед. 3-0 (сцена Шэнь Цуй, мягкий сексуальный подтекст) gemini fail-closed content_filter: PROHIBITED_CONTENT — задокументированный квирк D22.6 (Gemini 3.x неконфигурируемо фейлит на сексуальном; судья такого — Grok). НЕ гадал: добавил grok-4.3-фолбэк (кросс-семейный к zh→ru редакторам, не author==reviewer) → ед. 3-0 судил grok.
Floor (judge-noise): 14/14 tie на identical-тексте → шум 0. Судья ни разу не предпочёл идентичное идентичному → pairwise-предпочтения = реальный сигнал (floor не мешает).
Pairwise (56 игр/арм, win=1/tie=0.5):
| Арм | win-rate | очки |
|---|---|---|
| deepseek-v4-pro | 0.679 | 38 |
| glm-5 | 0.589 | 33 |
| mistral | 0.232 | 13 |
Head-to-head: glm>mistral 22:6 · dspro>glm 17:11 · dspro>mistral 20:6. Ранг: dspro > glm >> mistral. Order-consistency: flip-rate 0.214 (79% устойчивы к перестановке) — сильные предпочтения (обе руки ≫ mistral) переживают; зазор glm-vs-dspro (17:11) ближе к шуму.
Катастроф-скрин (dedicated, по армам): glm 5/7 · mistral 6/7 · dspro 5/7 — но по ТЯЖЕСТИ расходятся кардинально:
- mistral — CRITICAL: пропуск целого абзаца (про природу гу, 2-0), пропуск заголовков глав (4-0/5-0) и имён (古月藻榭), числа (千万→«тысячи», 数十万→«десятки тысяч»), искажение смысла (资质→«Ресурсы»), катастрофа сюжета (4-1: приписал жульничество 陈城→Фан Юаню, сломал родство), систематически теряет 蛊师. → наименее верный.
- glm — MAJOR: только 时辰-единицы + сломанные словоформы («глава клан»/«войть»/«было десятки») + латиница («again»). НИ ОДНОГО пропуска/числа/искажения смысла. → наиболее верный по содержанию.
- dspro — MAJOR: урон от CJK-strip (пропали заголовки 第一/四/五节), сломанное «лять» (из 改善), ошибка рода в диалоге (1-0: реплика обесчещенной женщины → от муж. лица).
- Дисконт: ед. 3-0 у ВСЕХ трёх — ложная катастрофа (grok не знал сид-конвенции 甲乙丙丁→А/Б/В/Г, счёл верное «класс В» ошибкой). Не считать против армов.
СИСТЕМНАЯ находка (ко ВСЕМ армам, draft-уровень) → ПИНГ ОРКЕСТРАТОРУ: 时辰 переведён как «час» (三个时辰=6ч→«три часа»; 半个时辰=1ч→«полчаса»). Дефект ЧЕРНОВИКА (deepseek-v4-flash translator), редакторы не чинят. Глоссарий/промпт: 时辰=2 часа. Класс из пере-прогонного дефект-леджера D39.8.
Вывод (метрики НОМИНИРУЮТ, чтение РАТИФИЦИРУЕТ): судья ставит dspro первым по прозе/верности (лучшая структура 3.43 + лучший глоссарий), НО у dspro урон от CJK-strip (пропавшие заголовки) — чинибельный дефект санитайзера/промпта, не фундамент. glm — безопасный чистый второй (0 hard-флагов, наиболее верный по содержанию). mistral — вон (критические пропуски/искажения, которые детерминированные гейты НЕ ловят). Backend-сигналы (§4) и судья РАЗОШЛИСЬ по mistral (детерм.: «0 флагов, чисто»; судья: worst) — расхождение ОЖИДАЕМО и ИНФОРМАТИВНО (гейты ловят echo/CJK/преамбулы/стиль, НЕ пропуски/числа/смысл), сигналы РЯДОМ, не слиты (без сфабрикованной сходимости).
7. Блайнд-пакет (D39.8) — ТАЧПОЙНТ №2
blind/blind_read_packet.md — 3 версии каждой главы (A/B/C), метки перетасованы пер-главно (защита от кросс-главной де-анонимизации), исходник для сверки, авто-QA перед читателем. Ключ соответствия — blind/blind_read_KEY.json, владельцу до вердикта не показан. Экстракция только через tmctl export (инвариант №8).
8. Девиации от промта (списком, с обоснованием)
- mined_delta пуст + 2 правки в seed, а не «карта→mined_delta». Все 52 подписанных терма exp16-карты УЖЕ в seed-v2; литеральная загрузка в mined_delta = крэш прогона (
UNIQUE(book_id,src,sense,since_ch,until_ch)безsource; плоский INSERT —store/migrate.go:202,glossary.go:134). Правки владельца 南疆/青丝蛊 применены к копии seed (guzhenren-seed-rerun2.yaml). Согласовано с владельцем на гейте. mined_delta наполнен живьём на майнинг-стопе. - Срез = только главы (第一节→), без метадаты-преамбулы. Выбор владельца на гейте (чище для чтения; преамбульные термы всё равно в seed).
- budget_usd=3.0 (не снапшот-фолдится) — включает draft echo-эскалацию (D22.11); waves.workers=4 (транспорт, не снапшот).
- Армы через КОПИИ базового DB (draft переиспользован → $0). Пер-DB
committedдвоит скопированный glm-edit — реальный итог считаю по отдельным вызовам (§1). - Судья max_tokens 12000→20000 — на крупной ед. (гл.3/ч0) gemini thinking+удвоенное окно упирались в 12000 →
finish=length, пустой content. Поднял + None-safe. Полный A0↔A0' independent-regen floor DEFER (interim; ратифицирует чтение владельца) — floor замерен как position-bias на identical-тексте.
Прочее: B2-предупреждение культивация ← 修炼/修行 — намеренная черта seed (владелец свёл оба к «культивация»), наблюдаемость, не дефект. Все три арма: finish=stop только, аномалий провайдера ноль (кроме судейского max_tokens, вылечено).
9. Что в едином --resnapshot (манифест §8)
seed-v2 + 2 правки (南疆/青丝蛊) · langpack zh/zh-ru (palladius) · mining.contrast (jieba) · translator.md v1-reflow · editor.md v3-discourse-reflow · sanitizer ON · segmentation (draft 1797 / edit 3200 / fertility 1.1978·cjk+0.3852) · mined-delta (陈博/智慧蛊/力量蛊, Source:mined, только edit-снапшот). Draft-снапшот 4ed6cdd97fae · edit-снапшоты пер-арм.