- BrainTools - https://www.braintools.ru -

В прошлый раз я писал о том, что decision-cascade – это локальный движок решений с типизированными ответами (Noul/Choice/Score) и каскадом, который эскалирует сложные случаи к внешней модели. Тогда главным критерием эскалации был порог уверенности: если confidence ниже 0.6 – идём во внешнюю модель.
Честно говоря, после публикации я сам себе задал неудобный вопрос: а почему, собственно, 0.6? Почему не 0.5 или 0.7? И главное – уверенность модели и польза от эскалации – это не одно и то же. Можно быть очень неуверенным в вопросе, где ошибка [1] ничего не стоит. А можно быть уверенным на 0.8 – и ошибиться там, где ошибка обойдётся дорого.
Именно это понимание привело к главному изменению за месяц: benefit-aware эскалация.
Вкратце: вместо «эскалировать, если неуверен» движок теперь сравнивает ожидаемую полезность локального ответа и эскалации, учитывая цену ошибки и цену вызова внешней модели. Если выгода от уточнения меньше стоимости внешнего вызова – каскад остаётся локальным. Если больше – эскалирует.
На практике это означает, что каскад может позволить себе оставить локальный ответ даже при невысокой уверенности, если цена ошибки в данном состоянии невелика. И наоборот – эскалировать при относительно высокой уверенности, если ошибка чревата последствиями.
В коде это выглядит как отдельный режим, но по сути это смена парадигмы: от «модель решает, когда она права» к «система решает, когда стоит платить за уточнение».
Синтетические бенчмарки – это хорошо, но они не отвечают на вопрос «а работает ли это там, где ошибка имеет цену». Поэтому я добавил две игры – шахматы против Stockfish и лабиринт в духе Pac-Man. Обе полностью локальные, без сторонних ассетов.
В шахматах 19% эскалаций закрывают половину разрыва до «всегда думать глубоко», при 38% стоимости полного просчёта. В лабиринте осторожная политика набирает 94% очков при 33% эскалаций – вдвое больше, чем жадная стратегия. Это не значит, что движок стал шахматным гроссмейстером. Это значит, что benefit-aware каскад работает в условиях, где решение имеет реальную цену, а не только метрику accuracy.


В прошлой статье я приводил цифры на AG News. Сейчас добавились бенчмарки против живых релизов Clef-Flash (9.4B) и Laya (421M) на публичных наборах, n=200, одна GPU 16 ГБ.
|
Набор |
|
Clef-Flash 9.4B |
Laya 421M |
|---|---|---|---|
|
AG News – accuracy |
0.873 |
0.855 |
0.662 |
|
AG News – p50 |
10 мс |
130 мс |
16 мс |
|
RouterBench – accuracy |
0.542 |
0.442 |
0.312 |
|
RouterBench – p50 |
21 мс |
170 мс |
– |
Маленькая локальная модель с обученными головами обходит 9B-конкурента по качеству на decision-задачах и в 10 раз быстрее. Это не значит, что Clef плохая – на свободной генерации она выиграет легко. Но на задачах принятия решений каскад даёт другую экономику.
Все цифры воспроизводимы: eval/competitors/reproduce_real.sh [2] и сырые JSON в релизах.
Ещё одно изменение, которое не так заметно, но важно для тех, кто рассматривает проект для интеграции: версия 1.x теперь имеет стабильный контракт. Формат паков и переменные DECISION_* не ломаются без major-версии и окна депрекации. Плюс проект опубликован на PyPI – pip install decision-cascade – и имеет быстрый старт на hash-энкодере без скачивания моделей и без GPU за пару минут.
Проект стабильный, но по умолчанию головы случайны – осмысленное качество требует SFT/RLCD или скачивания готового пака весов. Риск-модель полезна только после накопления примеров. Доменная калибровка под ваш сценарий – отдельная задача. Это не «магия из коробки», а инфраструктура, которая окупается, когда вы на неё накатите свои данные.
В ближайших планах – энкодер-трансформер с attention-mask состояний и более глубокая интеграция в чат-агентов. Но главное – обратная связь. Если у вас есть сценарии, где каскад ошибается или эскалирует не туда, – расскажите, это помогает делать движок лучше.
Репозиторий: https://github.com/slavabars/decision-cascade [3]
Автор: slavabars
Источник [4]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/38402
URLs in this post:
[1] ошибка: http://www.braintools.ru/article/4192
[2] real.sh: http://real.sh
[3] https://github.com/slavabars/decision-cascade: https://github.com/slavabars/decision-cascade
[4] Источник: https://habr.com/ru/articles/1106596/?utm_campaign=1106596&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.