Gemma 4 E2B Hybrid: 信頼度に基づくクラウド・ハンドオフを備えたオンデバイスLLM

Gemma 4 E2B Hybrid: 信頼度に基づくクラウド・ハンドオフを備えたオンデバイスLLM

Cactus Computeは、自身の不確実性をシグナルとして示すようにポストトレーニングされた、最小のGemmaモデルのバージョンである Gemma 4 E2B Hybrid を発表しました。モデルのチェックポイント内に内部プローブを組み込むことで、システムはすべての回答に対して構造化データとして0から1の間の信頼度スコアを割り当てます。これにより、開発者は信頼度の低いクエリをより大規模で高性能なクラウドモデルにルーティングし、信頼度の高いクエリはローカルで処理することが可能になります。

ハイブリッド・ルーティングのパフォーマンス

Gemma 4 E2B Hybridは、クエリのわずかな割合のみを大規模モデルにルーティングすることで、いくつかのベンチマークにおいてGemini 3.1 Flash-Liteのパフォーマンスに匹ねることができます。Flash-Liteのパフォーマンスに匹敵するためにハンドオフが必要なクエリの割合は、量子化レベルによって異なります:

ベンチマーク Flash-Liteに匹敵するためのハンドオフ (FP16) 4-bitの場合 3-bitの場合
ChartQA 15–20% 25–30% 40–50%
MMBench 30–35% 40–45% 50–55%
LibriSpeech 25–30% 35‐40% 55–65%
GigaSpeech 30–35% 40–45% 50–55%
MMAU 30–35% 35‐40% 50–55%
MMLU-Pro 45–55% ~90% n/a

ルーティングの品質とモダリティへの非依存性

ルーティングの正確性はAUROC(Receiver Operating Characteristic曲線の下面)によって測定され、1.0は正解と不正解の完璧な分離を表します。Gemma 4 E2B Hybridは、平均AUROC 0.814 を達成しており、トークンエントロピー(平均 0.549)を大幅に上回っています。

特筆すべきは、信頼度プローブはオーディオデータを使用せずにトレーニングされているにもかかわらず、4つのオーディオベンチマーク(0.789から0.876の範囲)において高いAUROCスコアを維持している点です。これは、プローブがトレーニングデータからのパターン記憶に頼るのではなく、モデルの隠れ状態(hidden states)の中からモダリティに依存しない正解シグナルを特定していることを示しています。

Hold-out モダリティ Cactus Hybrid AUROC Token Entropy AUROC
MMLU text MCQ 0.770 0.697
MMLU-Pro text MCQ 0.771 0.692
ARC-Easy text MCQ 0.888 0.655
ARC-Challenge text MCQ 0.834 0.646
GSM8K (3-shot) text gen 0.782 0.731
MMBench-EN-Dev vision MCQ 0.840 0.435
ChartQA vision QA 0.779 0.615
DocVQA vision QA 0.781 0.512
MMAU audio MCQ 0.789 0.517
GigaSpeech audio 0.876 0.343
Earnings-22 audio 0.839 0.323
LibriSpeech audio 0.822 0.427

実装と統合

Cactus Hybridは、複数のデプロイメントフレームワークをサポートしています。Transformersユーザーにとって重要な実装上の詳細として、プローブが標準的な forward() パスの外側で生成スコアを読み取るため、device_map="auto" ではなく、明示的な .to(device) 呼び出しを使用してモデルをロードする必要があります。

Cactus Bindings

cactus-compute ライブラリを使用すると、開発者はモデルを初期化し、結果オブジェクトから直接信頼度スコアを取得できます:

from cactus.bindings.cactus import cactus_complete, cactus_init
from cactus.cli.download import download_bundle

lm = cactus_init(str(download_bundle("Cactus-Compute/gemma-4-E2B-it")))
result = cactus_complete(
    lm,
    [{"role": "user", "content": "What is the capital of France?"}],
    json.dumps({"max_tokens": 512, "auto_handoff": False}),
    None,
    lambda *_: None,
)
print(result["confidence"])

MLX

MLXの場合、モデルは trust_remote_code=True を指定してロードされます。信頼度スコアは model.last_confidence を介してアクセス可能です:

model, tokenizer = load(
    "Cactus-Compute/gemma-4-e2b-it-hybrid-mlx",
    tokenizer_config={"trust_remote_code": True},
)
#... generation logic...
print(model.last_confidence)

llama.cpp

llama.cpp との統合には、APIレスポンスで信頼度フィールドを有効にするために、エンジンにコンパイルされるカスタムパッチが必要です。

コミュニティの議論

リリースを巡る技術的な議論は、LLMにおける「自己認識」の性質に集中しました。一部のユーザーは、モデルは自分が間違っていることを「知って」いるのではなく、不確実性や不整合性を示しているだけであると主張し、用語に疑問を呈しました。

間違っていることを知ることはできません。不確実であること、あるいは矛盾していることだけを知ることができます。完全に確信していても間違っていることがあり、不確実であっても正しいことがあります。

他の貢献者は、コードの品質(例:「clean」対「crufty」)やその他の活性化ステアリング(activation steering)の概念など、隠れ状態から他のシグナルを抽出する可能性についても探求しました。

Sources