Sakhanda Wire
NVDA $230.86 +1.09% MSFT $512.80 -0.02% GOOGL $338.24 -1.70% META $725.93 +0.10% AMZN $248.23 -0.37%
← К новостям

Nokia открыла исходный код AnyJev: слой без обучения, превращающий любую открытую LLM в калиброванную модель принятия решений

Команда прикладных исследований Nokia опубликовала в открытом доступе AnyJev — библиотеку Python, которая превращает открытую большую языковую модель в модель принятия решений. Обучение не требуется. Библиотека предназначена для распространённой производственной задачи: выбора одного ответа из фиксированного набора вместо написания предложения.

Можно ли использовать её в продакшене? Да, библиотека устанавливается из PyPI, распространяется по лицензии Apache-2.0 и включает бэкенды transformers и vLLM с оценкой общих префиксов.

Что такое AnyJev?

AnyJev заимствует свой интерфейс у Jev. Jev — это модель принятия решений System One, которую TypeSafe AI представила в сентябре 2026 года (наш материал). Вы задаёте AnyJev типизированный вопрос и получаете решение с вероятностью, для которой можно установить порог. Эта вероятность считывается из распределения следующего токена модели. Ничего не генерируется, не анализируется и не обучается.

Библиотека поддерживает 3 типа вопросов:

  • Вопрос типа choice выбирает один из K вариантов.
  • Вопрос типа noul предполагает ответ «да» или «нет».
  • Вопрос типа score помещает ответ в одну из нескольких упорядоченных категорий.

Проблема непосредственного чтения логитов

Многие открытые проекты уже ограничивают следующий токен метками вариантов и считывают оценки. Исследовательская команда Nokia указывает на 2 недостатка такого подхода. Во-первых, ответ может измениться при перестановке вариантов. Во-вторых, вероятности не откалиброваны.

В документе об уровнях названы 2 причины:

  • Первая — априорное смещение: модель отдаёт предпочтение некоторым меткам, например «Да» вместо «Нет», независимо от входных данных.
  • Вторая — позиционное смещение: модель отдаёт предпочтение определённым позициям в списке вариантов.

Как работает AnyJev: L0 и L1

Каждое решение содержит поле level.

L0 (нулевая маркировка, включена по умолчанию) применяет 2 исправления:

  • Циклические сдвиги. Для вопроса с K вариантами список показывается в K циклических перестановках, поэтому каждый вариант один раз оказывается на каждой позиции. Результаты объединяются в логарифмическом пространстве как геометрическое среднее. Если позиционное смещение аддитивно в пространстве логитов, это полностью его устраняет.
  • Коррекция априорных вероятностей. По умолчанию AnyJev использует пакетную калибровку. Она поддерживает скользящее среднее предсказанных распределений на реальных входных данных и делит на него с коэффициентом 0,75. Коррекция начинается после 8 элементов.

L0 требует K предварительных вычислений для каждого решения, выполняемых пакетно на основе общего префикса. При размере пакета 32 на одной H100 это составляет около 0,25 с на решение при K = 20.

L1 (от 100 до 500 меток на вопрос) добавляет температурное масштабирование поверх L0. Подобранные значения сохраняются в небольшом артефакте JSON. L1 изменяет форму уверенности, но не меняет ранжирование ответов.

Результаты бенчмарка

На Qwen3-8B с BANKING77 (20 вариантов, 300 тестовых элементов) показатели выглядят следующим образом:

МетрикаНеобработанные логитыAnyJev L0AnyJev L1
Требуемые метки00от 100 до 500
Доля изменений при обратном порядке вариантов0.2300.0730.077
Точность0.7470.8030.807
Ошибка калибровки (ECE)0.2400.1840.095
Доля автоматически принимаемых решений при ошибке 5%7.7%46.3%52.0%

Ещё несколько результатов из репозитория:

  • L0 уменьшил количество изменений порядка во всех 9 протестированных комбинациях моделей и задач.
  • На наборе типизированных решений Qwen3-32B с L1 достигла ECE 0.036 против опубликованного для Jev показателя 0.144. По точности дообученная Laya по-прежнему лидирует.
  • В полной таблице абляционного исследования представлены модели Qwen, OLMo, Granite, Phi и Mistral.
  • По словам Wu, команда опробовала AnyJev на внутренней задаче маршрутизации Nokia и получила многообещающие результаты.

Как использовать AnyJev

Копировать кодСкопированоИспользовать другой браузер
# pip install "anyjev[hf]"
from anyjev import Decider, Question
from anyjev.backends.hf import HFBackend

d = Decider(HFBackend("Qwen/Qwen3-8B"))
route = Question.choice("Which team should handle this?",
                        ["billing", "technical", "sales", "other"], name="route")
r = d.decide({"conversation": [...]}, [route])
r["route"].distribution   # probabilities per option

Для сервинга запустите vLLM с кэшированием префиксов и укажите на него VLLMBackend.

Ключевые выводы

  • AnyJev превращает открытые большие языковые модели в типизированные модели принятия решений в стиле Jev без обучения.
  • L0 использует циклические сдвиги и пакетную априорную коррекцию для устранения позиционного смещения и смещения меток.
  • На Qwen3-8B BANKING77 доля изменений при обратном порядке вариантов снижается с 0.230 до 0.073.
  • Доля автоматически принимаемых решений при ошибке 5% с L1 возрастает с 7.7% до 52.0%.
  • Библиотека распространяется по лицензии Apache-2.0 на PyPI и поддерживает бэкенды Hugging Face и vLLM.

Посмотрите репозиторий на GitHub. Вся благодарность исследователю этого проекта. Также подписывайтесь на нас в Twitter и не забудьте присоединиться к нашему сабреддиту о машинном обучении с более чем 150 тыс. участников и подписаться на нашу рассылку. Постойте! Вы есть в Telegram? теперь к нам можно присоединиться и в Telegram.

Хотите сотрудничать с нами для продвижения своего репозитория на GitHub, страницы на Hugging Face, релиза продукта, вебинара и т. д.? Свяжитесь с нами

Переведено автоматически с английского. Оригинал статьи — по ссылке ниже.

Впервые опубликовано изданием MarkTechPost

Читать оригинал на MarkTechPost ↗

Текст и изображения принадлежат MarkTechPost и приводятся здесь с указанием авторства и ссылкой на оригинальную публикацию.

← К новостям

Ещё новости

Все последние новости