Jev и LLM: где разница имеет значение
Вокруг Jev поднялся шум: модель не пишет тексты, а сразу выбирает вариант ответа и выдаёт вероятности. Но превращать языковую модель в классификатор умели и раньше: попросить один символ вместо ответа, например 0, 1 или 2, и взять logprobs этих токенов. Получится и метка, и оценка каждого класса.
Отсюда наш вопрос: что Jev даёт сверх этого приёма? Быстрее обрабатывает текст? Точнее выбирает ответ? Выдаёт вероятности, которым можно верить? Мы сравнили её с двумя обычными LLM на публичных данных, чтобы отделить измеримые преимущества от новизны подачи.
Это проверка готовых API, а не архитектуры. По ней можно судить о пользе Jev в похожих задачах, но нельзя установить, что у неё внутри.
Обновление 6 октября. В первой версии Qwen в режиме «17 вопросов за вызов» терял ответы, и мы записали это в слабости LLM. Причина оказалась в нашем формате: голый список из 17 цифр. С нумерованными ответами Q1: 0 сбои исчезли у обеих LLM, а качество на договорах поднялось выше Jev. Мы также посчитали, сколько стоят одиночные вопросы, если провайдер кэширует общий текст. Итог сдвинулся: Jev кратно быстрее и дешевле, но превосходства по качеству и вероятностям на договорах у неё нет.
Кого и как сравнивали
Jev — модель компании TypeSafe. Её API принимает текст и вопрос с набором вариантов (до 255), а возвращает выбранный вариант и вероятности по всем вариантам сразу. К одному тексту можно задать несколько вопросов в одном вызове: по документации текст обрабатывается один раз, а вопросы оцениваются независимо. Мы проверяем результат и скорость этого API, но не его устройство. Документация Jev · Контракт API.
LLM — DeepSeek V4.1 Flash и Qwen3.8 27B. Критерий выбора простой: доступные быстрые и недорогие API с рабочими logprobs и отключаемым reasoning. Мы не пытались выбрать самые точные LLM и не подбирали паритет по цене, размеру или железу, поэтому результат нельзя обобщать на все языковые модели. DeepSeek закреплён за Together, Qwen за Parasail через OpenRouter; Jev — родной API TypeSafe. Qwen3.8 27B · DeepSeek V4.1 Flash.
Baseline для LLM. Тот же текст и инструкция вернуть короткий код класса, без JSON Schema. Режимы отличаются. В бинарных и трёхклассовых одиночных опытах LLM генерирует один токен, и вероятность класса — это exp(logprob) его кода, нормированная на сумму вероятностей допустимых кодов. На BANKING77 код класса может состоять из нескольких токенов, и там сравниваем только метку. На 17 вопросов к одному тексту LLM возвращает нумерованные строки Q1: 0 … Q17: 2; вероятность каждого ответа берём из logprobs на позиции его цифры. В скоростном опыте раздела 02 LLM отдают короткие коды без logprobs, цена рабочего формата показана там же отдельно. У Jev берём поле probabilities.
Данные. ANLI — 300 коротких, но сложных выводов из текста: три класса. ContractNLI — 30 договоров, к каждому 17 утверждений, всего 510 пар текст/утверждение: подтверждено, противоречит, сведений недостаточно. BANKING77 — 385 обращений в банк, по 5 на каждое из 77 намерений. Все три набора публичные и англоязычные.
Четыре проверки
- Качество выбора метки. Три задачи, macro-F1. Специализация Jev могла дать более точные ответы, но LLM могли оказаться не хуже. → 01
- Скорость на многих вопросах. Jev штатно берёт несколько вопросов к тексту. Но LLM тоже можно дать 17 вопросов в одном промпте или отправить 17 запросов параллельно, а общий текст провайдер может взять из кэша. Проверяем, остаётся ли преимущество по времени и по деньгам. → 02
- Меньше ложных тревог. Отдельный бинарный опыт на ContractNLI: есть противоречие или нет. Сравниваем precision при одинаковом recall, чтобы не путать качество с привычкой чаще отвечать «да». → 03
- Вероятности, которым можно верить. На тех же бинарных ответах: если модель обещает 80%, противоречие должно встречаться примерно в 80% таких случаев. Плюс трёхклассовые вероятности, когда все 17 вопросов идут одним вызовом. → 04
Обратите внимание: ContractNLI участвует дважды. В разделе 01 это трёхклассовая задача, где проверяем метку. В разделах 03 и 04 это отдельный бинарный прогон по тем же 510 парам, где проверяем score. Это не одни и те же ответы, схлопнутые в два класса.
01 Где лучше качество
Macro-F1, выше лучше. Каждый класс весит одинаково, поэтому редкие классы не теряются.
| Публичный поднабор | Jev 1.13 | DeepSeek V4.1 Flash | Qwen3.8 27B |
|---|---|---|---|
| ANLI · 300 · один вопрос | 0.779 | 0.676 | 0.661 |
| ContractNLI · 510 · один вопрос | 0.734 | 0.689 | 0.760 |
| ContractNLI · те же 510 · 17 вопросов за вызов | 0.731 | 0.788 | 0.807 |
| BANKING77 · 385 · 77 классов | 0.773 | 0.654 | 0.769 |
Jev выше на ANLI. На договорах выше LLM: Qwen — на одиночных вопросах, обе LLM — когда все 17 вопросов идут одним вызовом. На BANKING77 Jev и Qwen близки. Общего рейтинга нет: задачи разные, и победитель зависит от задачи.
Формат ответа решает. В первой версии LLM возвращали 17 кодов подряд через пробел. В 9 из 30 вызовов Qwen выдала 15–16 кодов вместо 17: модель теряла счёт, и весь вызов засчитывался ошибкой. Отсюда macro-F1 0.582 в прошлой версии таблицы. Повтор 6 октября это подтвердил: сбои в 16 из 60 вызовов у Qwen и в 2 из 60 у DeepSeek. Мы проверили два исправления. Первое — пронумеровать вопросы и просить строки Q1: 0. Второе — strict JSON Schema, где у каждого вопроса только допустимые коды. Оба убрали сбои полностью: 0 из 240 вызовов. Нумерация не хуже по качеству (Qwen 0.807 против 0.796 со схемой, DeepSeek 0.788 против 0.780), короче на выходе и не ломает logprobs. У DeepSeek через Together JSON Schema вероятности не возвращает вовсе. В таблице — нумерованный формат.
Пакет оказался лучше поштучных вопросов. У обеих LLM 17 вопросов за вызов дали более высокий macro-F1, чем по одному вопросу. Qwen: +0.05, 95% интервал [+0.01; +0.09]. DeepSeek: +0.09, [+0.05; +0.13]. Интервалы получены bootstrap-ом по договорам. Причину мы не исследовали. Правдоподобная версия: соседние утверждения помогают отличить «не сказано» от «противоречит». У Jev такого эффекта нет (0.734 по одному и 0.731 пакетом), но одинаковая метрика ничего не говорит о механизме: независимость вопросов остаётся словами поставщика. Разница с Jev в пакетном режиме значима: Qwen +0.08 [+0.04; +0.11], DeepSeek +0.06 [+0.02; +0.10]. Пакетный режим всех трёх моделей перемерен 6 октября с одного сервера; одиночные вопросы — 21–24 сентября.
Про полный вектор вероятностей. На BANKING77 сравниваем только метки. Jev отдаёт вероятности всех 77 вариантов сразу; у выбранных LLM top-20 logprobs этот вектор не покрывает, а код класса может состоять из нескольких токенов.
03 Меньше ложных тревог при нужном recall
Задача — найти противоречие в договоре. Здесь отдельный бинарный опыт: те же 510 пар, тот же вопрос всем трём моделям с двумя вариантами ответа. Противоречий 48 из 510 (9.4%), подтверждённые и неизвестные утверждения — класс «нет противоречия». Модель выдаёт вероятность противоречия; этот score используется и здесь, и в разделе 04.
Recall: сколько настоящих противоречий нашли. Precision: какая доля тревог верна. Каждый порог даёт свою точку на кривой; при нужном recall выбираем кривую выше — она даёт меньше ложных тревог.
| Модель | Average Precision ↑ | Precision при recall 81.25% | Верные / ложные тревоги |
|---|---|---|---|
| Jev 1.13 | 0.713 | 48.1% | 39 / 42 |
| DeepSeek V4.1 Flash | 0.677 | 50.0% | 39 / 39 |
| Qwen3.8 27B | 0.660 | 40.6% | 39 / 57 |
Точку recall ≈ 80% мы выбрали как иллюстративный рабочий ориентир, не как требование продукта. На выборке ближайший достижимый шаг у всех трёх — 39 из 48 противоречий, 81.25%, без интерполяции. При другом требуемом recall соотношение кривых меняется, поэтому смотрите на всю кривую, а не только на точку 80%. Порог на тестовой кривой описывает этот тест, а не готовый production-порог.
Average Precision сводит всю кривую в одно число. У Jev оно численно выше на этой выборке, но это не выигрыш в каждой точке.
Насколько это надёжно. Интервалы считали bootstrap-ом по целым договорам. Precision в выбранной точке: DeepSeek − Jev = +1.9 п.п., 95% интервал [−13.2; +14.3]; Qwen − Jev = −7.5 п.п., [−20.9; +13.7]. AP: DeepSeek − Jev = −0.037, [−0.102; +0.025]; Qwen − Jev = −0.053, [−0.120; +0.028]. Все интервалы включают ноль: статистический победитель не установлен ни по AP, ни в выбранной точке. Равенство этим тоже не доказано — выборка просто мала. Что видно без статистики: около выбранного recall у Jev и DeepSeek примерно половина тревог ложная. Удобный API сам по себе проблему качества не решает.
04 Можно ли верить вероятностям
Большое число ещё не значит надёжную вероятность. Здесь те же бинарные score, что и в разделе 03: p — вероятность противоречия, не вероятность того, что модель права. Если модель выдаёт 0.8, среди многих таких случаев противоречие должно встречаться примерно в 80%. На графике диагональ — идеальное совпадение; точка ниже диагонали означает, что модель завышает вероятность противоречия. Числа у точек — размер группы.
Монотонность — отдельное полезное свойство. Чем выше предсказанная вероятность, тем чаще должно встречаться противоречие. Для этого кривая должна в целом расти; для хорошей калибровки — ещё и попадать на диагональ. Поэтому модель может завышать вероятности, но всё же давать полезный сигнал: «здесь риск выше, здесь ниже».
У Jev этот рост визуально ровнее, чем у DeepSeek: начиная с группы 50–60%, фактическая частота последовательно растёт от 10% до 66% в верхней группе. Но строгой монотонности на всём диапазоне нет и у Jev. У Qwen тоже виден общий рост с локальными спадами. Скачки DeepSeek выглядят резче, однако часть точек построена всего по 1–4 примерам: например, 100% в группе 70–80% — это одно противоречие из одного случая. Поэтому более ровная кривая Jev — обнадёживающее наблюдение на этой выборке, а не доказанное преимущество. Она также не заменяет PR-кривую: та проверяет полезность ранжирования без такого разбиения на группы.
Самая уверенная группа, p ≥ 90%. Jev: обещано 97.7%, противоречие в 65.9% случаев, 44 примера. DeepSeek: 99.3% → 57.1%, 49 примеров. Обе модели в этой зоне заметно самоуверенны. У Qwen в этом диапазоне один пример — судить не по чему.
| Модель | Brier ↓ | ECE ↓ |
|---|---|---|
| Jev 1.13 | 0.081 | 8.8 п.п. |
| DeepSeek V4.1 Flash | 0.075 | 7.3 п.п. |
| Qwen3.8 27B | 0.050 | 1.6 п.п. |
Brier — среднее (p − y)², где y = 1, если противоречие есть. Ориентир для масштаба: постоянный прогноз 9.4%, то есть частота противоречий в этой же выборке, даёт Brier 0.085. Jev и DeepSeek выигрывают у него немного, Qwen — заметно. Но постоянный прогноз не отличает один случай от другого, поэтому малый Brier не отменяет пользу ранжирования из раздела 03.
ECE — средний разрыв между обещанной вероятностью и реальной частотой по десяти группам, с весом по числу примеров. Редкие группы шумные: у Qwen почти все примеры лежат в нижней группе, и низкий ECE во многом оттуда.
Qwen лучше по Brier и ECE, хотя ниже по AP. Это разные свойства: можно аккуратно оценивать вероятность и при этом давать больше ложных тревог при требуемом recall. Всё это исходные числа моделей без посткалибровки; посткалибровка за рамками отчёта, и мы не обещаем, что она что-то исправит.
Вероятности в пакетном режиме. Пакет не отнимает у LLM вероятности. Каждая цифра ответа — отдельный токен, и logprobs на её позиции дают распределение по трём классам для каждого из 17 вопросов. Трёхклассовый ContractNLI, все 510 пар, все вопросы к договору одним вызовом:
| 17 вопросов за вызов | Brier ↓ | ECE ↓ |
|---|---|---|
| Jev 1.13 | 0.328 | 8.5 п.п. |
| DeepSeek V4.1 Flash · нумерованный ответ | 0.277 | 9.9 п.п. |
| Qwen3.8 27B · нумерованный ответ | 0.226 | 7.3 п.п. |
Здесь Brier — сумма квадратов ошибок по трём классам, поэтому с бинарной таблицей выше его не сравнить. По Brier обе LLM в пакете лучше Jev, по ECE Qwen лучше, DeepSeek немного хуже. У DeepSeek в пакете вероятности даже заметно аккуратнее, чем на одиночных вопросах: там Brier 0.46 при сильной самоуверенности. Это одна задача и один прогон; калибровочные кривые для пакета мы не строили.
05 Что выяснили и чего не доказали
Где преимущество Jev видно
Скорость. Jev быстрее в каждом проверенном режиме. На документ из 17 вопросов — 0.21 с против 0.43 с у DeepSeek и 2.7 с у Qwen в рабочем формате. Это время API-маршрута, а не чистые вычисления модели.
Цена. $0.013 за 1000 решений против $0.07–0.08 у LLM в пакетном режиме — примерно в 5 раз дешевле. Одиночные вопросы у LLM даже с кэшем стоят ещё дороже.
Удобство. Несколько вопросов к тексту и полный вектор вероятностей — штатный режим, без подбора формата ответа. Мы сами на этом споткнулись: голый список кодов терял ответы, и первая версия этого отчёта ошибочно записала это в слабости Qwen. На 77 классах Jev возвращает вероятности всех вариантов; выбранные LLM с top-20 logprobs этого не дают.
Где общего превосходства нет
Качество зависит от задачи. Jev выше на ANLI. LLM выше на договорах, особенно в пакетном режиме: 0.79–0.81 против 0.73, интервалы разницы не включают ноль. На BANKING77 Jev и Qwen близки.
Вероятности Jev не лучше автоматически. В бинарном опыте AP у Jev численно выше, но интервалы включают ноль; по калибровке лучше Qwen. В 17-вопросном режиме обе LLM по Brier лучше Jev. Уверенные ответы Jev заметно завышены.
Что это значит для «новизны»
Классификация с вероятностями сама по себе не новая возможность: наш простой baseline «LLM + logprobs» работает. Но и списывать Jev на маркетинг нельзя: в этих замерах есть кратный выигрыш по скорости и цене и удобный интерфейс с полным вектором вероятностей. Ни новую архитектуру, ни универсальное превосходство, ни равенство с LLM мы не доказали. Практический выбор — по своей задаче: скорость и удобство отдельно, точность и надёжность вероятностей отдельно.
Есть и практический пробел в LLM API. Приём «один токен + logprobs» требует доступа к вероятностям токенов, а у ряда новых моделей его нет в доступном API. Например, при проверке каталога OpenRouter 1 октября 2026 года у Gemini 3.8 Flash и Claude Sonnet 5.5 параметры logprobs и top_logprobs не заявлены; у выбранных DeepSeek и Qwen они есть. Даже там, где logprobs заявлены, они бывают хрупкими: у DeepSeek через Together они пропадают, как только включаешь JSON Schema. Это ограничения конкретных API, а не способности моделей классифицировать. Поддерживаемые параметры моделей · Каталог API.
В этом смысле Jev и подобные специализированные модели закрывают реальную потребность: возвращают оценки всех заданных вариантов через интерфейс, прямо предназначенный для классификации и нескольких вопросов к тексту. Не нужно искать подходящую пару модель/провайдер, сопоставлять классы с токенами и проверять, поместились ли они в top-k. Новизна здесь может быть в доступности и удобстве уже знакомой возможности — даже без универсального выигрыша по качеству и без гарантии калиброванных вероятностей.
Если всё же берёте LLM. Все вопросы к документу — одним вызовом, вопросы и ответы — с явными номерами, число ответов — проверять. Вероятности брать из logprobs на позициях цифр. Одиночные вызовы с кэшем имеют смысл, только если нужна независимость вопросов друг от друга: на договорах они оказались и хуже, и дороже пакета.
Границы опыта. Две LLM выбраны по доступности, рабочим logprobs и отключаемому reasoning, а не как самые точные; на все LLM результат не обобщается. Публичные англоязычные поднаборы могли попадать в предобучение. Бинарные вероятности проверены только на ContractNLI: 30 договоров, 48 противоречий; разметку не меняли. Замеры качества Jev и DeepSeek — 21–22 сентября, Qwen — 24 сентября, скоростная серия — 24 сентября. Пакетный режим всех трёх моделей, кэш и цены — 6 октября; в тот день API Jev несколько минут отвечал HTTP 503, замер сделан после восстановления. Сравниваются доступные API-маршруты, не одинаковое железо.
Полные метрики и score · Таблица качества CSV · Протокол · Проверка сырых ответов · Формат ответа и кэш, 6 октября. Данные: ANLI, ContractNLI, BANKING77.