TODO-0186 · гибрид «модель/регулярки»: 63.7%, и где именно расходятся
Главный результат: раз регулярки остаются в бою, спорный вопрос не «лучше ли
модель», а где каждая линия выигрывает.
модель 57.4% живой 53.4% ГИБРИД 63.7% при пороге доверия 0.08
Порог — плато 0.08..0.32 в пределах 1 п.п. от лучшего, то есть не остриё.
Проверено тестом: гибрид обязан быть не хуже обеих чистых линий, а порог
обязан лежать плато, а не быть одиночным максимумом. Оба свойства зафиксированы
тестами, иначе «порог 0.08» нечем было бы защитить от подгонки.
ТАБЛИЦА ПАРИТЕТА, 65 ИНСТРУМЕНТОВ — TODO-0186/PARITY.md
Артефакт, который едва не провёл. Первый подсчёт дал «регулярки выигрывают
56% строк, модель 37%». Разбор: метка <LLM> занимает 324 строки из 1414, то
есть 23% теста, и на ней регулярки дают 96% против 54.9%. Но <LLM> — не
навык, а «ничего не вернуть», и правильный ответ там и есть пустой ответ:
выигрыш по построению. Без отделения этого класса вывод ПЕРЕВОРАЧИВАЕТСЯ.
Столбец «реальный навык» в таблице теперь несёт это явно.
Честная картина по 64 реальным навыкам:
модель 41 метка, 518 строк (48%)
регулярки 15 меток, 463 строк (42%)
ничья 8 меток, 109 строк (10%)
Закономерность, которая делает гибрид осмысленным: модель сильна там, где
регулярок НЕТ (companion_seed 0%→100%, prompt_help 26%→93%), и слаба там, где
регулярки заточены (reminder_set 76%→21%, memory_forget 71%→27%, короткие
menu_подписи 83%→54%). Ни одна чистая линия не выигрывает — только диспетчер.
ДВА ДЕФЕКТА, КОТОРЫЕ НАДО РАЗОБРАТЬ
companion_shelf_recommend — модель 0.0% при 40 строках. Не «плохо», а ровно
ноль: похоже на вырождение класса в тренировке.
reminder_set — 20.7% против 75.9%, целое семейство напоминаний.
ВАЛИДАЦИЯ, ТРИ ПОПЫТКИ, КАЖДАЯ ВСКРЫЛА СВОЙ КЛАСС ОШИБКИ
нарезка по строкам → val 97.6% при test 60%: измеряет запоминание;
нарезка по сидам → val падает 43→35, test растёт 42→52, и early-stop выбрал
ХУДШУЮ эпоху, потому что у 45 из 65 меток сид ровно один и он целиком уходил
в валидацию, метка исчезала из обучения;
только метки с >=2 сидами → val и test движутся вместе (45.0% и 61.2%).
Guard на потерю меток при отрезании теперь есть, и он покрыт тестом.
ЧЕСТНО ПРО ЦИФРУ: гейт 85% НЕ пройден (модель 57.4%). Прошлые 89.3% были на
одних say_ru, самом лёгком подмножестве. Все 1414 тестовых строк участвовали
в выборе порога, поэтому 63.7% — оптимистично: отложенного набора у нас нет.
Гибрид нигде не применён в коде, это расчёт, не боевая логика.