9月23日、MarkTechPostが「Nokia Open-Sources AnyJev: A Training-Free Layer That Turns Any Open LLM Into a Calibrated Decision Model」と題した記事を公開した。Nokiaの応用研究チームがオープンLLMを追加学習なしで校正済み意思決定モデルへ変換するPythonライブラリ「AnyJev」をオープンソース公開した。生のロジットでは7.7%にとどまっていた自動判定率が52.0%まで上昇するという数字が、産業応用の文脈で注目を集めている。
背景:LLMを意思決定に使う難しさ
テキスト生成に特化して訓練されたLLMを、「K個の選択肢から1つを選ぶ」という意思決定タスクに流用したいケースは多い。問い合わせの振り分け(ルーティング)、審査スコアリング、コンテンツ分類など、企業のオペレーション領域では「ラベルを生成する」より「選択肢を直接選ばせる」方が安定する。しかし、オープンLLMをそのまま使うには2つの構造的な問題がある。
選択肢の並び順を変えると答えが変わる(順序バイアス)と、確率が校正されていない(モデルが出力する確率値が実際の正解率と乖離している)だ。後者の校正問題は特に見落とされやすい。モデルが「95%の確率でbilling」と返しても、実際の正解率が60%程度であれば、その数値を閾値判定に使うことはできない。校正が不十分なままでは、自動処理してよい案件と人間のレビューが必要な案件を確率スコアで切り分けることができず、結果として大半のトラフィックを人手に回さざるを得なくなる。
AnyJevはこの2点を、追加学習なしに解決する。
「自動化率6.8倍」が示す実力
ベンチマーク結果が具体的だ。Qwen3-8BとBANKING77(20クラス分類、テスト300件)での比較:
| 指標 | 生logits | AnyJev L0 | AnyJev L1 |
|---|---|---|---|
| 必要なラベル数 | 0 | 0 | 100〜500 |
| 選択肢逆順時の回答変化率 | 0.230 | 0.073 | 0.077 |
| 精度 | 0.747 | 0.803 | 0.807 |
| 校正誤差(ECE) | 0.240 | 0.184 | 0.095 |
| 5%誤り率での自動判定率 | 7.7% | 46.3% | 52.0% |
「5%誤り率での自動判定率」とは、確率スコアが閾値を超えて人間のレビューなしに自動処理できるトラフィックの割合だ。生logitsでは7.7%しか自動化できなかったものが、L1適用後は52.0%まで上昇する。これが「自動化比率6.8倍」の根拠である。
仕組み:2段階の補正
AnyJevの補正はlevelフィールドで制御される。
L0(デフォルト、ラベル不要)は2つの処理を行う。
- 循環シフト(Cyclic shifts):K個の選択肢があれば、並び順をK通りローテーションしてそれぞれスコアを取得し、対数空間で幾何平均を取る。位置バイアスがlogit空間で加法的であれば、これで完全に除去できる。
- 事前分布補正(Prior correction):実入力の予測分布の累積平均を追跡し、強度0.75で除算する。補正は8件目以降から開始する。
L0のコストは1決定あたりK回のプレフィル。H100×1台、バッチ32、K=20の条件で約0.25秒/決定だ。
L1(100〜500ラベル必要)はL0に加えて温度スケーリングを適用する。フィットした値はJSONファイルとして保存される。L1は確率の分布形状を整えるが、回答のランキング自体は変えない。
対応する質問タイプ
ライブラリが扱える質問は3種類に型付けされている。
choice:K個の選択肢から1つを選ぶnoul:yes/noの二択score:複数の順序付きビンへの分類
インターフェース設計は、TypeSafe AIが2026年9月にリリースしたJev(System Oneモデル)を踏襲している。JevはTypeSafe AIが開発した意思決定タスク特化のファインチューニング済みモデルであり、同APIスタイルを確立した先行実装にあたる。AnyJevはそのインターフェースをオープンLLMで再現する位置付けで設計されており、Jevに慣れた開発者がそのまま移行しやすい構造になっている。
使い方
PyPIからインストールして即使える。
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 # 各選択肢の確率分布
サービング用途では、プレフィックスキャッシュを有効にしたvLLMを起動してVLLMBackendを向ければよい。HuggingFaceとvLLMの2バックエンドを共有プレフィックススコアリング付きでサポートする。
ライセンスはApache-2.0。Qwen、OLMo、Granite、Phi、Mistralでのアブレーション結果はリポジトリのresults_bench.mdにまとめられている。Nokia社内のルーティング問題への適用でも有望な結果が得られたと研究チームは述べている。
校正誤差(ECE)の比較では、Qwen3-32B+L1の組み合わせでECE=0.036を達成しており、JevのECE=0.144を上回っている。精度面では、NokiaがファインチューニングによってBANKING77向けに最適化した分類特化モデルであるLaya(Nokia Applied Researchが開発)が依然リードしているが、学習コストゼロでそこに迫れる点がAnyJevの実用的な強みだ。
詳細はNokia Open-Sources AnyJev: A Training-Free Layer That Turns Any Open LLM Into a Calibrated Decision Modelを参照していただきたい。




