Decision models: я спросил «да или нет?»

Decision models. Jev, Laya, GLiNER2.5. Бумажная лента от документа расходится на три пути, один из них красный

Роман Хомутов

Эксперименты 22 сентября — 1 октября 2026

Я спросил: да или нет? Большой робот с табличкой LLM схватился за голову над лентами схем, маленький робот нажимает кнопку «Да», на системном блоке спит рыжий кот

Итог на трёх наших задачах

DeepSeek FlashLLM через API
Jevdecision model через API
Decider 4B v2открытые веса
Clef-Flash 9Bоткрытые веса

Для следующего локального прототипа я выбрал бы Decider: качество немного выше, чем у Clef-Flash, а измеренные задержка и память ниже.

Julia выгодна по CPU-ресурсам, но её не подходят для этих задач без дальнейшей работы.

Это вывод по малому авторскому набору и конкретным схемам входа, а не общий рейтинг моделей.

Приложению нужен выбор из списка, а не текст

Текст обращения

Вопрос и варианты

Отдел для этого обращения

    Decision model

    Jev

    Ответ

    Код приложения

    Выбирает действие по ответу: например, ставит обращение в очередь billing

    Decision models полезны, когда приложению нужен конечный выбор, несколько типизированных вопросов или score, а подробный ответ формировать не требуется.

    Запрос: контекст, вопрос и описания вариантов

    Запрос к Jev · POST /v1/evaluate через Vercel AI Gateway

    Ответ ·

    Схема задаёт форму ответа: выбор из списка и вероятности. Правильность выбора она не гарантирует.

    Запись реального запроса из прогона 22 сентября.

    15 конфигураций: два API, открытые веса и правила

    Через API

    • JevDecision model от TypeSafe, вызов через Vercel AI Gateway
    • DeepSeek FlashLLM: выбор и вероятности в JSON-ответе, reasoning выключен

    Открытые веса

    • Decider 4B v2, Kev 4B, SemIf 4BКачество на RTX 3090 в BF16, задержки ещё и на Xeon в FP32
    • Clef-Flash 9BОфициальный runtime, Xeon, FP32
    • Julia 1144,3 млн параметров, основа mmBERT-small
    • CLM 8B Q8llama.cpp, CPU и RTX 3090
    • Laya multi, GLiNER2.5 multi, small EN, Decide EN, multi-DecideCPU

    Базовая линия

    • ПравилаРегулярные выражения

    У каждой модели свой штатный интерфейс, но тексты, инструкции и описания вариантов одни и те же. Тонкая настройка на этом наборе не проводилась.

    Три задачи: 100 строк из 59 исходных ситуаций

    Маршрутизация

    50строк

    25 ситуаций на русском и английском

    billingtechnicalaccountsalesother

    Возврат выполнен?

    32строки

    16 ситуаций на русском и английском. Засчитывается хотя бы частичное перечисление

    truefalse

    Политика команд

    18команд

    allow, review или deny по явной политике. Команды только классифицировались, не выполнялись

    allowreviewdeny

    41 пара переводов — это не 82 независимые ситуации. После многократной диагностики набор уже не служит нетронутым test set.

    Ещё 54 перестановки вариантов, 10 текстовых инъекций и 16 перефразировок — варианты тех же случаев, а не новые задачи.

    Спросим модель сейчас

    Вопрос
    Модели

    Jev и DeepSeek — 99 и 100 из 100, лучшие открытые — 96 и 95

    Верных ответов на 100 строках. Линия — результат правил. GLiNER Decide EN () и GLiNER small EN () проверены на английской части, поэтому на этой шкале их нет.

    Результат по задачам

    тон ячейки — доля ошибок. У GLiNER Decide EN — 41 английский текст и 18 команд, у GLiNER small EN — только 41 английский текст.

    Перестановка вариантов, инъекции и перефразировки

    тон ячейки — доля смен или ошибок. Смена — ответ отличается от ответа на исходный пример. Новая ошибка — исходный ответ был верным, а новый нет.

    У Clef-Flash исходный и переставленный запросы дают одинаковые token hashes: runtime сортирует ключи. Ноль смен здесь показывает каноникализацию API, а не доказанную устойчивость. Ноль ошибок на десяти инъекциях не доказывает безопасность.

    Тот же текст — ответы всех конфигураций

    Записи прогонов 22 сентября — 1 октября, повторных вызовов нет. Уверенность — оценка модели внутри вариантов, а не вероятность правильности; у DeepSeek её пишет сама модель.

    На чём ошибаются сильные модели

    Схема входа и API меняют результат

    Совпадение типа интерфейса не обеспечивает перенос на наш домен.

    Горячий запрос: от 52 мс на GPU до 13 с на CPU

    Xeon E5-2696 v4, 8 ядерRTX 3090API по HTTP, включая сеть

    P50 по 30 последовательным запросам после прогрева, без HTTP и очереди сервиса. Decider, Kev и SemIf: FP32 на CPU, BF16 на GPU; CLM — Q8. Kernels и serving не оптимизировались до предела.

    Jev и DeepSeek — P50 исходного HTTP-прогона, включая сеть; сравнение с локальным Python не является чистым сравнением архитектур.

    Холодный старт: от 7 до 29 секунд до первого ответа

    Xeon, 8 ядерRTX 3090

    Медиана трёх новых процессов на конфигурацию: запуск процесса, импорты, загрузка и первый ответ. Веса локальные, page cache ОС не сбрасывался. У Jev серверный холодный старт и память провайдера недоступны.

    Четыре вопроса за один вызов

    Четыре вопроса в одном вызовеЧетыре отдельных вызова, сумма

    Один контекст, по три повтора каждого режима: это микроопыт, а не оценка качества на независимой выборке. Медиана; таймер суммирует время HTTP или инференса, паузы для квоты исключены.

    Объединение экономит повторное кодирование, но не исправляет неверное понимание контекста. У Laya ответы на этом state содержат ошибки.

    Токены на 100 запросов стоят доли цента

    JevРасчётная market cost. Gateway фактически списал
    DeepSeek FlashРасчёт по сохранённому usage
    Каскад Jev → DeepSeekReplay при p < 0,9

    Стоимость токенов этих запросов по тогдашним ставкам, а не текущий прайс, полный счёт эксперимента или стоимость сервера. Собственный CPU/GPU, хранение и инженерная работа не оценены.

    Память: у каждой строки своя метрика

    КонфигурацияПамятьЧто измерено
    Decider CPU FP3224,35 GiBPeak RSS процесса
    Kev CPU FP3224,44 GiBPeak RSS процесса
    SemIf CPU FP3224,33 GiBPeak RSS процесса
    Decider RTX 3090 BF168,05 GiB VRAM + 8,79 GiB RAMPeak PyTorch allocated VRAM и отдельный peak RSS
    Julia CPU FP320,99 GiBRSS после последовательного прогрева
    CLM Q8 CPU8,48 GiBСумма текущих RSS encoder и клиента после hot
    CLM Q8 GPU7,94 GiB VRAM + 1,38 GiB RAMDevice usage и сумма текущих RSS после hot
    Clef-Flash CPU FP3236,11 GiB; peak 52,91 GiBRSS после hot и HWM процесса, включая загрузку

    FP32-параметр занимает четыре байта, BF16 — два: только веса 4B — около 14,9 GiB в FP32 и 7,45 GiB в BF16. Наши 24 GiB на CPU — footprint процесса, а не размер файла модели.

    Peak и текущая память несопоставимы без подписи; VRAM и RAM относятся к разным устройствам.

    Извлечение полей: регулярка держится на известном шаблоне

    Новые форматы — дополнительная авторская диагностика после основного прогона. У EN и multilingual разные выборки.

    GLiNER решает и извлечение сущностей и полей. Низкий score на наших decision-задачах не оценивает качество NER: это отдельная операция.

    Каскад: неуверенные ответы Jev уходят DeepSeek

    Отвечает JevПередано DeepSeek

    100 основных примеров, отсортированных по уверенности Jev. Replay двух сохранённых прогонов, а не сквозной benchmark сервиса: стоимость и время рассчитаны. Порог — иллюстрация, а не рекомендация для production.

    Когда decision model уместна

    Что взять в следующий прототип

    Decider 4B v2

    Открытый кандидат: , P50 на RTX 3090

    Jev

    API-база для сравнения: , HTTP P50

    DeepSeek Flash

    Fallback на неоднозначные случаи: , HTTP P50

    Julia 1

    Проверить отдельно на простом высокочастотном routing, где её задержка даёт выигрыш ( на CPU). Наш набор такой выбор не подтверждает

    Clef-Flash 9B

    На CPU FP32 преимуществ перед Decider не дала

    Квантование и GPU

    Выбирать только после замеров соответствующей конфигурации

    Ограничения и следующая проверка

    Ограничения

    • Малый авторский набор59 исходных ситуаций, из них 41 пара переводов
    • Набор не нетронутыйЕго много раз использовали для диагностики
    • Уверенность не вероятность правильностиПорог нельзя переносить между API без отдельной калибровки
    • Инъекций всего десятьНоль ошибок на них не доказывает безопасность

    Следующая проверка

    • Новый доменный наборС независимой разметкой
    • Отдельный отложенный тестНе использованный при диагностике
    • КалибровкаЧтобы порог уверенности что-то значил
    • Цена ошибокОценка цены false allow и false deny

    Это план дальнейших экспериментов; в опубликованные цифры он не включён.

    Вопросы и материалы

    Вопросы?

    • Лаборатория180 записанных примеров, каскад и живые запросы
    • Итоговый отчётREPORT.md: методика, все таблицы и ограничения
    • Все ответы и запросыanalysis/CASE-RESULTS.md и data/CASES.md в комплекте материалов