Cactus Needle 3リリース:デバイス内でのツール呼び出しと構造化抽出に最適化された8–29MBの基礎モデル
Needle 3は、サイズの一部でDeepSeekレベルの性能を達成
Cactus Computeは、Raspberry Pi 5からマイコンまで、完全にオフラインで動作する8–29MBのバイナリ基礎モデルであるNeedle 3を発表しました。このモデルは、モバイル向けツール呼び出しおよび抽出ベンチマークにおいてDeepSeek V4 Flashと同等またはそれを上回る性能を発揮します。その小さなサイズにより、スマートホームハブ、ウェアラブルデバイス、ロボット、さらには組み込みコントローラーでも実用可能です。
オンボードで提供されるコア機能
- ツール呼び出し – Needle 3はユーザーの発話文を解析し、開発者が提供したツールボックスから適切な関数を選択し、すべての引数を埋めます。JSON形式の呼び出しリストを返します。該当するツールがなければ、空のリストを返すだけで、誤った生成(ハリューシネーション)は行いません。
- 構造化抽出 – Pydanticスキーマを提供することで、開発者は不整なテキスト(例:請求書、予約情報)から型付きのJSONオブジェクトを取得できます。デコード文法により構文的な妥当性が保証されます。
- テキスト埋め込み – 同じモデルで文のベクトルを出力でき、デバイス内での意味的検索、重複検出、ルーティングに利用可能です。
これらの基本機能により、以下のようなエンドツーエンドの製品が実現可能です:
- 音声制御によるスマートホームコマンド(
"寝室の明かりを暗くして施錠して")。 - ロボットの指示シーケンシング(
"台所を掃除するが寝室は残して")。 - スマートフォン、ウェアラブルデバイス、ARグラス、自動車のキャビン向けのデバイス内アシスタント。
インテリジェンスの段階的構築:1つのバイナリ、複数のサブネットワーク
Needle 3はSimple Attention NetworksとCQ2ビット量子化に基づいて構築されています。29層のバックボーン(29 L)には1億2100万パラメータが含まれますが、2 Lから20 Lまでのすべてのプレフィックスが機能するサブネットワークを形成します。開発者は、レイテンシーやメモリ制約を満たす最小のサブネットワークを選択し、その後、下流タスクでファインチューニングできます。
- 4層(4 L)のファインチューニング済みモデルは、タスク固有のデータで1エポックの学習でDeepSeek V4 Flashと同等の性能を達成します。
- サブネットワークのサイズは**9MB(2 L)から29MB(20 L)**まで、非常に小さなハードウェアの幅広い範囲をカバーします。
- 学習には3600億トークンの独自構造化データを使用し、Raspberry Pi 5では1秒あたり400~4000トークンのデコード速度を実現しました。
12のプラットフォームにわたるデプロイ、1MB未満のエンジンで実現
Cactusは、macOS、Linux(x86_64、arm64、armv7、riscv64、mipsel)、Windows、Android、iOS、tvOS、watchOS、WebAssembly、WASIコンポーネントなど、12のプラットフォームに対応する事前ビルド済みの推論エンジン(<1MB)を提供しています。needle build --platformコマンドで適切なエンジンを取得し、それにneedle3.cact重みファイルを配置します。
| プラットフォーム | エンジンアーティファクト |
|---|---|
| macOS (arm64) | needle CLI, libneedle.a, needle.h |
| Linux (各種) | macOSと同様のものに加え、各ABI用のバイナリ |
| Windows (x86_64/arm64) | needle.exe, libneedle.a, needle.h |
| Android / iOS / watchOS / tvOS | スタティックライブラリ + ヘッダー |
| ブラウザ(Wasm) | needle.js, needle.wasm, needle.h |
| WASIコンポーネント | needle.component.wasm, needle.wit |
開発者ワークフロー:ツール定義から実行まで
- ツールの定義 – Python関数にデコレータを適用。シグネチャが引数の型を提供し、docstringが自然言語での説明を提供し、
run()で呼び出しを実行します。 - オプションのトリガー – 正規表現パターンを指定することで、一致した場合に信頼度ゲートをバイパスして呼び出しを強制できます。
- 抽出 –
extract()にPydanticモデルを渡すことで、型付きオブジェクトを取得できます。 - 信頼度ゲート – すべての応答には校正された信頼度スコア(下限0.1)が含まれます。下限未満のスコアは呼び出しを省略し、高いスコアは自動実行、確認の要請、拒否の判断に利用できます。
- ファインチューニング – 提供されたPythonパッケージで、固定されたベースモデルに対してLoRAを実行し、任意のサブネットワーク向けに4ビットの
.cactファイルをエクスポートできます。
コミュニティからの現実世界の観察
"すべての照明をオン/オフ"や"お風呂が暗すぎる"は動作しましたが、より直接的な表現でない場合に失敗しました。温度調節コマンドは、温度の方向を逆に設定することがありました。(gs17)
モデルは約10ツールまで処理可能ですが、それ以上になると混乱が増します。(sourcecodeplz)
スマートホームデモでは、"家を温める"という指示が、温度ではなく照明の明るさを調整してしまいました。これは、照明関連の意図にバイアスがあることを示しています。(Retro_Dev)
ユーザーからは、たまに誤ったルーティングが報告されており、例として"音量を上げて"と発話すると車の音量が下がりました。また、"ちょっと用を足したい"という発話に対して、音楽を再生するなど関係のない行動を取ることがありました。(IanCal)
ある参加者が、該当するツールがない場合にモデルが空のリストを返す点に注目し、誤った呼び出しよりも好ましいと評価しました。(eriwang915)
複数のコメントで、デバイス内でのプライバシー保護と、ESP32ベースのデバイスのような制限されたハードウェアでもモデルを実行できる点が称賛されました。ただし、最新のESP32-P4でのパフォーマンスは未検証です。(digdugdirk, viccis)
制限事項と未解決の課題
- 汎用的推論:モデルはツール選択と引数の埋め込みにおいて優れた性能を発揮しますが、時折意味のない推論(例:"猫が吐いた"を掃除機の動作にマッピング)を示します。これは、巨大な世界知識を犠牲にして小さなサイズを実現するというトレードオフの結果です。
- データセット依存性:コミュニティメンバーは、スマートホームコマンドの多様な表現に対応するためには、基盤となる構造化データセットの質が極めて重要であると強調しています。
- ハードウェア制約:Raspberry Pi 5では推論が動作しますが、Apple GPUを活用していません。これにより、macOSデバイスでのパフォーマンスが制限されています。
- より大きなオープンモデルとの比較:ベンチマークではNeedle 3はQwen 3.8を上回り、Gemma 4-E4Bに近づいていますが、MNLIのような汎用分類タスクではまだ遅れをとっています。
なぜNeedle 3はデバイス内AIにとって重要なのか
Needle 3は、30MB未満のモデルで構造化されたJSON出力と信頼性の高いツール呼び出しが実現可能であることを示しており、ギガバイト規模のLLMをホストできないデバイスでもプライバシーを守ったアシスタントの実現を可能にします。Cactusが提供するサブネットワークの段階的構築により、開発者はレイテンシー、メモリ、精度のバランスを調整でき、スマートホームハブ、ウェアラブルデバイス、自動車インフォテインメント、産業用エッジコントローラーなど、さまざまな分野でのデバイス内AIの実現を可能にします。
Sources
関連
- Dispatch
- Dispatch
- Dispatch
- プロジェクト
- Dispatch