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 библиотека, която превръща отворен LLM в модел за вземане на решения. Тя не изисква обучение. Насочена е към често срещана производствена задача: избор на един отговор от фиксиран набор, вместо написване на изречение.

Може ли да се внедри? Да, инсталира се от 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 предварителни изчисления за всяко решение, пакетирани върху споделен префикс. Това е около 0,25 секунди на решение при пакет от 32 на един H100, с 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 превръща отворените LLM модели в типизирани модели за вземане на решения в стил Jev, без обучение.
  • L0 използва циклични отмествания и пакетно предварително разпределение, за да премахне позиционното и етикетното отклонение.
  • При Qwen3-8B BANKING77 честотата на промяна при обръщане на реда спада от 0.230 до 0.073.
  • Трафикът, който може да се обработва автоматично при 5% грешка, нараства от 7.7% до 52.0% с L1.
  • Проектът е под лиценз Apache-2.0 в PyPI, с бекендове за Hugging Face и vLLM.

Разгледайте GitHub хранилището. Всички заслуги са на изследователя на този проект. Също така можете да ни последвате в Twitter и не забравяйте да се присъедините към нашия ML SubReddit с над 150 хил. членове и да се абонирате за нашия бюлетин. Чакайте! В Telegram ли сте? Сега можете да се присъедините към нас и в Telegram.

Искате да си партнирате с нас за популяризиране на вашето GitHub хранилище, страница в Hugging Face, продуктово представяне, уебинар и т.н.? Свържете се с нас

Преведено автоматично от английски. Оригиналната статия е на връзката по-долу.

Първоначално публикувано от MarkTechPost на

Прочетете оригинала в MarkTechPost ↗

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

← Към новините

Още новини

Всички последни новини