問い合わせを担当窓口へ回す。添付画像が領収書かを確認する。短い映像から動きの方向を選ぶ。こうした作業では、AIの長い回答より、決めた選択肢とその確率が欲しいことがあります。
vLLM Semantic Routerチームの「Decision 3.0」は、文章・画像・動画を入力し、選択、はい/いいえ、段階評価を返す判断モデルのシリーズです。今回は最小のd3-edge(約0.59B)をMacのCPUで実行しました。日本語の問い合わせ振り分けと架空領収書の金額選択は期待どおりでした。一方、動く四角の動画を「動かない」と判断した例や、設問の定義で段階評価が変わる例もありました。
この記事では、2026年10月13日に行った限定的な実測と、同じ入力を試せる教材を紹介します。上位モデルとの比較や日本語全般の精度評価は行っていません。
今回の新しさと、公開日を確認する
Decision 3.0は、与えた選択肢ごとに確率を返します。回答文を作らせてから「返品」「請求」などの文字列を抽出する工程が不要になります。文章やJSONに加え、同じリクエストへ複数の画像や動画を添付できる点が今回の焦点です。公式コレクションには6サイズがあり、各モデルカードは画像・動画入力とApache-2.0ライセンスを明記しています。
| 公開名 | モデルカードのパラメーター数 | 今回の実測 |
|---|---|---|
| d3-edge | 0.59B | あり |
| d3-lite | 0.85B | なし |
| d3-nano | 2.21B | なし |
| d3-mini | 4.54B | なし |
| d3-flash | 8.39B | なし |
| d3 | 26.09B | なし |
数値は画像を読む部分も含むものです。配布元が使う「0.6B」「4B」「27B」といったサイズ名と、実際のパラメーター数は完全には一致しません。d3-edge、d3-mini、d3のカードなどで確認できます。
公開日時も分けておきます。配布リポジトリで確認できるedgeの初回の重みコミットは2026年10月11日8時49分47秒(日本時間)。本記事の調査開始から約46時間前です。厳密な一般公開への切替時刻は確認できないため、ここではこの登録日時を基準にしています。10月12日にはランタイムの更新がありましたが、これをシリーズの初公開日とは扱いません。実測には10月12日21時3分10秒のコミットを固定しました。
判断の形を、仕事に合わせて先に決める
問い合わせ窓口なら、最初に「返品・交換」「請求」「使い方」の担当範囲を説明します。モデルは、その範囲を読み、与えられた入力を分類します。返金やメール送信まで勝手に行う仕組みではなく、業務フローへ渡すための判定部分です。
返り値は三つの型があります。choiceは候補と候補ごとの確率、noulはyes/trueの値、scoreは順序付きの段階評価です。今回の3段階評価では、0・1・2それぞれの確率を返し、段階番号に確率を掛けた合計をscoreとします。たとえばscoreが0.61でも、「61点」という意味ではありません。公開ランタイムの返り値処理で確認できます。
複数の質問を一度に渡せますが、質問ごとに推論の処理があります。今回も同じ問い合わせについて「担当」「領収書の有無」「緊急度」を尋ねました。API呼び出しをまとめられることと、質問を増やしても計算量が変わらないことは別です。実測では質問のバッチサイズを1に固定しました。
日本語の振り分けはできた。緊急度は設問を見直した
最初に、編集部が作った次の架空の問い合わせを渡しました。顧客の実データは使っていません。
届いたミキサーが割れていました。領収書はあります。今日中に交換したいです。日本語の質問と候補説明を使った結果、担当は「返品・交換」が最大で、その確率は0.9982。「領収書がある」の値は0.9871でした。同じ内容を英語で渡した場合も返品を選びました。「商品に問題はない」「領収書はない」「設定方法だけ知りたい」「急がない」という別の日本語入力では、使い方の窓口を選び、領収書がある値は0.0009になりました。
ただし、「対応の緊急度」を尋ねると話が変わります。通常対応・近日中・今日中の3段階を用意したところ、日本語の最初の問い合わせは「通常対応でよい」に0.6358、「今日中の対応が必要」に0.2447を付けました。英語入力も通常対応寄りでした。
ここで、単に日本語が不得意と決めることはできません。「顧客が今日を希望している」と「業務上、今日の処理が必要である」は違う問いです。この試験の設問には、その区別を決めるルールがありませんでした。
そこで、最初の結果を見た後に追加試験を1回行いました。同じ日本語入力に対し、質問を「顧客が文面で希望している期限を分類する。実際の緊急性は評価しない」と限定し、段階を「期限の希望なし/近日中を希望/今日中を希望」に変更しました。「今日中を希望」が最大となり、確率は0.8147、scoreは1.7874になりました。
| 同じ問い合わせへの質問 | 最大になった段階 | その確率 |
|---|---|---|
| 対応の緊急度はどの程度か | 通常対応でよい | 0.6358 |
| 文面で希望している期限は何か | 今日中を希望している | 0.8147 |
設問を変更した追加試験なので、この2件を混ぜて正答率を作ることはしません。分かったのは、仕事で使う前に「希望期限」と「対応優先度」を別々に定義する必要がある、ということです。判断モデルに期待する業務ルールまで、短いラベルから自動的に補ってもらう前提は置けません。
領収書画像は読めた。日本語OCRの試験ではない
次に、英語の架空領収書画像を編集部で作りました。内容はミキサー、合計7,800円、カード払いです。同じ画像へ英語と日本語で質問し、「文書の種類」「TOTAL欄の金額」「カード払いか」を尋ねました。

| 質問 | 英語で質問 | 日本語で質問 |
|---|---|---|
| 文書の種類 | 領収書を選択、0.9992 | 領収書を選択、0.9918 |
| TOTAL欄の金額 | 7,800円を選択、0.9458 | 7,800円を選択、0.9232 |
| カード払いか | yesの値0.9958 | yesの値0.8742 |
確率はその質問で指定した候補の中の値です。金額は「7,800円/780円/判読できない」の3候補から選ばせており、未知の金額を自由に抽出した実験ではありません。また、日本語なのは質問で、領収書の印字は英語です。日本語の店舗名、縦書き、手書き、スマートフォンで撮った傾いたレシートへの精度は未確認です。
このような条件なら、経理へ渡す前に文書の種類を選ぶ試作や、既に分かっている金額候補を照合する試作へつなげられます。ただし、画像から会計データを作る工程全体が完成するわけではありません。実資料の読み間違い、税区分、明細の欠落は別に検証します。
動画の入力は通ったが、動く方向を外した
動画には、白い背景の青い四角が左から右へ進む、4秒間の自作映像を使いました。320×240ピクセル、12fpsで、四角の色は変えていません。モデルの動画処理は公式の既定値を使い、質問だけを英語・日本語で切り替えました。
結果は両方とも、方向の最大候補が「動かない」でした。英語では0.6097、日本語では0.5552です。正しい「左から右」の値はそれぞれ0.2571と0.2659でした。一方、「色が変わるか」のyesの値は0.1736と0.1404で、0.5を境に読むと「変わらない」側です。
ここでは動画ファイルを受け取り、判定を返すところまでは動作しています。しかし、動きの方向は期待と一致しませんでした。「動画対応」と書かれていることだけを理由に、入出庫や監視映像の判定へそのまま使うことはできません。今回の1種類の人工映像から、自然映像全般や上位モデルの性能も判断できません。
公式の動画入力仕様は毎秒2フレーム、全体から最大32フレームを使います。元映像の全フレームを連続して理解する方式ではないため、短い出来事や観測間隔も、用途に応じて確認する必要があります。
confidenceは正答率ではない
動画の方向判定では、choiceに付くconfidenceが英語で0.1630、日本語で0.1017でした。公開コードでは、候補の確率がどの程度一つに集中しているかを、正規化したエントロピーから計算しています。「60.97%で動かない」が最大候補でも、残りの候補へかなり分散していればconfidenceは低くなります。
高いconfidenceも正しさの保証にはなりません。候補をどう書くか、正解が候補に含まれるか、実データが試験と似ているかで結果は変わります。今回の数値だけを見て「0.8以上なら自動承認」といった運用基準を作るのは早計です。
まずは、人が結果を確認できる振り分け候補の提示に使うのが試しやすいでしょう。正解が明確な例、複数の担当にまたがる例、情報が足りない例を用意し、人へ戻す条件を検証します。confidenceを記録する場合も、実際に合っていたかの記録を別に残します。
同じ入力で試すための条件と手順
実測日は2026年10月13日。Apple M2 Ultra・メモリ192GiBのMac、macOS 27.0、arm64のPython 3.13.11を使用しました。処理はCPUの8スレッド、PyTorch 2.14.1、Transformers 5.17.0、torchvision 0.29.1です。モデルはBF16、判定を取り出す部分はFP32という配布元の設定を維持しました。搭載メモリの容量は、必要量や推奨量を示すものではありません。
本試験は8リクエスト・22判断と、設問を変えた追加1リクエスト・1判断です。時間の生記録は教材に残していますが、背景負荷やwarmupを統制した速度比較は行っていません。公式カードにあるAMD Instinct MI325X上の処理時間と、このMacの記録を比べて速い・遅いとは評価しません。
d3-edgeは公開モデルで、ローカル実行にAPIの従量料金は発生しません。モデル本体は約1.19GBで、別にtokenizer、ライブラリ、作業用メモリやディスクが必要です。ライセンスはApache-2.0。今回、申込や有料APIキーは使っていません。Windows・Linux・MPSでの同条件試験は未実施です。
展開したフォルダで、Python 3.13の仮想環境を作ります。以下はmacOS/Linuxのシェル向けの例です。
python3.13 -m venv .venvsource .venv/bin/activatepython -m pip install -r requirements.txtpython download_model.py --out d3-edge-snapshot取得したd3-edge-snapshotには公開元のPythonコードが含まれます。d3_runtime.pyなどの内容を確認してから、同梱の試験を実行します。教材の元の結果を残すため、新しい出力名を使います。
python run_trial.py --snapshot d3-edge-snapshot --device cpu --out my-results.jsonpython run_trial.py --snapshot d3-edge-snapshot --device cpu --cases followup-cases.json --out my-followup-results.json教材には架空の画像・動画、質問、期待値、実際の応答、モデルの固定コミットとハッシュを同梱しました。実行時はローカルの入力を読み、外部推論APIを使いません。GPU向け高速カーネルがないという警告は出ましたが、今回のCPU試験では全件から応答を得ました。
Mac向けには、lite・nano・miniをCore MLへ変換した別の配布と公式デモもあります。今回はその配布やAppleのGPUでの性能を試したものではありません。まず同じ入力と設問を固定して再現し、必要な用途で結果を確認してから、別サイズや実行環境を選ぶ順序が分かりやすいでしょう。