「needle3」モバイル向けツール呼び出し特化の自動化モデル:必要VRAM 4GB〜

基本情報
| 項目 | 内容 |
|---|---|
| リポジトリ | Cactus-Compute/needle3 |
| 公開日 | 2026-09-16 |
| ライセンス | apache-2.0 |
| 配布形式 | safetensors |
| 出典の種類 | 公開元の一次情報(公式HFリポジトリと公式サイトの一次情報で裏付けあり) |
情報を集めた時点で、当サイトのコードが確定させた値です。日付はJSTで表示しています。
概要
Cactus Compute が、スマートフォン・ウェアラブル・スマートホーム機器・ロボット・車載機器・マイコン向けの「自動化用基盤モデル」として Needle 3 を公開しました。公開元によれば、モデル全体が1つの 8〜29 MB のファイルに収まる 2bit 量子化(CQ2)のモデルで、汎用的なチャット能力を意図的に捨てる代わりに、モバイル向けのツール呼び出しでは10倍の規模のモデルを上回り、構造化抽出では2〜3倍の規模のモデルに並ぶとしています。
Needle 3 がデバイス上で行うのは3つの仕事に絞られています。アプリが公開する関数から適切なものを選んで引数を埋めるツール呼び出し、宣言したスキーマに沿って雑多なテキストから型付きのフィールドを取り出す構造化抽出(分類にも応用できます)、そして同じモデルで文のベクトルを返すテキスト埋め込みです。2つの依頼をすれば2つの呼び出しが順に返り、どのツールにも当てはまらない依頼には推測ではなく空のリストを返す、という振る舞いをモデルカードは強調しています。
スペック
- パラメータ数: 29M〜121M(2層から20層までの「梯子(ladder)」構造。20層で 121M、16層で 98M、8層で 52M、4層で 29M)
- アーキテクチャ: Laddered Simple Attention Network(Transformer ではない)。FFN の代わりに Monarch Hadamard MLP、因果的な畳み込みタップ付きの GQA アテンション、gather で読み出す engram n-gram メモリ、multi-lane hyper-connections で構成。パラメータの大半が engram 側にあるため、121M のモデルで計算量は 50M 相当だと説明している
- 「Intelligence laddering」: 2〜20層のどの深さで切っても単体で動くサブネットワークになるよう学習されており、用途に応じて 2L から 20L までサイズを選べる
- 量子化: Cactus Quants による CQ2-bit(公開元のブログによれば1重みあたり 2.125 bit)。配布形式は独自の
.cact - 出力の制約: スキーマからコンパイルしたバイト単位の文法(grammar)で全トークンをデコード時に制約し、出力 JSON が必ずパースできることを保証します。各応答には学習済みヘッドによる較正済みの確信度(confidence)が付きます
- 学習データ: 独自の構造化データセット 360B トークン
- 速度(公開元の測定): Raspberry Pi 5 上でデコード 400〜4k tokens/s、プリフィル 1〜10k tokens/s。同じ構成の Transformer と比べ1トークンあたりの MFLOPs は半分以下
性能
モデルカードは6つのベンチマークの結果を図として載せています。Needle 3 は配布される CQ2 バイナリで確信度ゲートを有効にした状態、比較対象のオープンモデルは vLLM 上の f16、DeepSeek V4 Flash はクラウド API 経由の測定だと注記されています。図の数値をそのまま表に起こします(ツール呼び出しの3つは正解率 %、抽出の3つはフィールド単位の F1 %。空欄は図に無い組み合わせ)。
→ 横にスクロールできます
| モデル(規模) | Mobile Actions | DroidCall | BFCL v4 | DSTC8 | SNIPS gold | SNIPS 7-way |
|---|---|---|---|---|---|---|
| DeepSeek V4 Flash(cloud) | 88.4 | 60.5 | 77.2 | 80.0 | 69.4 | 66.7 |
| Needle3-20L-121M | 86.0 | 47.0 | 50.2 | 40.7 | 30.2 | 24.7 |
| Needle3-16L-98M | 80.7 | 40.0 | 41.3 | 28.5 | 23.5 | 19.2 |
| Needle3-8L-52M | 36.8 | 36.5 | 28.2 | 15.3 | 16.6 | 10.1 |
| Needle3-4L-29M | 11.7 | 21.0 | 19.5 | 6.9 | 7.7 | 4.3 |
| LFM2.5 1.2B | 82.4 | 35.5 | 62.0 | 48.0 | 43.0 | 38.0 |
| LFM2.5 350M | 72.8 | 32.5 | 59.1 | 20.0 | 34.0 | 29.0 |
| LFM2.5 230M | 69.3 | 11.5 | 46.3 | 53.0 | 27.0 | 22.0 |
| Qwen3.5 0.8B | 76.0 | 28.0 | 56.8 | 49.0 | 35.0 | 34.0 |
| FunctionGemma 270M | 65.1 | 16.5 | 46.6 | 27.0 | 29.0 | 14.0 |
| Needle 2(45M) | 63.5 | 17.0 | ||||
| Apple FM(3.0B) | 57.6 |
モデルカードの図によれば、Mobile Actions(スマートフォン向けの命令を Android のインテントに変換する 961 件、完全一致)では 20 層の Needle 3 が 86.0 で、クラウドの DeepSeek V4 Flash(88.4)に 2.4 ポイント差まで迫り、10 倍の規模の LFM2.5 1.2B(82.4)を上回っています。2つの呼び出しを順序どおり返す必要がある DroidCall(200 件)でも 47.0 で、DeepSeek V4 Flash に次ぐ2位につけ、LFM2.5 1.2B(35.5)や Qwen3.5 0.8B(28.0)より高いです。
一方で、汎用の関数呼び出しを測る BFCL v4(関数の選択と引数の組み立てが正確かを見る指標)では 50.2 にとどまり、LFM2.5 の 1.2B(62.0)・350M(59.1)、Qwen3.5 0.8B(56.8)に及びません。抽出系の DSTC8・SNIPS gold・SNIPS 7-way も同様で、LFM2.5 1.2B や Qwen3.5 0.8B より低く、DeepSeek V4 Flash との差は 30〜40 ポイントあります。「モバイル向けのツール呼び出しに特化して強い」というモデルカードの説明は表のとおりですが、抽出については「2〜3倍の規模のモデルに並ぶ」という表現ほどの優位は図からは読み取れません(LFM2.5 230M・350M と比べて勝ち負けが分野ごとに分かれます)。
また、投稿タイトルの「DeepSeek V4 Flash に並ぶ」は、素の状態ではなくファインチューニング後の話です。モデルカードによれば、DroidCall でファインチューニングすると全てのサブネットワークが 18〜36 ポイント向上し、4 層(29M)以上では下流タスクで DeepSeek V4 Flash を上回るとしています。逆に言えば、8 層・4 層の小さなサブネットワークは素の状態では Mobile Actions で 36.8・11.7 と実用的な水準になく、自分のツール定義でファインチューニングして使う前提のモデルだと理解しておく必要があります。なお、これらはいずれも公開元自身が公表した数値で、第三者による検証ではありません。
得意なこと・想定用途
タグは tool-calling・function-calling・on-device・edge・webassembly で、用途はモデルカードが明示するとおり「デバイス上での自動化」に限られます。公開元が挙げる具体例は、スマートホーム(「寝室を暗くして戸締まりして」を2つの呼び出しに変換し、ハブとの往復なしにオフラインで実行)、ロボット掃除機への「台所は掃除して寝室はやめて」のような指示、スマートフォン上で写真からアルバムを作る・画面を暗くするといった操作、スマートウォッチでの通知のカード請求を店名・金額・日付に分解する処理、AR グラスでのナビゲーションや周辺検索、車内での空調・メディア・ナビの操作、PC のメール下書きやタイマー起動など、いずれも「話し言葉を、あらかじめ定義した関数呼び出しに落とす」タスクです。
一般的なチャットや文章生成は最初から対象外であり、公開元も「汎用のチャット能力と引き換えにしている」と明言しています。ツールの説明文をモデルが文字どおりに読むため、1 アクションに 1 ツール、ユーザーが実際に口にする語で列挙値を命名する、必須引数には既定値を持たせる、必ず特定のツールに届けたい意図には正規表現の triggers を付ける、といった「ツールの書き方」がそのまま精度を左右する設計になっています。確信度は 0.1 未満の呼び出しをエンジン側で suppressed_calls に退避させ、それ以上の値でどう扱うか(即実行・確認・拒否)はアプリ側に委ねます。
Hacker News での反応
議論では、公式のブラウザデモを実際に試した報告が目立ちます。「部屋の照明を全部つけて/消して」「浴室が暗い」のような直接的な指示は通りますが、「家を暖めて」が照明を暖色に変える呼び出しになった、「寒すぎる」でサーモスタットが下がった、「猫が冷蔵庫の近くで吐いた」でロボット掃除機がリビングを掃除しに行った、といった間接的な言い回しでの誤動作が複数報告されています。誤った応答の確信度は低かったという指摘もあり、デモにしきい値を設けるべきだという意見が出ています。
自分のタスクで比較したという報告もあります。ゲームのデータベースに対するツール呼び出しで、BF16 でファインチューニングした FunctionGemma が正しいツール形状 209/230(90.9%)・引数の完全一致 196/230(85.2%)だったのに対し、W4A8 でファインチューニングした Needle 3 は 74/230(32.2%)・47/230(20.4%)にとどまったといいます。ラベリング用途では MNLI の方が良かったという報告もあり、「用途を相当正確に合わせる必要がある」「小さなモデルが LLM に勝つという主張が増えている今、できないことを明示してほしい」という声が上がっています。一方で、多くのプラットフォームで動く点や梯子構造への評価、データセットの質こそが決定的だという開発経験からの共感もありました。
動作環境
動作環境の目安(Local Model Watch 算出)
| 手持ちのVRAM | 選べる量子化 | ファイルサイズ | 必要メモリの目安 |
|---|---|---|---|
| 4GB(ノートPCの内蔵GPU・スマートフォンなど) | そのままの精度 | 0.2GB | 0.3GB |
推論エンジンの対応状況(各プロジェクトのソースにあるモデル登録表とアーキテクチャ名を当サイトが機械的に照合。2026-11-03 時点): llama.cpp: 未登録、vLLM: 未登録、MLX (mlx-lm): 未登録。「未登録」はその時点の登録表に名前が無いという意味で、動かないことの断定ではありません。
必要メモリは配布ファイルの実サイズに実行時のオーバーヘッド(KVキャッシュ等)を20%見込んだ概算で、文脈長・バッチサイズ・推論エンジンによって増減します。公開元の公称値ではなく、当サイトがファイルサイズから機械的に算出した値です。 他のモデルとの比較はVRAM別の早見表を参照してください。 量子化の名前の読み方は用語集にあります。
手元で動かせるか
公開元の配布形式は safetensors です。
ライセンス apache-2.0(商用利用可): 商用利用を含めて自由に利用・改変・再配布できます。再配布時にライセンス文と変更点の告知が必要で、特許の許諾条項があります。
配布形式とライセンス表記から当サイトのコードが組み立てた判定です。ライセンスの要約は法的助言ではないため、実際の利用にあたっては公開元の原文を確認してください。
入手方法
- 配布形式: Hugging Face の
Cactus-Compute/needle3に、20 層のneedle3.cact、ファインチューニング用のneedle3.safetensorsチェックポイント、プラットフォームごとの推論エンジン(各 1 MB 未満)が置かれている - Python パッケージ:
pip install cactus-needle。@needle.toolで関数を修飾し、needle.Needle(tools=[...]).run("...")でツール選択から実行、結果の返却までが完結します。抽出は Pydantic のモデルを渡してneedle.extract(text, Invoice)のように呼びます。エンジンと重みは初回に Hugging Face から取得してキャッシュされます - 対応エンジン: llama.cpp や Ollama ではなく専用のエンジンで動きます。対象は macOS(Apple Silicon)、Linux(x86_64 / arm64 / armv7 / riscv64 / mipsel)、Windows(x64 / ARM)、Android、iOS、tvOS / watchOS、ブラウザ(wasm)、WASI コンポーネントです。
needle build --platform <フォルダ名> --layers Nでエンジンと任意の深さの重みを並べて書き出し、./needle --model needle3.cact --tools tools.json --prompt "..."の CLI や--serveで使います。C API(libneedle.a/needle.h)も同梱されます - ファインチューニング:
needle finetune data.jsonl --epochs 10 --out adapter.safetensorsで 20 層の凍結ベースに LoRA を学習し、needle build --lora adapter.safetensors --out tuned.cact(--layers Nで深さを指定)でアダプタを統合し、任意の深さのサブネットワークを 4bit の.cactとして書き出します。配布モデルと同じ 2bit の事後学習・量子化は、公開元の Cactus Platform 側でのみ提供されます - 前掲の「動作環境」の表は、リポジトリの
safetensorsチェックポイント(ファインチューニング用の元精度)の実サイズから当サイトのコードが算出したもので、実際に配布・実行される.cactはそれより小さい
同じ用途の既報モデル
当サイトが取り上げたテキスト生成のモデルを新しい順に並べています。用途は配布元がHugging Faceに付けたタスク(pipeline_tag)から機械的に分けたもので、最小のVRAM階層は当サイトの概算です。
- 「Naive-N0.5-Flash」AI研究とコーディング向けMoEモデル:必要メモリ約690GB(80GB超)
- 「LFM2.5-350M-Diffusion-Exp」ブロック拡散型の軽量言語モデル:必要VRAM 4GB〜(425M・4GB)
- 推論モデル「ELYZA-Thinking-1.0」の32B/33Bモデル公開(32.1B・80GB)
- 「OrcaSAQ-2-27B」テキスト生成モデル:当サイトでの回答例・必要VRAM 16GB〜(27.8B・16GB)
次に読むなら
- GPUのVRAMから探す(このモデルは4GBの階層から動きます) → 8GBのGPUで動くほかのモデル
- このモデルを入手できる形式を調べる → Safetensors形式の解説と対応モデル
- 記事に出てくる BFCL の読み方を知る → ベンチマーク用語集
出典
- https://cactuscompute.com/needle
- https://huggingface.co/Cactus-Compute/needle3
- https://news.ycombinator.com/item?id=49748553
更新履歴
- 2026-09-24: 記事の組み立てを更新しました: 「手元で動かせるか」の判定(配布形式・変換版・推論エンジンの登録表・ライセンス・実測の圧縮率)を追加
- 2026-09-25: タイトルを、記事で分かる内容(必要VRAM・配布ファイル等)を示す形に変更しました。

