Cactus Needle 3 8‑29 MB 基盤モデルが小型デバイスで DeepSeek V4 Flash に匹敵

Needle 3 は 30 MB 未満のバイナリで LLM レベルのツール呼び出しを実現

Needle 3 は、マイクロコントローラー、スマートフォン、ウェアラブルデバイスなどの小型デバイス上で動作する 8‑29 MB の単一バイナリであり、10 倍のサイズのモデルに匹敵するツール呼び出し性能を提供します。重要な点は、Cactus の「インテリジェンス・ラダー(知能の階段)」により、開発者が 2 層から 20 層までのサブネットワークを選択し、4 層バージョンを微調整することで、わずか 1 エポックの学習で下流タスクにおいて DeepSeek V4 Flash レベルの精度を達成できることです。


アーキテクチャ: ラダー型 Simple Attention Networks (SAN)

すべての層が独立したサブネットワークです。

  • このモデルは、CQ2‑bit (2 ビット) 精度に量子化された 29‑121 M のパラメータで構成されています。
  • 各深さ (2L‑20L) が単調増加する容量のサブモデルを形成しており、開発者はレイテンシとメモリの制約を満たす最小のモデルを選択できます。
  • 基盤となる SAN は、従来の MLP を多用する Transformer ブロックを置き換えることで、ツールスキーマを推論する能力を犠牲にすることなくパラメータ数を削減しています。
  • 学習には、ツール定義の理解と構造化抽出に焦点を当てた、独自の構造化データセットから 360 B トークンが使用されました。

主要機能

ツール呼び出し

"アプリが公開している関数に基づき、Needle は適切な関数を選択し、ユーザーの発言からすべての引数を埋めます。2 つのことを要求すれば順番に 2 つの呼び出しが返され、どのツールもカバーしていないことを要求すれば、推測ではなく空のリストが返されます。"

  • Needle は、ユーザーの発言から引数が埋められた JSON 形式の関数呼び出しリストを返します。
  • 該当するツールがない場合、モデルは呼び出しを捏造するのではなく、空のリストを返します。
  • 信頼度スコアは調整されており、0.1 未満の呼び出しは抑制されます。

構造化抽出

"形状を宣言し、乱雑なテキストを渡すと、請求書、予約、通知、フォームなどの型付きフィールドが返されます。"

  • ユーザーが Pydantic スキーマを提供すると、Needle はフィールドを型付きオブジェクトに抽出します。
  • デコード文法により構文的に有効な JSON が保証されるため、後続の処理が確実になります。

テキスト埋め込み

  • 同じモデルを使用して、ローカルでのセマンティック検索、重複検出、または最も適切なツールへのルーティングのための文レベルのベクトルを出力できます。

小型ハードウェアでのパフォーマンス

デバイス トークン/秒 (デコード) トークン/秒 (プリフィル)
Raspberry Pi 5 400 – 4 000 1 000 – 10 000

推論エンジンは 1 MB 未満で、起動時に needle3.cact 重みを読み込みます。ビルド済みのバイナリは、macOS、Linux (x86_64, arm64, armv7, riscv64, mipsel)、Windows、Android、iOS、tvOS、watchOS、WebAssembly、WASI 向けに提供されています。


Cactus が実証する現実世界のユースケース

  • スマートホーム – *「寝室を暗くして鍵をかけて」*といった音声コマンドにより、クラウドとの通信なしで 2 つのオフラインツール呼び出しが生成されます。
  • ロボティクス – *「キッチンを掃除して、でも寝室はそのままにして」*といったコマンドが、順序付けられた動作プリミティブに変換されます。
  • スマートフォン – ローカルアシスタントが、サーバーにデータを送信することなく、写真アルバムの作成、URL のオープン、リース書類の検索などを行います。
  • ウェアラブル – 手首装着型デバイスが通知を解析し、構造化フィールド(加盟店、金額、日付)に変換します。
  • AR グラス – オフラインナビゲーションや周辺検索クエリが完全にデバイス上で実行されます。
  • 自動車 – 空調、メディア、ナビゲーション、通話処理がローカルで実行され、長距離ドライブでもプライバシーが保護されます。
  • デスクトップ – 平易な英語のコマンドで、メールの下書き、タイマーの開始、タブのオープンなどの OS 操作を実行します。
  • ローカルセマンティック検索 – 埋め込みにより、デバイス上でのドキュメント検索や重複アラートの統合が可能になります。

開発ワークフロー

  1. cactus-needle Python パッケージをインストールします。推論エンジンは Hugging Face から取得され、キャッシュされます。
  2. Python 関数をデコレータで装飾してツールを定義します。関数シグネチャが引数の型を提供し、docstring が説明を提供し、run() が呼び出しを実行します。
  3. 特定のツールに常にルーティングする必要があるインテントに対してトリガー(正規表現パターン)を追加し、信頼度しきい値以下でも決定論的な動作を保証します。
  4. Pydantic モデルを extract() に渡して構造化データを抽出し、型付きオブジェクトを受け取ります。
  5. フリーズされたベースモデルに対して LoRA を介して微調整を行い、任意のサブネットワーク深さに対して 4 ビットの .cact ファイルをエクスポートします。

「限られたテストですが、最大 10 個のツール/定義までなら動作します。それ以上になると混乱するようです」 – ツールセットのサイズ制限に関するユーザーの観察。


コミュニティからのフィードバックのハイライト

  • 成功事例: ユーザーは、信頼性の高いマルチツール呼び出し(例:照明の消灯とドアの施錠)や正確な信頼度ゲーティングを報告しています。
  • 制限事項: 「もっと明るく」といった発言や曖昧な温度設定の要求では、誤ったアクションや誤ったルーティングが発生することがあり、多くの場合、高い信頼度スコアが伴っていました。
  • ツールセットのスケーリング: 約 10 個を超えるツール定義を読み込むと、モデルの性能が低下する傾向があります。
  • ドメイン知識: あるコメント投稿者が指摘したように、モデルには大規模 LLM が保持している世界知識(例:アーティスト名)が欠けており、ニッチなドメインに影響を与える可能性があります。
  • バイアス: 摂氏/華氏の混同や、予期しないサーモスタットの調整の事例が観察されました。
  • 競合他社との比較: ベンチマークによると、特定のタスクで微調整された Needle 3 は FunctionGemma や Needle 2 を上回りますが、一般的な分類タスクでは依然として大規模なエンコーダー専用モデルに遅れをとっています。

Needle 3 が重要な理由

Needle 3 は、デバイス上での構造化 JSON 生成とツール呼び出しが 30 MB 未満のサイズで実現可能であることを証明し、ウェアラブル、マイクロコントローラー、エッジ機器にプライバシーを保護する AI をもたらします。ラダー型アーキテクチャを公開することで、Cactus は開発者がレイテンシ、メモリ、精度のバランスを取れるようにし、オープンソースの推論エンジンが幅広いハードウェアでの展開を簡素化します。


はじめに

pip install cactus-needle
needle build --platform linux-arm64   # 1 MB のエンジンと重みをダウンロード

次にツールを定義します:

from cactus_needle import tool

@tool
def set_lights(room: str, brightness: int):
    """*room* の照明を *brightness* (0‑100) に設定します。"""
    # ここにハードウェア統合を記述
    return {"status": "ok"}

ユーザーのプロンプトをモデルに送信し、選択された関数呼び出しと信頼度スコアを含む JSON レスポンスを受け取ります。


今後の展望

Cactus は、データセット管理、フルデプスでの微調整、評価パイプラインを備えた Cactus Platform を拡張し、より多くのドメイン(例:スマートフォンでの OpenStreetMap 編集)がデバイス上の LLM 推論から恩恵を受けられるようにする予定です。コミュニティが ESP32、自動車用 ECU、WebAssembly ターゲットで実験を行うにつれ、Needle 3 は低電力でプライバシーを重視した AI アシスタントの事実上の標準になる可能性があります。

Sources

関連