Let the field the engine writes itself decide the split: three of four failures produced no text at all, and the discriminator that needed a paid retry is gone
This commit is contained in:
parent
30617f2a17
commit
75eb421892
1 changed files with 41 additions and 18 deletions
|
|
@ -17,27 +17,50 @@
|
|||
медицинская. **Не выключай его.** Первая редакция этого промта утверждала обратное, и сессия, исполнившая
|
||||
её буквально, отключила бы восстановление трёх чанков из четырёх.
|
||||
|
||||
**Настоящая находка — в том, что двойных оплат ДВЕ РАЗНЫХ, а движок применяет к ним одно лекарство.**
|
||||
Пере-снято мною по базе прогона (`bk_ROEHZBD46ALFI43E/project.db`, стадии `draft`/`edit`, `tm_hit=0`):
|
||||
⛔⛔ **РЕЛЕЙ 11.09, РЕДАКЦИЯ 3 — ЭХО СЕССИИ ОПРОВЕРГЛО РАСКЛАДКУ РЕДАКЦИИ 2, И Я СОГЛАСИЛСЯ. Читай ЭТО, а
|
||||
таблицу ниже — через эту поправку.**
|
||||
|
||||
| единица | 1-я попытка | 2-я попытка | что это значит |
|
||||
|---|---|---|---|
|
||||
| `draft` ch1u0 | comp **8496** · `length` · пусто · $0.012044 | **15869** · `stop` ✓ | потолка не хватило |
|
||||
| `draft` ch2u1 | comp **8496** · `length` · обрезок · $0.011637 | **13004** · `stop` ✓ | потолка не хватило |
|
||||
| `draft` ch3u0 | comp **8496** · `length` · пусто · $0.011782 | **14034** · `stop` ✓ | потолка не хватило |
|
||||
| `edit` ch2u0 | comp **16000** · `length` · пусто · **$0.071009** | **11717** · `stop` ✓ | потолка ХВАТАЛО |
|
||||
Редакция 2 делила четыре двойные оплаты 3:1 — «трижды потолка не хватило, один раз съело размышление».
|
||||
**Это неверно, и опровергается полем, которое движок пишет САМ.** Пере-снято мною по той же базе:
|
||||
|
||||
⭐ **Контроль, и он режет популяцию без единого исключения.** Успешных черновых вызовов в прогоне ШЕСТЬ,
|
||||
их размеры: `6468 · 7932 · 8243 · 13004 · 14034 · 15869`. **Все три, что уложились в 8496, прошли с первого
|
||||
раза. Все три, что не уложились, с первого раза упали и прошли на удвоенном потолке. 6 из 6, исключений
|
||||
ноль.** ⇒ на черновике это НЕ болезнь размышления и не случайность: **первый потолок просто меньше того,
|
||||
что эта стадия реально производит на половине единиц**, и удвоение делает работу, которую должна была
|
||||
сделать оценка бюджета.
|
||||
| id | стадия | comp 1-й | `finish` | `degraded` | цена |
|
||||
|---|---|---|---|---|---|
|
||||
| 1 | `draft` ch1u0 | 8496 | `length` | **`empty`** | $0.012044 |
|
||||
| 5 | `draft` ch2u1 | 8496 | `length` | **`length`** | $0.011637 |
|
||||
| 7 | `draft` ch3u0 | 8496 | `length` | **`empty`** | $0.011782 |
|
||||
| 31 | `edit` ch2u0 | 16000 | `length` | **`empty`** | $0.071009 |
|
||||
|
||||
⛔ **А четвёртый случай — противоположный, и он стоит ДВУХ ТРЕТЕЙ всей потери в ОДНОМ вызове.** У `edit`
|
||||
потолок 16000 был заведомо достаточен: вторая попытка уложилась в 11717. Значит первый вызов выкупил 16000
|
||||
токенов чего-то, что не было текстом. Это размышление — у DeepSeek оно считается ВНУТРИ выходных токенов
|
||||
(`reasoning ⊆ completion`), и здесь удвоение потолка действительно даёт ему вдвое больше места.
|
||||
⇒ **`empty` ×3 = $0.094835 = 89 % всей потери; `length` ×1 = $0.011637.** Раскладка ОБРАТНАЯ моей.
|
||||
И порядок решения в коде это подтверждает: `disposition.go` проверяет пустоту ДО обрезания
|
||||
(`if out == "" → FlagEmpty`, и только потом `finish == FinishLength → FlagLength`), то есть
|
||||
`degraded='empty'` значит РОВНО НОЛЬ знаков — весь потолок ушёл до того, как начался текст.
|
||||
|
||||
**Почему мой довод был неверен, дословно из эхо сессии:** у DeepSeek `reasoning ⊆ completion`, значит
|
||||
`completion_tokens` ВТОРОЙ попытки тоже содержит размышление. ⇒ из «вторая дала 15869 > потолка 8496» НЕ
|
||||
следует «потолка не хватило ТЕКСТУ»: 15869 — это текст ПЛЮС неизвестное размышление.
|
||||
|
||||
⛔ **И мой «контроль 6 из 6 без исключений» — ТАВТОЛОГИЯ, а не улика.** «Кто уложился в потолок — прошёл,
|
||||
кто не уложился — упал» верно ПО ПОСТРОЕНИЮ (`comp ≤ cap ⇒ stop`, иначе `length`). Он говорит, что потолок
|
||||
бьётся с `comp`, и ничего — про то, чем `comp` занят. Из акта и заказа снят.
|
||||
|
||||
⭐ **И вот что делает пак ИСПОЛНИМЫМ, а мою редакцию делало неисполнимой.** Мой дискриминатор
|
||||
(«2-я больше/меньше потолка 1-й») **РЕТРОСПЕКТИВЕН**: он известен только после того, как вторая попытка
|
||||
ОПЛАЧЕНА, и лекарство им выбрать нельзя. А различение, которое нужно, **уже есть в дереве и снимается ДО
|
||||
ретрая**: `FlagEmpty` против `FlagLength`. ⇒ **слепо именно ЛЕКАРСТВО**, а не классификация:
|
||||
`maxTokensForAttempt(base, escalations)` принимает счётчик удвоений и больше ничего. Это и есть «дать
|
||||
существующему лекарству прочитать существующий класс», буквально.
|
||||
|
||||
⛔ **ЧЕТВЁРТАЯ ПОПРАВКА: «шаг вниз по нейтральному словарю вырожден» — НЕВЕРНО, и снимается.** Словарь
|
||||
упорядочен лексически (`"" · off · low · medium · high`), но ЭФФЕКТИВНЫЙ порядок размышления у
|
||||
`ReasoningNone` другой: **`low < medium < high = off = ""`** — `off` не эмитит ничего и едет
|
||||
вендор-дефолт `high`. ⇒ **`off` есть ВЕРХ шкалы, и шаг вниз с него на `low` существует**, а носитель
|
||||
самого дорогого случая (`edit`, $0.071009 = две трети потери) стоит именно на `off`. Строй ступень
|
||||
ПАРАМЕТРОМ; боевое значение по-прежнему не трогай (§4.2).
|
||||
|
||||
⇒ **ЧИТАЙ ТАБЛИЦУ §4.1 ТАК:** строка «потолок мал» применима к ОДНОМУ случаю (`degraded='length'`,
|
||||
обрезок с текстом), строка «размышление съело потолок» — к ТРЁМ, и класс берётся из `degraded`, а не из
|
||||
сравнения потолков. Коллизия, которую я вводил поправкой (б) в §4.1, **исчезает вместе с моим
|
||||
дискриминатором**: `degraded` относит каждую единицу ровно к одному классу.
|
||||
|
||||
**Что решит твой результат.** Движок научится отличать «не хватило потолка» от «потолок съело размышление»
|
||||
и перестанет платить за первое по цене второго. Плюс причина станет ВИДНА: сегодня спросить «что
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue