From f28d33fbea9e143d5a7071bbf9561cbb4a70920c Mon Sep 17 00:00:00 2001 From: heaven Date: Wed, 2 Sep 2026 23:12:11 +0300 Subject: [PATCH] Land the probe session's phase report and execution journal, including its replica findings on the low2 run and the measured sigma for the zh pair --- docs/experiments/23-editor-tier.md | 485 ++++++++++++++++++++++++ eval/dovodka/prereg-4axes/ISPOLNENIE.md | 31 +- 2 files changed, 514 insertions(+), 2 deletions(-) diff --git a/docs/experiments/23-editor-tier.md b/docs/experiments/23-editor-tier.md index 19fb8814..93fe49f0 100644 --- a/docs/experiments/23-editor-tier.md +++ b/docs/experiments/23-editor-tier.md @@ -7966,3 +7966,488 @@ V4-Pro and V4-Flash now support three thinking effort levels: low / high / max» смотреть **каталог артефактов**, а не только свою ветку доков — `ls ~/books/<книга>/` дешевле любого грепа по `docs/` и отвечает на вопрос прямо. Это девятый случай класса «показания инструмента приняты за факт о мире» (реестр — Д52.5): здесь инструментом была моя собственная ветка. + +## Д54. ⭐⭐ КОНТРОЛИРУЕМАЯ ПРОБА РЕДАКТОРА ПО ЧЕТЫРЁМ ОСЯМ: КУПЛЕНА, ОТВЕТ ПОЛУЧЕН + +> Исполнитель — полигон-сессия `textmachine-2f`, 02.09.2026, ветка `polygon`. +> Закон — `eval/dovodka/PLAN-01-09.md` (фриз документа `dc602e9`). Промт — `eval/dovodka/PROMPT-PROBE-4AXES.md`. +> Пре-рег стенда — `eval/dovodka/prereg-4axes/PREREG.md` (фриз №1 `c08b547`, фриз №2 `590256a`). +> Журнал исполнения со всеми находками и отступлениями — `eval/dovodka/prereg-4axes/ISPOLNENIE.md`. +> Стенд и все артефакты — `~/books/gu-zhenren/probe-4axes/`. + +**Вопрос владельца был: ПОЧЕМУ редактор дорог.** Ответ: **он думает, а не пишет.** + +--- + +### Д54.1 ОТВЕТ НА ВОПРОС — E0, разложение цены по статьям + +``` +$ ./eval/.venv/bin/python eval/dovodka/chetyre.py --stand ~/books/gu-zhenren/probe-4axes \ + --manifest eval/dovodka/prereg-4axes/prereg.json +``` + +| статья | `p7-off` | `p9-off` | `p7-low` | `p9-low` | `glm-5@off` | +|---|---|---|---|---|---| +| вход | 7.7% | 8.2% | 19.0% | 18.7% | 41.0% | +| кэш | 0.2% | 0.2% | 0.2% | 0.2% | 0.1% | +| видимый выход | 14.2% | 14.9% | 35.2% | 34.4% | 58.9% | +| **РАЗМЫШЛЕНИЕ** | **77.9%** | **76.6%** | **45.7%** | **46.7%** | **0.0%** | +| ретраи, от цены руки | 39.3% | 26.3% | 1.8% | 6.0% | 0.0% | + +**Три четверти цены редактора без ручки — это размышление.** С ручкой `low` доля падает до +46–47%, а с моделью, у которой размышление выключено тумблером (`glm-5`), она равна нулю по +построению, и вся цена там — вход плюс видимый текст. + +⚠ **Строка «ретраи» у `p7-off` наполовину СЕТТЛЕНА ПО ОЦЕНКЕ, а не по факту:** $0.405 из $0.785 — +это четыре таймаута, у которых вендор не вернул usage, и движок списал верхнюю границу +(32 000 · $3.96/1M + вход). Доли статей это не искажает (строки без usage в статьи не входят), но +число «ретраи 39.3%» несёт эту оговорку, а не читается как факт вендорского счёта. + +⚠ **Одна статья невосстановима никакой пробой и была объявлена заранее:** сколько из подорожания +дали новые веса `0813` и смена вендор-дефолта. Июльское состояние сервинга не вернуть. + +--- + +### Д54.2 ЭНДПОЙНТЫ — правило решения §4, записанное ДО чисел, применено без изменений + +**E1 (главный): усилие `low` против `∅`, по-юнитный контраст `log R̂`, попытка 0.** + +``` +Вилкоксон (zero_method='pratt'): W=3.0 p=7.629e-05 n=17 юнитов +Ходжес-Леман: медиана log = -1.2634 ⇒ отношение ×0.283 +95% ДИ (Уолшевы средние, руками): ×[0.175; 0.431] +пар с цензурой: 19 из 40 ⇒ ВЕЛИЧИНА ЕСТЬ НИЖНЯЯ ГРАНИЦА +``` + +⇒ **`low` режет размышление МИНИМУМ втрое**, точечно — вчетверо (медианы `R̂` попытки 0: +`p7-off` 13 242, `p9-off` 12 686 против `p7-low` 3 090, `p9-low` 3 112). +⛔ Величина читается со знаком **«≥»**: 19 из 40 пар несут цензуру на потолке 16 000, и цензура +занижает эффект по построению. ⚠ **И рядом, а не сноской:** у **5 клеток `low` из 40** восстановленное +`R̂ < 700`, где относительная ошибка формулы 20–70% (граница объявлена планом до покупки), а у двух +из них `R̂ ≤ 0` вовсе. То есть у самых сильных случаев среза прибор величину НЕ измеряет — он их +теряет, и вывод от этого консервативнее. + +**E2 (цена доставленного знака) — четыре варианта, объявленные ДО чисел, и все согласны:** + +| вариант | p | медиана | 95% ДИ | +|---|---|---|---| +| попытка 0, фактическая цена (ОСНОВНОЙ) | 1.22e-04 | ×0.528 | [0.422; 0.661] | +| итог юнита, боевая цена (ретраи включены) | 1.83e-04 | **×0.407** | [0.326; 0.605] | +| попытка 0, СТРОГОЕ `delivered` | 2.44e-04 | ×0.512 | [0.407; 0.626] | +| попытка 0, КЭШ-НЕЗАВИСИМАЯ цена | 1.22e-04 | ×0.538 | [0.451; 0.656] | + +⇒ **Боевая цена доставленного знака падает в 2.5 раза.** Согласие кэш-независимого варианта с +основным доказывает, что несимметричный порядок, выпавший при запиненном сиде, вывод не двигает. + +Медианы цены за 1000 доставленных знаков (боевая, командой): +`p7-off` **$0.0111** · `p9-off` **$0.0091** · `p7-low` **$0.0036** · `p9-low` **$0.0038** · +`glm-5@off` **$0.0018**. + +**Перекрёстная проверка E1 и E2 — независимо от рангового теста, по медианам.** Ранговый тест мог +бы дать «эффект есть» и на кривых данных, поэтому обе величины пере-считаны вторым, элементарным +способом: + +``` +E1 по медианам R̂ попытки 0: P7 3090.2/13241.6 = ×0.233 Ходжес-Леман дал ×0.283 + P9 3111.5/12685.5 = ×0.245 +E2 по медианам $/1000 знаков: P7 0.0036/0.0111 = ×0.324 Ходжес-Леман (боевая) дал ×0.407 + P9 0.0038/0.0091 = ×0.418 +``` + +Оба сходятся по порядку и по знаку. Расхождение медиан отношений с Ходжесом-Леманом ожидаемо: +это разные оценки (отношение медиан против медианы по-юнитных отношений), и они не обязаны совпадать. + +**E3 (ось промпта):** `p=0.487`, ×0.794 [0.540; 1.383] ⇒ **НИЖЕ РАЗРЕШЕНИЯ ЗАМЕРА.** Это НЕ +«эффекта нет». Прогноз плана «|эффект| < ×1.25» не подтверждён и не опровергнут: ДИ его накрывает, +но простирается до ×0.54. + +**E4 (взаимодействие промпт×усилие):** `p=0.854`, ×1.068 [0.509; 2.836] ⇒ ниже разрешения. +Описательный по построению, выводов не несёт. + +**E5 (безопасность). ⛔ ЭХА НЕ БЫЛО НИ В ОДНОЙ ИЗ СТА КЛЕТОК.** Флаг `cjk_artifact` (доля CJK +выше 0.15) не сработал ни разу — проверено по всем пяти базам. То, что первая редакция этой секции +назвала «эхо-клетками», — это **утечки в 4–10 иероглифов на 5.7–9.5 тыс. знаков** (доля 0.0005–0.001), +все вычищенные санитайзером: + +| рука | клеток | CJK@сырой | кир<0.99 | flagged | обрыв@0 | санитайзер | малый R̂ | +|---|---|---|---|---|---|---|---| +| `p7-off` | 20 | **1** | 4 | 5 | **10** | 1 | 1 | +| `p7-low` | 20 | **0** | 0 | 0 | **1** | 0 | 1 | +| `p9-off` | 20 | **1** | 1 | 2 | **9** | 1 | 0 | +| `p9-low` | 20 | **0** | 0 | 0 | **1** | 0 | 2 | +| `glm-off` | 20 | 2 | 0 | 2 | 0 | 2 | — | + +``` +p7-off ю(2,0): CJK 4 из 7329 знаков ⇒ доля 0.00055 glm-off ю(3,0): 5 из 5698 ⇒ 0.00088 +p9-off ю(2,0): CJK 4 из 7331 знаков ⇒ доля 0.00055 glm-off ю(8,0): 10 из 9534 ⇒ 0.00105 +``` + +⇒ **Критерий §4 «у `low` эхо-клеток ≥3 сверх `∅`» НЕ предъявлен, потому что эха нет вовсе.** +Утечки CJK: `∅` — 2 клетки (обе на ОДНОМ юните (2,0), то есть свойство материала), `low` — 0, +референс — 2. При таких долях **разница ниже разрешения замера**, и «`low` безопаснее по эху» +утверждать НЕЛЬЗЯ. Что утверждать МОЖНО: **эхо-риск `low`, которого боялся план, не подтвердился.** + +⚠ Замерено по **СЫРОМУ** ответу попытки 0, а не по отгружаемому: санитайзер CJK вырезает, и по +отгружаемому тексту утечка не видна вовсе (улика — Д54.5, ошибка 4). + +**Где `low` действительно отличается — это ПРОВАЛЫ ДОСТАВКИ, и они только у `∅`:** +обрывы по длине 10 и 9 против **1 и 1**; ретраи 10 и 9 против **1 и 1**; все пять клеток с нулевой +доставкой — в `∅`-руках (4 таймаута в `p7-off`, 1 пустой ответ в `p9-off`), у `low` — **ни одной**. +Медиана латентности попытки 0: `∅` **204 и 188 с**, `low` **87 и 83 с**, референс **33 с**. + +**Ковариата длины входа.** Контраст от длины черновика НЕ зависит: Спирмен ρ=+0.083 (p=0.751), МНК +наклон +0.92±2.30 (p=0.695). Между-юнитный наклон: **при удвоении длины черновика размышление +×2.97**, но оценка слабая — наклон **1.57 ± 1.26, p=0.23**, то есть совместима и с наклоном exp19 +(0.87 при ×2.78 на ×3.24 входа), и с НУЛЁМ. ⇒ «сходится с exp19» утверждать нельзя; можно только +«не противоречит». + +--- + +### Д54.3 ⭐ КЛЕЙМО ВЫВОДА — обязательный шаблон §3-БИС плана + +> **У `deepseek-v4-pro` (веса 0813) на паре zh→ru при нашей нарезке (~2 тыс. знаков исходника на +> юнит), потолке вывода 16 000, банке в неподвижной точке и на промпте `editor.md` — ручка +> `reasoning_effort:"low"` против неотправки ключа режет объём размышления в **2.3–5.7 раза** +> (медиана ×0.283, 95% ДИ [0.175; 0.431]; это НИЖНЯЯ ГРАНИЦА среза: 19 из 40 пар цензурированы +> потолком со стороны `∅`) и снижает цену доставленного знака почти вдвое (попытка 0 ×0.528 +> [0.42; 0.66]; с ретраями ×0.407 [0.33; 0.61] на 15 юнитах, где доставили все четыре руки). +> Размышление — 77–78% цены у `∅` против 46–47% у `low`; ретраи 26–39% против 2–6%. +> **Эха не было ни в одной из 100 клеток**; провалы доставки — только у `∅` (4 таймаута по 480 с и +> 1 пустой ответ). Ось промпта и взаимодействие — ниже разрешения (p=0.49 и p=0.85). +> Замерено 02.09.2026 — на **3-й день** после смены таблицы маппинга эффорта 30.08.** + +⛔ **Число без этого квалификатора — ошибка класса Д52.5.** Что НЕ установлено (§3-БИС): +«размышление вообще» — в реестре четыре разных механизма; семейство DeepSeek — у `flash` другие +веса; перенос на английскую пару. Срок годности: до следующей смены вахты у вендора, и +пере-снимается пред-полётной парой, а не цитируется. + +--- + +### Д54.4 ⛔ ЧТО НЕ УДАЛОСЬ И ЧТО НЕ ПРОВЕРЕНО + +Секция обязательна и не косметическая: пустой пробы не бывает. + +1. **Ковариатная модель §4 плана НЕ ИСПОЛНЕНА в том виде, как записана, и это не нехватка + библиотеки.** `log R̂ ~ effort + prompt + log(len_draft) + (1|unit)` вырождена как проверка + устойчивости E1/E3: длина черновика — величина УНИТ-УРОВНЕВАЯ (все четыре руки редактируют ОДИН + черновик — это и есть блокировка трудности), а в сбалансированном внутри-юнитном дизайне такая + ковариата не меняет оценок усилия и промпта ПО ПОСТРОЕНИЮ. Обе величины, которые модель дала бы, + посчитаны руками (Д54.2). `statsmodels` **не установлен**; ⚠ причина НЕ «нет сети» — сеть есть и + колесо под cp314 существует, проверено. +2. **Три юнита из двадцати выброшены из E1** по `R̂ ≤ 0`: (7,0) `p7-low` R̂=−56, (9,0) `p9-low` + R̂=−161, (11,0) `p7-off` (провалившийся вызов, cmpl=0). ⚠ Два из трёх — `low`-клетки, где + размышления практически не было, то есть выброс убирает случаи с САМЫМ большим эффектом: + **E1 занижен, вывод консервативен.** +3. **Пять юнитов пропущены в E2** (пустая доставка в какой-либо руке креста), шесть — в строгом + варианте. Согласие всех четырёх вариантов — единственное, что здесь предъявлено. +3-БИС. **Пятый провал доставки — не «пусто», а размышление, съевшее ответ.** `p9-off` ю(4,0): + попытка 0 — `length` на 16 000 при НУЛЕ знаков контента; ретрай на 32 000 — `finish=stop`, + 3 327 токенов и снова **ноль знаков**. Отдельный механизм провала `∅`, и он не таймаут. + +4. **⛔ Гард «зелень на пустоте» прошёл ВПРИТЫК.** У `p7-off` пустых **4 из 20 = ровно 20%**, а + правило — «>20% ⇒ прибор ОТКАЗЫВАЕТ». Ещё одна пустая клетка — и результат по E2 не был бы + напечатан вовсе. **По СТРОГОМУ определению доставки было бы 5/20 = 25%, то есть прибор отказал + бы.** Мягкое определение объявлено основным ДО чисел и после чисел не менялось, но читатель + обязан это видеть. +5. **⛔ ЧЕТЫРЕ ТАЙМАУТА, все в `p7-off`.** Движок классифицировал их как `decode_error` + («2xx with an unreadable body — billed, conservatively settled», `disposition.go:67`), но + латентность выдаёт истинную причину: **480 390 / 480 505 / 480 577 / 480 528 мс = ровно + 2 × `attempt_s: 240`** (`models.yaml:59`). Это таймаут чтения, а не нечитаемое тело: вызов + оплачен и **сеттлен ПО ОЦЕНКЕ**, а не по факту вендорского счёта. + **Две законные цифры, и путать их нельзя:** сами четыре строки — **$0.475893 = 23.8%** цены + руки; ЮНИТЫ целиком, вместе с их попытками 0, — **$0.689215 = 34.5%**. + Три из четырёх — ретраи на 32 000 после обрыва по длине, четвёртый — сама попытка 0. + **Те же юниты в трёх других руках прошли `ok`.** `p9-off` имеет 9 обрывов и НОЛЬ таймаутов, + `p7-off` — 10 обрывов и 4. Все четыре пришлись на последние 2.3 часа пачки (11:06, 12:06, + 12:19, 13:22), тогда как успешные ретраи `p7-off` до того шли 149–226 с, а ретраи `p9-off` в то + же окно — 98–326 с. **Свойство руки или эпизод сервинга — проба при n=4 сказать не может, и это + не выдаётся за вывод.** + ⚠ **Пинг оркестратору, не наша зона:** таймаут чтения маскируется под ошибку декодирования и + биллится по оценке — это дефект движка, а не свойство модели. +6. **Сигнатура: 1 юнит из 20 вне допуска** (Δ=−6099 вместо 79). Это тот же юнит (11,0) с + `decode_error` и нулевым usage — провалившийся вызов, а не расхождение сигнатуры. 5% < 20%, + проба не аннулируется даже при засчитывании его нарушением. ⚠ **Исключать `decode_error` из + гейта я не стала: это была бы правка правила ПОСЛЕ просмотра чисел.** +7. **Банк консолидирован не полностью:** 101 терм из 108, `unanswered` 7 (бюджет терминолога + исчерпан). Одинаков во всех пяти руках — на оси не влияет, но входит в область переноса. +8. **Качество НЕ судилось** — вне скоупа по §12 промта. Проба говорит о цене и о $0-гейтах, и + ничего не говорит о том, стал ли текст хуже. **Рекомендация ставить редактору `low` из этой + пробы НЕ следует** без отдельного замера качества. +9. **Ставка платформы не калибровалась** — гейчено отдельно. +10. **Проводная улика снята на одном юните** (пред-полёт) и на первом юните пачки (референс), а не + на всех ста клетках: канал сырых тел включался точечно. + +--- + +### Д54.5 ЧТО Я НАПУТАЛА — реестр собственных ошибок с классами + +**Сквозной класс — тот же, что у одиннадцати ошибок предыдущей сессии: показания инструмента +(своего кода, своего грепа, своего гарда) приняты за факт о мире.** Четыре из шести — ровно он. + +| # | что утверждала | чем опровергнуто | класс | +|---|---|---|---| +| 1 | «руки без своего `pairs/` ТИХО перекупят черновики ×5» | без `pairs/` прогон падает ГРОМКО (код 10), а дженерик-умолчания нарезки в `pipeline.go:895-905` побайтно равны пар-слою ⇒ снапшот не двигается. Прочитала код, не исполнила | чтение кода за факт о мире | +| 2 | «$0-гард показал, что банк стабилен» | потолок `база+$0.0001` блокировал и ТЕРМИНОЛОГА, а его отказ — не остановка, а `break` с логом (`terminologist.go:807`). `grep -c 'denied by a USD ceiling'` = **2 в каждом из пяти логов гарда** при **0** в логе базы. Ложная неподвижная точка | показания своего инструмента за факт | +| 3 | «у `low`-рук `reasoning_effort` на провод НЕ уехал» | дефект МОЕЙ регулярки: тело логируется экранированным (`\"reasoning_effort\":\"low\"`). `grep -c` давал 1 там, где регулярка давала 0 | дефект инструмента предъявлен как находка | +| 4 | E5 считал эхо по ОТГРУЖАЕМОМУ тексту | санитайзер CJK вырезает: на холодном прогоне отгружено 0 иероглифов при **10 в сыром ответе**. Эндпойнт, блокирующий любую рекомендацию, был слеп к своему предмету. Поймал агент-контролёр | прибор мерил не то, что называл | +| 5 | ковариата брала первый чанк юнита вместо суммы | у **15 юнитов из 20** `chunk_count > 1`, а ключ `(глава, индекс)` совпадает ⇒ ошибка не дала бы ни исключения, ни пустоты, только тихо занижённую длину. Поймал контролёр | тихая ошибка без симптома | +| 6 | `$0`-альтернатива лечения `budget_usd: 0` в руках | не загрузилась бы вовсе: `pipeline.go:1078` отказывает при `budget_usd ≤ 0` у включённого гейта. Прочитала планировщик, не прочитала валидатор | чтение части кода за целое | + +**И семь ошибок ПЕРВОЙ РЕДАКЦИИ ЭТОГО ОТЧЁТА — пойманы адверсариальным проходом контролёра по уже +написанному тексту, до того как отчёт кто-либо прочёл:** + +| # | что писала первая редакция | чем опровергнуто | класс | +|---|---|---|---| +| 7 | «эхо-клеток у `∅` 2, у `low` 0 ⇒ `low` безопаснее» | флаг `cjk_artifact` не сработал **ни разу за 100 клеток**. «Эхо» было 4 иероглифа на 7329 знаков (доля 0.00055) и 4 на 7331; у референса 5 и 10. Это УТЕЧКИ, а не эхо, и разница между руками ниже разрешения | термин применён шире, чем его определение | +| 8 | «режет размышление не менее чем в 3.5 раза» | верх 95% ДИ ×0.431 = ÷2.3. Правильно «в 2.3–5.7 раза» | величина заявлена сильнее, чем её несёт интервал | +| 9 | «на 21-й день после смены маппинга 30.08» | 30.08 → 02.09 = **3-й день**. 21 день — от смены ВЕСОВ 13.08, а обязательный шаблон §3-БИС требует маппинг | арифметика в самом клейме вывода | +| 10 | «`decode_error` = 2xx с нечитаемым телом» | латентность 480 390–480 577 мс = ровно 2 × `attempt_s: 240` ⇒ это ТАЙМАУТЫ, а формулировка — классификация движка, а не механизм | ярлык инструмента принят за механизм | +| 11 | «$0.689 = 34% цены руки» | это цена ЮНИТОВ целиком; сами четыре строки — $0.475893 = 23.8%. Оба числа законны, но подпись не говорила, какое | число без своего определения | +| 12 | «между-юнитный наклон 1.57 сходится по порядку с exp19 (0.87)» | 1.57 ± 1.26, p=0.23 — совместим и с 0.87, и с НУЛЁМ. «Сходится» утверждать нельзя, можно «не противоречит» | согласие заявлено там, где оценка неинформативна | +| 13 | «ретраи 39.3% цены руки» без оговорки | $0.405 из $0.785 сеттлены ПО ОЦЕНКЕ (вендор не вернул usage), то есть это верхняя граница, а не факт счёта | число без команды, которой оно получено | + +⚠ **И одна поправка К КОНТРОЛЁРУ, снятая мной:** он написал «5 клеток `low` < 700 плюс 2 с `R̂ ≤ 0` += 7 из 40». Двойной счёт: клетки с `R̂ ≤ 0` уже входят в «< 700». Верно — **5 из 40** (2 в `p7-low`, +3 в `p9-low`, из них 2 с `R̂ ≤ 0`). + +Плюс две операционные: `git commit -- <пути> -m ` (git прочёл сообщение как pathspec) и +`.gitignore:24` (`*.db.*.json`), который молча выбросил бы из фриза манифест движка — пойман +проверкой индекса перед коммитом. + +**Все шесть пойманы ДО того, как повлияли на результат.** Четыре — агентом-контролёром на `fable`, +поднятым по распоряжению владельца; две — собственным исполнением после его наводки. + +--- + +### Д54.6 НАХОДКИ О ДВИЖКЕ, КОТОРЫХ ПЛАН НЕ ЗНАЛ + +1. **⭐ Проводная улика СУЩЕСТВУЕТ.** План §3 «Дыра 2»: «побайтной улики у движка нет». На деле + `internal/obs/logging.go:72` `LogLLMExchange` пишет сырое тело запроса при `LOG_LLM_BODIES=1` + + `LOG_LEVEL=debug` (вызов — `internal/llm/httpllm.go:415`), только тела, никогда URL и заголовки. + Снято на пред-полёте: + ``` + p7-off reasoning_effort — max_tokens 16000 temperature 0.4 model deepseek-v4-pro + p7-low reasoning_effort ['low'] max_tokens 16000 temperature 0.4 model deepseek-v4-pro + p9-off reasoning_effort — max_tokens 16000 temperature 0.4 model deepseek-v4-pro + p9-low reasoning_effort ['low'] max_tokens 16000 temperature 0.4 model deepseek-v4-pro + glm-off …\"thinking\":{\"type\":\"disabled\"} + ``` + Три РАЗНЫХ механизма на проводе, ровно как их описывает реестр моделей. Требование §14 «потолок + вывода одинаков во всех руках» — исполнено НА ПРОВОДЕ, а не выведено из кода. +2. **⛔ АВТО-БАНК РАСТЁТ МЕЖДУ ПОКУПКАМИ — главная угроза дизайну, которой план не предвидел.** + Терминолог перезапускается в КАЖДОЙ руке и, пока у него остался бюджет, доращивает банк, а банк + есть вход редактора. В базе `consolidated=51`, в первой же руке — 81, `memory_version` уехал, + edit-снапшот сдвинулся, движок потребовал `--resnapshot` (запрещён). Без гарда это проявилось бы + на ВТОРОМ юните уже с оплаченными клетками; хуже — банк мог вырасти по-разному в разных руках, + дав редактору РАЗНЫЙ вход при внешне исправном кресте. + **Лечение:** гонять базу конфигом БЕЗ стадии `edit` до неподвижной точки. Терминальное условие — + не «`memory_version` не изменился», а **ноль свежих платных строк И ни одного отказа по деньгам** + (иначе купленный батч, ничего не сконсолидировавший, выглядит точкой). Три итерации, банк + 51→101, стоило **$0.0352** при потолке $0.0538, выведенном из замороженных бюджетов. +3. **Ось можно доказать ЗА $0.** Потолок «база + небольшая сумма» отказывает первой edit-резервации, + но до этого движок бесплатно поднимает черновики, гоняет майнинг и терминолог по чекпойнтам, + **вычисляет edit-снапшот и заводит edit-джоб**. Пять разных `edit`-снапшотов, один общий + `draft`-снапшот и одинаковый `memory_version` установлены ДО первой траты. + ⚠ Потолок гарда обязан лежать НИЖЕ редакторской резервации, но ВЫШЕ батча терминолога — иначе + ложная точка выглядит тишиной (ошибка 2 выше). +4. **`preflightBackup` роняет прогоны, стартовавшие в одну секунду:** точка восстановления + именуется с точностью до секунды и не перезаписывается. Пять рук в одном каталоге ⇒ три из пяти + упали кодом 1. В пачке из ста клеток это остановило бы прогон посреди ночи. +5. **Цикл §9.3 плана содержал три дефекта, каждый молчаливый:** `rc=$?` после `| tee` без + `set -o pipefail` возвращает код `tee` (проверено: `$?`=0 против `PIPESTATUS[0]`=4); + `VOLUME CEILING:` печатается на КАЖДОМ ограниченном прогоне (`render.go:130`), так что `break 2` + рвал бы цикл после первой клетки; `--config` грузит `book.yaml`, а §9.2 звал арм-файл копией + `pipeline`. +6. **Мина нумерации слабее, чем боялся план:** чанкер разбирает `第二十六节` и печатает в манифесте + «Глава 26»…«Глава 42» при позиционных `number` 1…17, то есть соответствие восстанавливается из + артефакта прогона, а не только из пре-рега. +7. **⚠ КАПКАН СТЕНДА, В КОТОРЫЙ НЕЗАВИСИМО ПОПАЛИ ДВЕ СЕССИИ: юнит редактуры ШИРЕ чанка + черновика.** В этом стенде 35 draft-чанков против 20 edit-юнитов, и у **15 юнитов из 20** + `chunk_count > 1`. Ключ `(глава, индекс)` у юнита и у чанка СОВПАДАЕТ, поэтому «взять первый + чанк вместо суммы» не даёт ни исключения, ни пустоты, ни заметного расхождения длин — только + тихо неверное число. Здесь он испортил ковариату длины входа (поймано контролёром, исправлено + `unit_draft_lengths()` с прямым тестом); в параллельной сессии слепого чтения тот же капкан + лишил блокирующую линзу точности опоры на трети текста. **Лечение одно: собирать юнит из чанков + `first_chunk_idx … first_chunk_idx+chunk_count−1` по манифесту движка, а неполный юнит помечать + отсутствующим, а не полусуммой.** + ⚠ И отдельно, потому что это проверялось по чужому поводу: **базовый прогон обрезанных + черновиков НЕ отгружал** — среди 35 финальных `finish=length` ноль (`stop` 9, + `banknote_export` 26); единственный обрыв черновой волны (глава 17 чанк 0) починен ретраем до + 5951 знака = 123% медианы. + +8. **`tmctl manifest` бесплатен и даёт `units_total` ДО покупки** — `n` можно и нужно пинить числом, + а не «сколько получится». Здесь: 17 глав → **20 юнитов**, а не ожидавшиеся ~24. + +--- + +### Д54.7 ДЕНЬГИ — факт против потолка + +``` +$ ./eval/.venv/bin/python eval/dovodka/chetyre.py --stand … --manifest … (секция «ДЕНЬГИ») + +база (после стабилизации банка) $0.308102 +потрачено вне текущих баз $0.018243 ⚠ ушло провайдеру из БД, которая была пере-создана; + улика logs/orphaned-spend-p7-low.tsv, sha256 2b15d1e7… +p7-off леджер $2.308142 − база ⇒ $2.000040 +p7-low леджер $0.980793 − база ⇒ $0.672691 +p9-off леджер $1.899771 − база ⇒ $1.591669 +p9-low леджер $0.964030 − база ⇒ $0.655928 +glm-off леджер $0.586246 − база ⇒ $0.278144 +───────────────────────────────────────── +ИЗРАСХОДОВАНО $5.524817 из САНКЦИИ $9.50 +ОСТАТОК $3.975183 — НЕ израсходован и добираться не будет +``` + +⚠ **Смета плана завышала цену клетки, и это тоже находка.** Закладывалось `∅` $0.09 и `low` $0.05; +факт по медианам попытки 0 — `∅` $0.066–0.070 и `low` $0.028–0.030. ⛔ **Остаток НЕ основание +добирать юниты:** рамка выборки заморожена ДИАПАЗОНОМ ГЛАВ, и §12 промта прямо запрещает добор +после просмотра чисел. + +⚠ **Смета недооценила другое: ретраи.** У `p7-off` они дали 39.3% цены руки, у `p9-off` — 26.3%, +и большая часть этого — четыре оплаченных `decode_error`. Дорога в руках `∅` не только сама +генерация, но и её обрывы. + +--- + +### Д54.8 ЧТО ЭТО ЗНАЧИТ ДЛЯ КНИГИ — и чего из этого НЕ следует + +На книге в 2283 главы редакторская стадия при нынешней конфигурации (`∅`, то есть вендор-дефолт) +проецируется по медиане клетки `$0.066–0.070` и пропорции 20 юнитов на 17 глав: +**2283 × (20/17) × $0.068 ≈ $183** в пиковых терминах. При `low` — **≈$77**. +⚠ Это ПРОЕКЦИЯ по медиане на 20 юнитах одной книги, а не смета: разброс цены клетки внутри руки +велик, и хвост обрывов на длинных главах в неё не заложен. + +⛔ **Из пробы НЕ следует рекомендация переключить боевой редактор на `low`.** Проба измерила цену и +$0-гейты. **Качество при сниженном усилии не судилось — это прямо вне скоупа (§12 промта).** Между +«вдвое дешевле и не хуже по $0-гейтам» и «можно ставить в бой» лежит замер качества, которого нет. +Что проба даёт для такого решения: **цена рычага известна**, **эхо-риск `low`, которого боялся план, +не подтвердился** (эха не было ни в одной из 100 клеток), и **все пять провалов доставки пришлись на +`∅`, ни одного на `low`**. ⚠ Но «`low` безопаснее» из этого не следует: утечки CJK в 4–10 иероглифов +встретились и там и там, разница ниже разрешения, а качество ТЕКСТА не мерилось вовсе. Следующий шаг — +судейство качества `low` против `∅`, и теперь его стоит купить: цена рычага делает его окупаемым, а +подозрение по эху с него снято. + +⛔ И отдельно: правка боевого `pipeline-c1.yaml` пинит тест `echo_mine_test.go:217` и двигает +снапшот edit-волны ⇒ `--resnapshot` и перекупка волны. Это не «поменять строчку». + +--- + +### Д54.9 ЧТО ВИДНО В САМИХ ТЕКСТАХ — $0-разбор по запросу владельца + +⚠ **Границы этой секции.** Качество НЕ судится (§12 промта). Ниже — только детерминированные +счётчики и одно наблюдение по оси целевого языка, то есть по $0-гейтам. **Тексты никто из +исполнителей не читал глазами**, и впечатлений здесь нет намеренно. + +**Материал.** Юнитов, у которых финальный текст непуст во ВСЕХ пяти руках — **15 из 20**. Выпали +ровно провалы `∅`: (4,0) `p9-off` пустой ответ и (11,0), (13,1), (14,0), (17,0) — таймауты `p7-off`. +⇒ **ни один оборванный или пустой текст в сравнительный материал не попадает.** +Клетки с флагом `sanitizer_stripped` в материале ОСТАЮТСЯ, и это безопасно: **CJK в финальных +текстах всех пяти рук по всем 15 юнитам — ровно 0** (утечка в 4 иероглифа была в СЫРОМ ответе и +вычищена санитайзером). + +**Совпадение версий (по словам, `difflib` с `autojunk=False`, n=15):** + +| ось | медиана | минимум | +|---|---|---| +| усилие при P9 | 0.851 | 0.643 ю(6,0) | +| усилие при P7 | 0.901 | 0.679 ю(12,1) | +| промпт при `∅` | 0.902 | 0.829 ю(16,0) | +| промпт при `low` | 0.858 | 0.651 ю(12,1) | +| `glm-5` против `deepseek` | 0.901 | 0.706 ю(3,0) | + +⚠ **Мера считается ПО СЛОВАМ и с `autojunk=False` — и это не педантизм.** Первая редакция считала +посимвольно с умолчанием, где `SequenceMatcher` на текстах в 5–10 тыс. знаков объявляет мусором +каждую частую букву; числа расходились втрое. Ловится положительным контролем: «половина текста +заменена» обязана дать 0.500, и даёт. + +**Единого юнита-выброса нет:** на разных осях низшие разные, диспозиции у них `ok`, длины пяти +версий различаются на 1–5%. Это обычный разброс генерации на побайтно одном входе, а не поломка. + +**⛔ Строка про авторский рефрен — эффекта НЕ ПРЕДЪЯВЛЕНО, двумя независимыми мерами.** +Единственное содержательное различие двух промптов — оговорка «повтор в параллельных позициях +исходника есть авторский рефрен, сохраняй его». Проверено: +· **выживаемость повторов** — 5-словные n-граммы, встречающиеся в черновике ≥2 раз, сохранившиеся + ≥2 раз в выходе: `p7-off` 1/12, `p9-off` 2/12, `p7-low` 0/12, `p9-low` 0/12. Знаково-ранговый + **p=1.000**. ⚠ Материал метрике не даёт работать: кандидатов всего 12 на 3 юнита из 15. +· **доля повторяющихся 3-грамм** — черновик 0.0209; `p7-off` 0.0222, `p9-off` 0.0178, `p7-low` + 0.0167, `p9-low` 0.0166. Контраст P9 − P7: медиана **−0.00135**, **p=0.107**, причём направление + ПРОТИВОПОЛОЖНО предсказанию строки. +⇒ Согласуется с E3 (`p=0.487`). **Для чтения владельцем это значит: ось промпта — наименее +перспективное место, куда тратить внимание.** + +**⛔ ДЕФЕКТ ЦЕЛЕВОГО ЯЗЫКА У РЕФЕРЕНСА, КОТОРЫЙ $0-ГЕЙТЫ НЕ ПОЙМАЛИ.** `glm-5` шесть раз оставил +английское `cultivation` в русском тексте — один раз в ю(6,0), пять в ю(8,0): + +``` +«Сейчас я только начал cultivation, моя сила — начальный уровень первого ранга…» +«…увидев, что Фанъюань собирается продолжать cultivation, тут же забеспокоился…» +``` + +У всех четырёх deepseek-рук латиницы **ноль**. Санитайзер и чекеры это пропустили: они ищут CJK и +кириллическую чистоту, а **непереведённая латиница в целевом тексте под гейт не попадает**. +⚠ Это НЕ вывод об оси усилия — референс в крест не входит. Это (а) находка для гейтов и (б) причина +НЕ включать `glm-5` в слепое чтение: по этому артефакту рука опознаётся мгновенно. + +**Годность материала для слепого чтения владельцем.** Пометок банка, служебных скобок, заголовков, +сносок и обрывов на многоточии — по нулю во всех руках; суммарные длины пятнадцати юнитов лежат в +пределах 1.3% друг от друга (110 496 … 111 938 знаков). ⇒ Четыре руки креста **неразличимы по +форме**, материал честный. Оговорки: `glm-5` опознаётся по латинице и оказывается самым длинным в +8 юнитах из 15 ⇒ **в слепое чтение его включать не следует**; и выборку юнитов для чтения должен +делать не тот, кто видел числа. + +--- + +### Д54.10 ⭐⭐ РЕПЛИКАЦИЯ НА НЕЗАВИСИМОМ ПОВТОРНОМ ПРОГОНЕ — и σ, замеренная на zh + +Параллельная сессия слепого чтения купила по санкции владельца **второй независимый прогон руки +`p9-low`** (`arms/low2.db`, $0.659678) как активный нуль для своего судейства. Для НАСТОЯЩЕЙ пробы +это оказался подарок: **реплика, которой в дизайне не было.** Разбор ниже — $0, на чужих данных. + +**Материал тождествен, проверено:** у `p9-low` и `low2` совпадают draft-снапшот `8d5721f65596`, +edit-снапшот `b76ab168d95b` и `memory_version e1815faab405`. То есть это чистый повторный розыгрыш +той же конфигурации на том же черновике и том же банке, а не другой замер. + +**Эффект воспроизводится:** + +| контраст | n | медиана | p | +|---|---|---|---| +| пара P9 с `low₁` (исходный) | 19 | **×0.230** | 0.0014 | +| пара P9 с `low₂` (реплика) | 20 | **×0.307** | 0.024 | +| шум ВНУТРИ руки (`low₂` − `low₁`) | 19 | ×1.590 | **0.225 — ниже разрешения** | + +То же по цене клетки: эффект ×0.473 (p=1.05e-04) с `low₁` и ×0.428 (p=0.002) с `low₂`; шум внутри +руки ×1.106 при p=0.898. + +⇒ **Вывод E1 держится при подстановке независимого прогона вместо исходного.** Знак, порядок +величины и значимость сохраняются; систематического сдвига между двумя прогонами одной руки не +предъявлено. + +**⭐ И главное побочное: σ ОДНОГО РОЗЫГРЫША ЗАМЕРЕНА НА zh.** Разность двух прогонов одной руки +имеет sd = σ√2, отсюда: + +``` +sd(log R̂(low₂) − log R̂(low₁)) = 1.493 по n=19 ⇒ σ = 1.493/√2 = 1.056 +``` + +План строил мощность на σ=1.2, а эррата Д47.7 давала **1.02 — но на АНГЛИЙСКОЙ паре и с прямой +оговоркой «на zh не переносится»**. Замерено: **1.056**. ⇒ **Переносится.** Это закрывает долг, +который план объявил открытым, и делает его таблицу мощности применимой к паре zh→ru. + +**Что это значит для разрешающей способности:** + +| | MDE | +|---|---| +| n=17, плановая σ=1.2 | ×2.31 | +| n=17, **замеренная σ=1.056** | **×2.09** | +| наблюдённый эффект | **÷3.53** ⇒ ВЫШЕ разрешения | + +Эмпирическая sd самого контраста E1 — **0.791** по 17 юнитам, что не противоречит теоретическому +«sd контраста в кресте 2×2 равен σ» (план §4 «Мощность»). + +⚠ **И честная половина той же находки, которую принесла параллельная сессия:** по СОВПАДЕНИЮ ТЕКСТА +два прогона одной руки расходятся сильнее (медиана 0.799), чем разные руки между собой (0.820). +**Это не противоречит E1 и не ослабляет его.** Разные величины: совпадение формулировок и объём +размышления — разные вещи, и одна конфигурация свободно даёт разные слова при том же расходе +токенов. Но для ЛЮБОГО замера, который судит ТЕКСТ, это предупреждение первого порядка: там шум +розыгрыша крупнее межрукового различия, и без активного нуля такой замер награждал бы шум. Наша +проба защищена парным дизайном по 20 юнитам — и, теперь, прямой репликацией. diff --git a/eval/dovodka/prereg-4axes/ISPOLNENIE.md b/eval/dovodka/prereg-4axes/ISPOLNENIE.md index 070bdd16..7d1db6b7 100644 --- a/eval/dovodka/prereg-4axes/ISPOLNENIE.md +++ b/eval/dovodka/prereg-4axes/ISPOLNENIE.md @@ -338,8 +338,15 @@ content_hash: p7-off = p7-low = e3db15ac06a4ff04… Остаток `2310 − 0.3644·7605 = −461` (20% от completion). Отрицательный — значит размышления нет вовсе, а коэффициент 0.3644 просто не подходит чужому токенизатору. План это предупреждал; для E1 референс не используется, и «R̂ = 0 по построению» остаётся верным. -⚠ Проводная улика референса НЕ снята: его клетка куплена $0-гардом без канала тел. Снимется на -первом юните пачки — канал включён именно там. +✅ **Проводная улика референса СНЯТА на первом юните пачки** (канал включён именно там): + +``` +glm-off, тело запроса: …\"thinking\":{\"type\":\"disabled\"}} +``` + +Тем самым провод доказан для ВСЕХ ПЯТИ рук: у `low`-рук в теле стоит `reasoning_effort:"low"`, +у `∅`-рук этого ключа НЕТ вовсе, у референса — `thinking:{type:disabled}`. Три РАЗНЫХ механизма +на проводе, ровно как их описывает реестр моделей. --- @@ -379,3 +386,23 @@ glm-off $0.012870 факт — ∅ $0.034–0.064 и low $0.013–0.026. Причина в том, что `low` режет размышление сильнее закладывавшегося. ⛔ **Это НЕ основание добирать юниты:** рамка выборки заморожена диапазоном глав, и §12 промта запрещает добор после просмотра чисел. Остаток санкции остаётся неизрасходованным. + +--- + +## ИТОГ ПАЧКИ И КУДА СМОТРЕТЬ ДАЛЬШЕ + +Пачка отработала 19 юнитов (юнит 1 куплен пред-полётом), итого **100 клеток**. Наборы ключей юнитов +побайтно одинаковы во всех пяти руках — блокировка трудности выдержала все сто клеток. +**Израсходовано $5.524817 из санкции $9.50; остаток $3.98 НЕ добирался** (рамка заморожена +диапазоном глав, добор после чисел запрещён §12 промта). + +**Результат, реестр ошибок и всё, что не удалось, — в отчёте `docs/experiments/23-editor-tier.md` +§Д54.** Здесь он не дублируется: одно число в двух местах рано или поздно разойдётся. + +⚠ **Отчёт и запись в `docs/PROGRESS.md` НЕ ЗАКОММИЧЕНЫ намеренно:** §12 промта разрешает этой сессии +единственный класс коммитов — пре-рег-фриз (`c08b547`, `590256a`). Лендит оркестратор. + +**Адверсариальный проход по готовому отчёту** (мандат §7.3) нашёл в его первой редакции ещё семь +ошибок — все записаны в Д54.5 с классами. Главные три: «эхо» там, где флаг `cjk_artifact` не +срабатывал ни разу за 100 клеток; «минимум втрое» при верхней границе ДИ ÷2.3; «21-й день» вместо +3-го в обязательном клейме вывода.