Cactus Needle: 26M パラメータの関数呼び出しモデル
Cactus Needle: 26M パラメータの関数呼び出しモデル
概要
Cactus Needle は、わずか 2600 万のパラメータを持つオープンソースの関数呼び出しモデルであり、シングルショットのツール呼び出しにおいて、はるかに大規模なモデルを凌駕するように設計されています。エッジデバイスへのデプロイに最適化されており、コンシューマー向けハードウェア上で、プリフィル速度 6,000 トークン/秒、生成速度 1,200 トークン/秒に達することが可能です。
アーキテクチャ: シンプル・アテンション・ネットワーク
Needle は、すべての Multi-Layer Perceptrons (MLPs) と高密度層(dense layers)を削除することで、標準的な Transformer アーキテクチャとは根本的に異なる「シンプル・アテンション・ネットワーク」を利用しています。
知識ストアの削除
通常の Transformer では、フィードフォワード・ネットワーク (FFN) 層がモデルの知識ストアとして機能し、事実や世界の知識が保持されると考えられています。Cactus Needle はこれらの層を完全に削除し、アテンションとゲーティングのみで動作します。この設計上の選択は、ツール呼び出しが、深い推論や広範な内部知識を必要とするタスクではなく、本質的に検索と組み立てのタスク(クエリをツール名に一致させ、引数を抽出すること)であるという前提に基づいています。
技術仕様
- 構造: Group Query Attention (GQA) を備えた自己アテンションを利用する 12-encoder スタック。
- 設計: デコーダーのみの GPT スタイルではなく、エンコーダー・デコーダー・アーキテクチャ。
- 学習: モデルは 16 台の TPU を使用して 27 時間で 2000 億トークンのプリトレーニングを行い、その後、15 のツールカテゴリにわたる 20 億トークンの合成関数呼び出しデータを用いてポストトレーニングを行いました。
- 最適化: チームは、エッジデバイス向けに圧縮された際にもモデルの性能が維持されるよう、量子化を意識した学習(quantization-aware training)を採用しました。
パフォーマンスとベンチマーク
Cactus Needle は、シングルショットの関数呼び出し用に設計されています。この特定の領域において、Function Gemma、IBM Granite、LFM、および Qwen 600M を含む、10倍から 20倍大きなモデルを凌駕すると報告されています。
しかし、このモデルは複雑なタスクのための大規模言語モデル (LLM) をの置き換えることを目的としていません。以下のようなタスクでは苦戦する可能性があります:
- 並列関数呼び出し。
- 複数のツールをまたぐ複雑な推論を必要とするタスク。
- 段階的な開示(progressive disclosure)を伴う「スキル」。
実用的なアプリケーションとデプロイメント
その極めて小さなフットプリントにより、Needle はモバイルデバイス、Raspberry Pi、または組み込みシステム(例:スマート家電)などの低電力ハードウェアにデプロイ可能です。
ゼロショットおよびファインチューニング能力
Needle は、ツールの JSON 定義が提供された場合、強力なゼロショット能力を示します。Claude が生成したスマートホーム制御のような、明示的に学習していない関数であっても、モデルはユーザーの意図を正確にツール名にマッピングし、引数を抽出することができます。
専門的なユースケースのために、モデルは GPU を必要とせずに CPU でファインチューニングを行うことができます。提供されている GitHub リポジトリには、このプロセスを容易にするための JAX コード(Flax と Optax を使用)が含まれています。
カスケード・アーキテクチャ戦略
Cactus は、小型で専門化されたモデルが特定のツールセットを扱う「カスケード・アーキテクチャ」を推奨しています。このシステムでは、小型モデルがルーターとして機能し、クエリがどのツールセットに属するかを決定し、そのタスクを他の専門化された小型モデルに委任するか、あるいは複雑な推論のためにクラウドベースのより大規模なモデルにフォールバックする仕組みです。