36 lines
12 KiB
Markdown
36 lines
12 KiB
Markdown
# Живой журнал платного прогона B (§4.4: «время · что увидел · чего ожидал · что это значит»)
|
||
|
||
Ведётся ПО ХОДУ, а не в разборе. Прогон `run_Q6DSXGS7TW52TFNO`, книга `bk_NH6275ZIRFFTLZHG`,
|
||
старт 19:48:38 UTC 11.09 (пятница, ОФФ-ПИК DeepSeek).
|
||
|
||
| Время (UTC) | Что увидел | Чего ожидал по чтению кода | Что это значит |
|
||
|---|---|---|---|
|
||
| 19:48:38 | `pre-flight: backed up the project DB … integrity_check green` | бэкап на старте попытки | ⚠ это НЕ мой `TM_PLATFORM_BACKUP_DIR`, а собственный пре-флайт ДВИЖКА, в каталог книги. Два разных механизма восстановления, и я чуть не приписала один другому |
|
||
| 19:48:38 | `glossary materialized … entries=0`, `bank export refreshed … terms=0` | пустой банк на холодной книге | холодность подтверждена ИЗНУТРИ движка, а не только тем, что книга новая |
|
||
| 19:48:38 | `draft wave started snapshot=fef36e1dd642 chunks=6 workers=1` | 6 чанков из манифеста | сошлось с пре-регом §1.2; **workers=1** — волна последовательная, поэтому «параллельная первая стадия» из гипотез не реализуется |
|
||
| 19:48:38 | `calling model deepseek-v4-flash max_tokens=8496 estimate_usd=0.012085` | флор 8000 + `bankTokenBudget` 496 | ровно как у A (id 1) |
|
||
| 19:49:23 | ⛔ **ch1/chunk0: `disposition=flagged reason=empty`, 44.8 s, $0.012048 — выброшено** | мина квирков §катовер п.1–2 | **ЗНАК ДЕНЕЖНОЙ ДЫРЫ ВОСПРОИЗВЁЛСЯ НА ПЕРВОМ ЖЕ ЮНИТЕ** |
|
||
| 19:49:23 | `stage flagged, regenerating with a larger budget next_max_tokens=16992` → $0.017408 | удвоение потолка, лечение есть | путь не рвётся, он дорожает вдвое (A: 4 из 4 таких вылечились) |
|
||
| 19:49:23 | ⚠ **`WARN priced by a model that did not answer: requested=deepseek-v4-flash answered=deepseek-flash priced_by=requested`** | у A этого WARN НЕ БЫЛО | ряд **413** получил ЖИВОГО сторожа: движок теперь сам кричит, что считает нас по слагу, которого нет в его каталоге. Это одна из 118 правок между A и B |
|
||
| 19:51:02 | ⛔ **ch1/chunk1: снова `reason=empty`, 40.8 s, $0.011749 — выброшено**, регенерация 16992 | — | **2 из 2 черновых чанков выброшены с первой попытки.** У A было 3 из 6. Если доля удержится, черновая волна встанет вдвое дороже сметы |
|
||
| 19:52:12 | ⛔ ch2/chunk0 `reason=empty` $0.011753 выброшено → 16992 → $0.003514 | — | 3 из 3 |
|
||
| 19:52:54 | ✅ ch2/chunk1 прошёл С ПЕРВОЙ попытки, $0.006970 | — | единственный чистый чанк волны |
|
||
| 19:53:36 | ⛔ ch3/chunk0 **`reason=length`** (не `empty`!) $0.011786 выброшено → 16992 → $0.018276 | оба флага задокументированы: `empty` — размышление съело потолок, `length` — текст оборван | **ОБА КЛАССА мины встретились в одном прогоне**, как у A |
|
||
| 19:55:25 | ⛔ ch3/chunk1 `reason=empty` $0.011472 выброшено → 16992 → $0.008145 | — | **ИТОГ ЧЕРНОВОЙ ВОЛНЫ: 5 выброшенных первых попыток из 6 чанков.** У прогона A было 3 из 6. Доля ВЫШЕ, знак тот же |
|
||
| 19:55:55 | `bank-mining: draft-side proposals folded surfaces=66` | у A было 69 предложенных + 1 предъявленная = 70 | банк-контур начался; поверхностей 66 против 69 — черновики РАЗНЫЕ, и это ожидаемо |
|
||
| — | ⚠ **WARN о слаге повторяется на КАЖДОМ вызове** (`requested=deepseek-v4-flash answered=deepseek-flash priced_by=requested`) | у прогона A этого WARN не было вовсе | ряд **413** получил живого сторожа между A и B; цена считается по слагу, которого нет в каталоге ответившего |
|
||
| 19:56:37 | ⛔ **терминолог-классификатор batch=0: `asked=22 answered=4`, `reason=length`, $0.012646 ОПЛАЧЕНО** | у бэнк-ролей нет ручки эффорта (бэклог 104) ⇒ они всегда едут вендор-дефолтом `high` | 18 термов из 22 остались без машинного типа |
|
||
| 19:57:30 | ⛔ **batch=2: `asked=24 answered=0`, `reason=empty`, $0.012133 ОПЛАЧЕНО.** WARN: «a paid batch came back with an EMPTY completion; its terms keep the draft heuristic type and produce no gender» | — | **42 терма из 66 остались без классификации, и оба провальных батча ОПЛАЧЕНЫ. Регенерации у бэнк-ролей НЕТ** — в отличие от черновой стадии, где движок удваивает потолок |
|
||
| 19:57:30 | ⚠ **Контроль по прогону A: у него классификатор ответил 23/23, 21/21, 25/25 — все три батча чисто.** | — | **это НЕ известное поведение. У A ноль провальных батчей, у B два из трёх.** Атрибуции нет: между A и B 118 коммитов, а у DeepSeek разброс размышления ×163 при побайтно одном входе (квирки п.2) |
|
||
| 19:58:23 | ⛔ **Итоговая строка стадии: `classify_batches_dropped=0 unanswered=0 bad_lines=0 consolidated=66 declined=0`** | ожидал, что итог назовёт два пустых батча | **СТРОКА-ИТОГ, которую читатель примет за вердикт стадии, ГОВОРИТ, ЧТО ВСЁ ЧИСТО.** Кандидат в клетку «прибор смолчал» §4.6 — проверить кодом, о чём именно эти счётчики |
|
||
| 19:58:23 | ⚠ новый гигиенический WARN: «name/place rows carry a translated rendering — a label/rendering mismatch», rows=13 | у A такого WARN в журнале нет | ещё один сторож, появившийся между A и B |
|
||
| 19:58:23 | **БАНК-СТОП: exit 3, `awaiting_bank`, `surfaces=66`, `terms=0`** | пре-рег узел 10 | ✅ узел наступил; ряд 224 воспроизведён (проекция банка видит 0 ровно тогда, когда экран открыт ради 66) |
|
||
| 22:59 | подпись двух термов через дверь правок: preview → на диске НИЧЕГО (проверено до и после), apply → `mined-delta.yaml` 906 байт | пре-рег узел 12 | ✅ оба состояния предъявлены файлом, а не экраном |
|
||
| — | ⛔ **РАЗБОР СТРОКИ-ИТОГА ПО КОДУ (`internal/pipeline/terminologist.go:420,616,620`): счётчик НЕ ЛЖЁТ, он НЕ СУЩЕСТВУЕТ.** `ClassifyBatchesDropped = crun.dropped` считает батчи, выброшенные СВОИМ БЮДЖЕТОМ («its OWN budget cut a pass»), а не оплаченные батчи, вернувшиеся пустыми. `unanswered`/`bad_lines` итоговой строки принадлежат РЕНДЕР-проходу, не классификатору. ⇒ **у стадии нет НИ ОДНОГО счётчика доли ответов классификатора**, и единственный носитель факта — WARN посреди прохода. Бюджет тут ни при чём: `classify_budget_usd: 1.00`, потрачено $0.029749 | — | **наблюдаемость приоритета №1 имеет дыру ровно там, где стадия отчитывается о себе** |
|
||
| 20:00:37 | ⭐⭐ **ПОПРАВКА К СОБСТВЕННОЙ ЗАПИСИ, И ОНА МЕНЯЕТ КЛАСС НАХОДКИ.** На резюме (попытка 2) тот же классификатор ответил **22/22 · 19/19 · 24/24 — все три батча чисто.** Та же книга, тот же движок, тот же конфиг, четыре минуты спустя. | — | ⇒ **провал попытки 1 был СТОХАСТИЧЕСКИМ, а не регрессией.** Писать «регрессия между A и B» было бы верным результатом при неверной гипотезе. Настоящая находка ОСТРЕЕ: две стадии одного движка встречают ОДНУ И ТУ ЖЕ задокументированную вендорскую мину (разброс размышления ×163 на побайтно одном входе, квирки п.2) — у ЧЕРНОВОЙ есть лекарство (удвоение потолка) и WARN, у БЭНК-РОЛИ нет ни лекарства, ни счётчика. Цена на попытке 1: **$0.024779 и 42 терма из 66 без машинного типа** |
|
||
| 20:01:25 | `terminology finished … consolidated=65 reclassified=7 classify_cost_usd=0.015564` | — | второй заход стоил $0.033793 (рендер $0.018229 + классификация $0.015564) и пере-классифицировал 7 термов |
|
||
| 20:01:26 | `edit wave started snapshot=9ae4e88aa354 units=4 workers=1`, первый вызов `deepseek-v4-pro max_tokens=16000 estimate_usd=0.068839` | у A редактор стоил $0.230 из $0.419 | дорогая стадия началась; снапшот редактора ОТЛИЧАЕТСЯ от черновикового (`fef36e1dd642`) — ось `wave_selection` будет непустой на обеих волнах |
|
||
| 20:02:26 | `still waiting for the provider on a call in flight … waited=1m0s attempt_deadline=15m20s` | латентность `pro` у A доходила до 249 с | движок сам печатает вахту по вызову — у зависания появляется цвет |
|
||
| — | ⛔⛔ **ЛЕКАРСТВО ОТ МИНЫ ЕСТЬ, И БЭНК-РОЛИ НА НЕГО НЕ ЗАВЕДЕНЫ — предъявлено КОДОМ, а не догадкой.** Регенерация живёт в `runStage` (`internal/pipeline/stagerun.go:39`), и там её ДВЕ: «regenerating with less thinking at the SAME budget» (ручка `lower_effort_on_empty`, лендится ВЫКЛЮЧЕННОЙ, `D39.251`) и «stage flagged, regenerating with a larger budget» (`stagerun.go:235`, работает). Бэнк-роли идут мимо: `runBankAttempt` зовёт `r.runAttempt(...)` НАПРЯМУЮ (`internal/pipeline/terminologist.go:832`), то есть без `runStage` и без обеих ветвей лечения. Комментарий рядом объясняет, почему у них нет обязательного ожидания, — про лечение он молчит | черновая стадия лечится 4/4 (A) и 5/5 (B) | **одна и та же вендорская мина: у ЧЕРНОВОЙ стадии лекарство, у БЭНК-РОЛИ — ни лекарства, ни счётчика.** Цена замерена: $0.024779 и 42 терма из 66 без машинного типа |
|
||
| 20:03:21 | ✅ edit ch1/chunk0 `disposition=ok` $0.048745 (115.7 с) | у A первый редакторский был $0.034076 | дороже, но ПРИНЯТ |
|
||
| 20:04:36 | ✅ edit ch1/chunk1 `disposition=ok` $0.035034 (74.4 с) | — | 2 из 4 юнитов, оба чисто |
|