Jev или свой классификатор (BERT, GLiNER, fine-tuning): что выбрать

Обновлено

Классификация — главный сценарий Jev, но у этой задачи давно есть проверенное решение. Это небольшая модель вроде BERT или GLiNER, дообученная на своих данных. Разбираем независимые сравнения и объясняем, когда какой вариант выгоднее.

Коротко

Jev GLiNER 2.5 без обучения Дообученный классификатор
Размеченные данные Не нужны Не нужны Нужны
Новый класс Правка запроса Правка списка меток Разметка и переобучение
Где работает Только облако TypeSafe Локально, хватает CPU Локально
Точность без обучения Чаще выше в известных сравнениях Чаще ниже, чем у Jev
Точность после обучения Не меняется: дообучения нет В эксперименте на Banking77 выше Jev
Вероятности В каждом ответе Уверенность по меткам Зависит от модели
Данные Уходят в облако Остаются у вас Остаются у вас

Jev стоит $0,042 за миллион входных токенов, подробнее — в статье о ценах. Свой классификатор оплачивается железом и временем на разметку и обучение.

Кто есть кто

BERT — модель Google AI Language 2018 года. Её предобучают на неразмеченных текстах, а под конкретную задачу добавляют один выходной слой и дообучают на размеченных примерах. Базовая версия содержит 110 млн параметров, большая — 340 млн. «Свой классификатор на BERT» обычно означает именно это: взять предобученную модель и дообучить её на своих данных.

GLiNER — открытая модель для извлечения именованных сущностей. Её продолжение GLiNER2 от компании Fastino умеет ещё классифицировать текст и извлекать структурированные данные. Метки задаются прямо при вызове, поэтому модель работает и без дообучения. GLiNER 2.5 — новая архитектура с тремя чекпойнтами: 74 млн параметров (английский, для CPU и edge), 194 млн (английский) и 287 млн (многоязычный). Код открыт под лицензией Apache 2.0, модели запускаются локально на обычном процессоре, дообучение и LoRA поддерживаются.

Jev — закрытая облачная модель. TypeSafe не дообучает её под клиентов, в том числе через LoRA: все аккаунты работают с одними и теми же весами. Модель подстраивают через запрос — содержимое state, инструкции и описания вариантов. Вместо обучения на ваших примерах TypeSafe делает ставку на метод RLCD, который должен давать откалиброванные вероятности: из ответов с вероятностью 0,8 верными должны оказываться около 80%.

«Без обучения» при этом не значит «без работы». Вместо разметки вы пишете и отлаживаете инструкции и описания вариантов, а качество всё равно измеряете на размеченной выборке — просто она нужна меньше, чем для дообучения.

Что показали сравнения

Без обучения Jev чаще впереди

Открытый репозиторий jev-benchmarks сравнил Jev с многоязычной GLiNER 2.5 в режиме zero-shot: одинаковые примеры, одинаковые описания меток, по 100 примеров на каждый набор данных.

Набор данных Классов Jev GLiNER 2.5
AG News 4 0,91 0,70
Banking77 (версия BTZSC) 72 0,87 0,61
DAIR Emotion 6 0,48 0,44

На первых двух наборах Jev уверенно впереди. На эмоциях разница в пределах погрешности, а калибровка у Jev хуже: в 16% примеров модель дала правильному ответу нулевую вероятность. По скорости GLiNER на процессоре Apple M4 Max отвечала примерно за 44 мс против 236–256 мс у Jev через сеть из Франции. На 72 классах картина обратная: 246 мс у Jev против 296 мс у GLiNER. Автор называет это пилотом на 300 примерах, а не рейтингом.

После обучения классификатор обгоняет

Второй эксперимент пересказывает статья на Хабре. Josh Kuechly сравнил Jev и GLiNER 2.5 на Banking77 — наборе из 13 083 банковских обращений с 77 интентами, из них около 10 тысяч в обучающей части. Без обучения GLiNER отставала от Jev примерно на 9 процентных пунктов, зато работала в 10 раз быстрее. После 51 минуты дообучения примерно на 10 тысячах примеров она прибавила 18 пунктов, обошла Jev примерно на 9 и работала локально в 8 раз быстрее.

Автор эксперимента не выложил ни код, ни логи, поэтому результат остаётся единичным опытом, а не независимым бенчмарком. Вывод автора статьи на Хабре сводится к выбору по ситуации: Jev выигрывает там, где нужно обойтись без обучения, а узкий классификатор — там, где задача стабильна и важны скорость и точность.

Когда выбирать Jev

  • Размеченных данных нет или мало, а решение нужно на этой неделе.
  • Классы часто меняются: новый вариант — это строка в запросе, а не новый цикл разметки.
  • Задач много, и все небольшие: одна модель и один API вместо зоопарка классификаторов.
  • Нужно несколько суждений о тексте сразу — тема, срочность, тон. Вопросы считаются параллельно в одном запросе.
  • Нужны вероятности для маршрутизации по уверенности. Калибровку всё равно проверьте на своих данных, как показывает пример с эмоциями. Подробнее — в статье об уверенности Jev.
  • Данные можно отправлять во внешнее облако.

Когда выбирать свой классификатор

  • Классы стабильны, и есть тысячи размеченных примеров. После дообучения точность может оказаться выше, чем у Jev.
  • Данные не должны покидать периметр: Jev работает только в облаке TypeSafe.
  • Бюджет задержки — десятки миллисекунд, или нужен офлайн-режим.
  • Важен контроль над версией. Алиас jev-latest переезжает на новые релизы, и для стабильных порогов TypeSafe советует закреплять конкретную версию. Свою модель вы обновляете, когда захотите.
  • Тексты не на английском. TypeSafe пишет, что английский — основной язык Jev, а на других точность пока ниже. У GLiNER есть многоязычный чекпойнт; проверьте оба варианта на своих текстах.

Учтите и полную стоимость владения. Кроме обучения, своему классификатору нужны хостинг, мониторинг дрейфа данных, переразметка и повторное обучение, когда поток меняется. У Jev эти заботы берёт на себя TypeSafe, но вместе с ними и контроль над моделью.

Комбинации

Каскад. Локальный классификатор разбирает поток и уверенные случаи, а сомнительные и новые уходят в Jev или LLM. Похожая схема с Jev перед дорогой моделью описана в статье о Jev и ChatGPT.

Jev как генератор признаков. В рецепте TypeSafe ответы Jev на 38 вопросов о тексте превращаются в 67 числовых признаков для CatBoost. На 2000 винных рецензиях модель предсказывала оценку критика с ошибкой RMSE 1,77 балла. У той же CatBoost на подсчёте слов ошибка 2,47, а если просто спросить оценку у Jev — 2,15. Это цифры компании, но важна идея: учитель здесь — ваша разметка, а не ответы Jev.

Чего не делать без юриста. Схема «разметить датасет с помощью Jev и дообучить на нём BERT» упирается в договор. Master Customer Agreement TypeSafe запрещает использовать ответы сервиса для дистилляции и обучения модели, которая имитирует его ответы.

Как сравнить на своих данных

  1. Возьмите размеченную выборку и отложите тестовую часть.
  2. Прогоните Jev и GLiNER без обучения с одинаковыми описаниями классов.
  3. Если данных хватает, дообучите классификатор и сравните снова. Учтите время на разметку и обучение.
  4. Кроме точности, считайте калибровку (Brier, log loss), долю случаев, которые можно автоматизировать при допустимой ошибке, задержку p50 и p95 и стоимость тысячи решений.
  5. Тестируйте на том же языке и в том же домене, что и в продакшене.

Типичные слабые места Jev, которые всплывают на таких тестах, собраны в разборе ограничений. Если вы сравниваете Jev не с классификатором, а с LLM в режиме JSON, смотрите отдельное сравнение.

Частые вопросы

Что точнее — Jev или дообученный BERT?

Зависит от данных. Без обучения Jev в известных сравнениях точнее GLiNER 2.5, но в эксперименте на Banking77 дообученный GLiNER 2.5 обошёл её примерно на 9 процентных пунктов. Если у вас тысячи размеченных примеров и стабильные классы, свой классификатор может оказаться точнее.

Можно ли дообучить Jev на своих данных?

Нет. TypeSafe не дообучает Jev под клиентов, в том числе через LoRA, все аккаунты работают с одними весами. Модель подстраивают через содержимое state, инструкции и описания вариантов.

Можно ли разметить датасет с помощью Jev и обучить на нём свою модель?

Осторожно. Договор TypeSafe запрещает использовать ответы сервиса для дистилляции и обучения модели, которая имитирует его ответы. Прочитайте условия, прежде чем строить такой процесс.

Источники