「二択・多択の判断だけをさせるなら、ローカルの小さいモデルで足りるのか」——これを決めるために、判断特化のクラウドAPIを対照に置いて、同じ入力・同じ判定基準で測りました。主役はローカル側です。クラウドAPIは「どこまでなら要らないか」を測る物差しとして置いています。
結論を先に3つ。
- クラウド側は、呼ぶ機を変えても速さがほとんど動かない(p50で201〜266ms)。Raspberry Pi 5から呼んでもワークステーションから呼んでも同じでした。
- 機の中で動かす側は、同じ課題・同じモデル・同じビルドでも機で7〜17倍変わりました(Qwen3 0.6Bのp50で、常識道徳は約7.3倍・有害表現は約17.3倍。どちらもJetson対Raspberry Pi 5)。速さはモデルより、機と課題(入力の長さ)で決まります。
- 常識道徳のデータセットでは、「多数派の答えを返すだけの規則」がクラウドAPIを上回りました(0.80 対 0.70)。逆に意図分類では規則0.10に対しクラウド0.90で、課題によって向き不向きがはっきり出ました。
何をどう測ったか
4つのデータセットから各10件、合計40項目を抽出し(抽出の種を固定したので3機とも同一の40項目)、4つの方式に同じ設問を投げました。1機あたり160試行、3機で480試行です。
| 方式 | 中身 | どこで動くか |
|---|---|---|
| Jev(クラウド) | 判断特化のホスト型API。識別子は提供元が返した typesafe/jev-1.13-20260917 | OpenRouter経由の外部API |
| Laya 322M | 多言語版のONNX。素の重みで、追加学習はしていない | 機の中(CPU) |
| Qwen3 0.6B | llama.cppでGGUF(Q8_0)を読み、選択肢レターの確率で選ぶ | 機の中 |
| 多数派の規則 | そのデータセットで最も多い答えを常に返すだけ。下駄の高さを測る物差し | 機の中(計算なし) |
判定基準・試行数・抽出はすべて共通で、実行順はデータセット連結のまま4方式を回転させています(先頭に来る方式が偏らないように)。ウォームアップは採点に入れません。クラウド側にはウォームアップを投げません(課金が発生するため)。
この記事の数字を読む前に1つ。A6000機のQwen3 0.6BもCPUで動かしています(配布元のCPU版バイナリ)。RTX A6000の性能を測った記事ではありません。今回GPUを使ったのはJetsonのQwen3だけで、Layaは3機ともCPUです。つまり機ごとの差には、機の性能だけでなくCPUとGPUのどちらを使ったかの差も混ざっています。
- Jev(クラウド)/A6000 ワークステーション224 ms
- Jev(クラウド)/Jetson Orin NX Super230 ms
- Jev(クラウド)/Raspberry Pi 5 8GB266 ms
- llama.cpp(機の中)/A6000 ワークステーション1,613 ms
- llama.cpp(機の中)/Jetson Orin NX Super508 ms
- llama.cpp(機の中)/Raspberry Pi 5 8GB8,779 ms
1秒
クラウド側は呼ぶ機を変えてもほぼ動かない(回線とAPI側で決まる)。機の中で動かす側は同じモデル・同じビルドでも機で2桁変わる。Pi 5 の細い方の棒は、長い入力を読み切るのに10秒近くかかっている。
速さ:クラウドは機に依存せず、ローカルは機で決まる
p50応答時間(ミリ秒)の実測です。
| データセット | 機 | Jev(クラウド) | Laya 322M | Qwen3 0.6B |
|---|---|---|---|---|
| 常識道徳 | A6000機 | 201 | 49 | 533 |
| 常識道徳 | Jetson Orin NX Super | 223 | 168 | 122 |
| 常識道徳 | Raspberry Pi 5 | 237 | 271 | 885 |
| 有害表現 | A6000機 | 224 | 1,055 | 1,613 |
| 有害表現 | Jetson Orin NX Super | 230 | 2,470 | 508 |
| 有害表現 | Raspberry Pi 5 | 266 | 4,973 | 8,779 |
読みどころは2つあります。
クラウド側の列がほとんど動きません。 一番速い枠(201ms)と一番遅い枠(266ms)の差は1.3倍で、遅い側は入力の長い有害表現に寄っています(機の性能では説明がつきません)。判断だけを投げる用途なら、呼び出し側の機はほぼ関係ないと見ています。ただしこれは1回・1時間帯の測定なので、回線の状態と提供元の混み具合しだいで動きます(経験則・要検証)。「どの機からでも常に同じ速さ」とまでは言えません。
ローカル側は機で桁が変わります。 同じ課題・同じQwen3 0.6B・同じllama.cppビルド(b11115-d5f66492e)でJetsonとPi 5を比べると、常識道徳で約7.3倍(122ms 対 885ms)、有害表現で約17.3倍(508ms 対 8,779ms)でした。こちらも1回・1時間帯の測定で、各枠10件の中央値どうしの比です。倍率は幅を持って読んでください。
表の最小(122ms)と最大(8,779ms)の比は約72倍になりますが、これは常識道徳と有害表現をまたいだ比較です。入力の長さが違う課題どうしなので、機の差としては読めません。Jetsonが速いのはGPUに載っているからで、これは申告ではなく実測で確かめています(同じプロンプトを-ngl 99と-ngl 0で流すと3,935 tok/s 対 586 tok/s = 6.71倍。Pi 5では135 tok/s 対 136 tok/s = 0.99倍で、載っていないことが数字で出ます)。
先に書いたとおり、この列で比べているのはx86のCPU(A6000機・Pi 5)とJetsonのGPUです。A6000機はRTX A6000 48GBを積んでいますが、llama.cppはGPUに触っていません。Layaが3機ともCPUなのは、JetsonのonnxruntimeにCUDAの実行系が無いためです。
正しさ:多数派ベースラインを超えられるか
| データセット | Jev(クラウド) | Laya 322M | Qwen3 0.6B | 多数派(規則) |
|---|---|---|---|---|
| 常識道徳(JCM)規則が上 | 0.70 | 0.30 | 0.20 | 0.80 |
| 意図分類(MASSIVE ja) | 0.90 | 0.60 | 0.20 | 0.10 |
| 自作プローブ | 0.90〜1.00 | 0.30 | 0.30〜0.40 | 0.60 |
| 有害表現(LLM-jp v2) | 0.70 | 0.60 | 0.40 | 0.50 |
ここが一番効く発見です。常識道徳では、多数派の答えを返すだけの規則が0.80で、クラウドAPIの0.70を上回りました。 同じ40項目のうち常識道徳は10件なので1件差ですが、方向としては「このデータセットに関しては、判断APIを呼ぶ価値が出ていない」ことを示します。なお全体の正答率が高くても、少数派の重要なケースを落としている可能性は消えません。業務で効くのは何をどう間違えたかのほうです。
逆の側もはっきりしています。意図分類では答えの選択肢が8種類あり、多数派の規則は10件中1件(0.10)しか当たりません。ここではクラウドAPIが10件中9件(0.90)でした。選択肢が散らばる課題ほど、判断APIの取り分が大きいという向きが出ています。
ただし原因を「選択肢が8つあるから」と断定はできません。文章の難しさ、ラベルの偏り、モデルとの相性も混ざります(経験則・要検証)。
ローカルの小さいモデル2つは、常識道徳でLaya 0.30・Qwen3 0.20、自作プローブでどちらも0.30(Qwen3はJetsonだけ0.40)でした。いずれも多数派の規則(0.80・0.60)を下回っています。素の重みのまま「判断させる」のは、この規模では厳しいということです。
各枠10件なので、95%信頼区間は0.3〜0.6幅ほど開きます(元データに同梱。10件すべて当てた枠だけは0幅になりますが、これは再標本化の見かけです)。いま比べた0.80(規則)は0.5〜1.0、0.70(クラウドAPI)は0.4〜1.0で、区間はほぼ重なります。ここで主張できるのは向きだけで、0.70と0.80の差そのものではありません。
機を変えると答えが変わるか
16枠(4データセット × 4方式)のうち、14枠は3機ともまったく同じ正答率でした。3機で値が違ったのは2枠だけです。
- 自作プローブ × クラウドAPI:A6000機で0.90、JetsonとPi 5で1.00。同じ入力でも呼ぶたびに答えが変わりうるということです(クラウド側は時期でも中身が変わりえます)。
- 自作プローブ × Qwen3 0.6B:JetsonだけA6000機・Pi 5より1件多く当てました。同じモデル・同じビルドでもGPUとCPUで数値演算の経路が違うため、境界の項目で答えが入れ替わります。
言い換えると、正答率で見るかぎり、機を変えても数字はほぼ動きません(16枠中14枠で一致。動いた2枠も1件差)。ただし正答率が同じでも、同じ設問に正解したとは限りません。公開しているのは集計値なので、回答そのものの一致は今回確かめていません(次の測定で項目単位の一致を見る予定です)。
費用と回数
この記事のためにクラウドAPIへ投げたのは合計133リクエストです(採点120件 = 40項目 × 3機、識別子の確認13件)。採点120件の費用は提供元の申告値の合計で0.0042 USDでした。1円に届きません。
APIキーは環境変数からのみ渡し、設定ファイル・リポジトリ・この記事のどこにも書いていません。公開しているのは集計値までで、項目単位の生出力・確率・入力本文は含めません(提供元の規約が、出力を使った蒸留・模倣学習・競合モデルの開発を禁じているため。その出力はそのモデル自身の採点にだけ使っています)。
再現に必要な条件
クラウド側は時期で中身が変わるので、いつ測ったかを結論と同じ強さで示します。
| 項目 | 値 |
|---|---|
| 測定日時 | 2026-09-25 08:38〜08:49(JST)。公開データのタイムスタンプはUTC |
| 時間帯 | 1枠のみ(morning)。時間帯の効きは測っていない |
| クラウド側の識別子 | typesafe/jev-1.13-20260917(提供元が返した値)/provider TypeSafe |
| 経路 | OpenRouterのゲートウェイ経由(/api/v1/systemone) |
| ローカルの実行系 | llama.cpp タグ b11115・commit d5f66492e661b63e6c74822c2b72f5146053994e(3機とも同一)/GGUF Qwen3-0.6B-Q8_0 |
| Laya | laya-multilingual@bb188903c459(ONNX・3機ともCPU) |
| A6000機 | Windows 11(10.0.26200)/Python 3.13.3/onnxruntime 1.27.0/llama.cppは配布元のCPU版 |
| Jetson Orin NX Super 16GB | Ubuntu 22.04.5(L4T R36.4.3・kernel 5.15.148-tegra)/Python 3.10.12/onnxruntime 1.22.1(CPU実行系のみ)/llama.cppはCUDAビルド |
| Raspberry Pi 5 8GB | Debian 13 trixie(kernel 6.12.75+rpt-rpi-2712)/Python 3.13.5/onnxruntime 1.26.0/llama.cppはCPUビルド |
| 試行数 | 1機160試行(40項目 × 4方式)・3機で480試行。すべて応答あり(タイムアウト・HTTPエラー・型エラー0件) |
| 抽出 | 各データセット10件・種 20260922 で固定(3機で同一の40項目) |
| 除外件数 | 有害表現: 元3,847件から、ラベルが二値でない136件と4,000字超の596件を除外/意図分類: 元16,521件から5,331件を除外/常識道徳3,992件・自作プローブ200件は除外なし |
| 切り捨て | Layaは有害表現の10件中4件で入力を読み切れていない(最大1,375トークンを落とした)。他の方式は0件 |
使ったデータとモデルの出どころ
再配布条件のあるデータを使っているので、出どころとライセンスを明示します。
| 使ったもの | 出どころ | ライセンス |
|---|---|---|
| 常識道徳(JCommonsenseMorality) | Language-Media-Lab/commonsense-moral-ja | MIT |
| 有害表現(LLM-jp Toxicity v2) | LLM-jp(国立情報学研究所) | CC BY 4.0 |
| 意図分類(MASSIVE ja-JP) | Amazon Science MASSIVE | CC BY 4.0 |
| 自作プローブ(200件・合成) | 自作 | CC BY 4.0 |
| Qwen3 0.6B(GGUF Q8_0) | Qwen/Qwen3-0.6B-GGUF | Apache-2.0 |
| Laya 322M(多言語版・ONNX) | convaiinnovations/laya(土台は mmBERT-base) | Apache-2.0(mmBERT-baseはMIT) |
llama.cpp b11115 | ggml-org/llama.cpp | MIT |
クラウド側(Jev)は提供元のホスト型APIで、重みは公開されていません。この記事が公開しているのは集計値までです。
何が言えないか
- 各枠10件です。 正答率の95%信頼区間は0.3〜0.6幅あり、順位を断定できる精度ではありません。速さの倍率(7.3倍・17.3倍など)も10件の中央値どうしの比で、有効数字2桁の精度を主張するものではありません。示せるのは向きと、桁の違いです。
- 時間帯は1枠だけです。 クラウド側の時間帯によるばらつきは測っていません。
- JetsonのGPUはllama.cppだけが使っています。 Layaは3機ともCPUなので、Layaの列に機のGPU差は入りません。
- Layaは有害表現の10件中4件で、入力を読み切れていません。 同じ設問でもモデルが読めた範囲が違うので、この列だけは他と同じ条件の数字ではありません。
- 小型モデル全体の限界を測ったわけではありません。 測ったのは、素の重み2つを「選択肢の確率で答えさせる」設定で使った場合です。Qwen3に文章を書かせる使い方や、推論させる設定は評価していません。
- ローカルの2方式は素の重みです。 追加学習や較正をすれば数字は変わります(ただしクラウドAPIの出力を使った較正は規約で禁じられているため、この比較では一切していません)。
それで、ローカルで足りるのか
この実測から言えるのは、「判断の中身しだい」ではなく「選択肢の散らばりしだい」だということです。
- 答えが2つに偏る判断(常識道徳型)は、多数派に寄せる規則がすでに0.80を取ります。ここにAPIを呼ぶ価値は、この測定では出ませんでした。
- 答えが8つに散る判断(意図分類型)は、多数派では0.10しか当たらず、APIの0.90との差が大きい。ここはローカルの小さいモデル(0.20〜0.60)でも埋まりません。
- 速さを気にするなら、ローカルは機を選ぶ話です。Pi 5で長文(有害表現)の判断を機の中でやるとp50で約8.8秒かかり、同じ判断をクラウドに投げると約0.27秒で返ってきます。