Needle 2とは?14MBバイナリで動くCactus Compute製オンデバイス・エージェントLLMを解説
Needle 2は45Mパラメータ・単一14MBバイナリで動くCactus Compute製のオンデバイス・エージェント向け小型LLM。tool calling/device use/structured extractionに特化し、Raspberry Pi 5から廉価スマホまで動作。仕組みと導入方法を解説(2026年8月更新)。
TL;DR — Needle 2とは
Needle 2は、Cactus Computeが開発したオンデバイス・エージェント向けの超小型LLMです。パラメータ数は45M(4500万)で、Cactus Quantsによる2bit量子化(CQ2)を経て、モデルの重みが推論エンジンに焼き込まれた単一14MBバイナリとして配布されています。別途モデルファイルをダウンロードする必要がなく、1セッションあたりのピークRAM使用量は約28MBに抑えられています。汎用チャットボットではなく、tool calling(関数呼び出し)・device use(デバイス操作)・structured extraction(構造化抽出)という3つの用途に特化して設計された「エージェント専用の極小モデル」という位置づけです。ライセンスはApache 2.0で、GitHub(cactus-compute/needle)とHugging Face(Cactus-Compute/needle2)で公開されており、Hacker NewsのShow HNで公開され話題になりました。
スペック早見表
| 項目 | 値 |
|---|---|
| パラメータ数 | 45M |
| バイナリサイズ | 14MB(重み内蔵の単一バイナリ) |
| ピークRAM使用量 | 約28MB(1セッションあたり) |
| 量子化 | Cactus Quants CQ2(2bit) |
| コンテキストウィンドウ | 256トークン(スライディングウィンドウ) |
| 事前学習データ量 | 115Bトークン(独自コーパス) |
| 事後学習データ量 | 38Bトークン |
| アーキテクチャ | Simple Attention Network系(Hadamard MLP/Group Query Attention/engram key-valueメモリ/multi-lane hyper-connections) |
| ライセンス | Apache 2.0 |
| 対応プラットフォーム | 依存なしの単一C++バイナリ。Cortex-Mマイコン向け静的ライブラリにも対応(Flutter/React Native/Kotlin/Swiftの個別SDKは公式ページに明記なし) |
| 論文 | arXiv:2607.18363 |
コンテキストウィンドウが256トークンと非常に短いのは、汎用対話ではなく1ターンごとの短いツール呼び出し判断に用途を絞っているためです。この設計により、モデルサイズとRAM消費を極限まで小さくしています。
何ができるか
Needle 2の機能は大きく3つです。1つ目はtool calling(関数呼び出し)で、あらかじめ登録した関数群の中から、ユーザーの発話に応じて適切な関数と引数を選び出します。大規模なツールカタログを持つ場合でも、1ターンあたり上位5件のツールを検索・選択する仕組みが組み込まれています。2つ目はdevice use(デバイス操作)で、スマートフォンやIoT機器上での操作コマンド生成に利用できます。3つ目はstructured extraction(構造化抽出)で、Pydanticモデルを使って出力の型を厳密に指定し、バイト単位の文法制約(byte-level grammar constraints)によって決められたスキーマに沿った出力を保証します。
また、応答には信頼度スコアが付与される「confidence-gated」設計になっており、信頼度が低いと判断された場合はクラウド上の大規模モデルへエスカレーションする運用も可能です。これにより、オンデバイスで完結できる簡単なタスクは即座に処理しつつ、判断が難しいケースだけをクラウドに投げるハイブリッド構成を組めます。ツール呼び出しの基本的な考え方は../columns/local-llm-inference-engine-comparison-2026で紹介しているローカル推論エンジンの比較とも共通する部分が多く、あわせて読むとエージェント運用の全体像がつかみやすくなります。
デバイス別の実測速度
| デバイス | デコード速度 | プリフィル速度 |
|---|---|---|
| Raspberry Pi 5 | 500+ tok/s | 800+ tok/s |
| VR機器(Meta Quest 3S / Apple Vision Pro) | 400〜1,500 tok/s | — |
| $200未満の廉価スマホ(Samsung Aシリーズ等) | 300〜700 tok/s | — |
いずれも一般的な7B〜70B級のLLMでは到底実現できない速度域です。45Mパラメータ・2bit量子化という極小構成だからこそ、CPU単体・非力なSoCでもリアルタイムのツール呼び出しが成立します。
インストールと最短の使い方
PythonからはpipでインストールしてすぐにNeedle 2を試せます。
pip install cactus-needleツール呼び出しの実装は、Pythonデコレータで関数を登録するだけのシンプルな構成です。
import needle
@needle.tool
def get_weather(city: str):
"Get current weather for a city"
return {"city": city, "temp_c": 27}
agent = needle.Needle(tools=[get_weather])
agent.run("what's it like in Lagos?")構造化抽出を行う場合は、抽出したいデータをPydanticモデルとして定義し、Needle 2にその型を渡すことで、決められたスキーマに沿ったJSON相当の出力を型安全に得られます。また、独自のツールスキーマに合わせてMac/PC上でファインチューニングする運用にも対応しています。
動作要件 — どこまで小さい機器で動くか
Needle 2は依存なしの単一C++バイナリとして提供されており、Raspberry Pi 5のようなシングルボードコンピュータはもちろん、$200未満の廉価スマホ(Samsung Aシリーズ等)でも実用的な速度で動作します。さらにCortex-Mマイコン向けの静的ライブラリにも対応しており、組み込み機器・IoTデバイス上でのオンデバイスAIという用途まで視野に入っています。ピークRAMが約28MBという小ささのため、メモリに制約のあるエッジデバイスでも他のプロセスを圧迫せずに常駐させられる点が特徴です。なお、Flutter/React Native/Kotlin/Swiftといった個別SDKについては公式ページに明記がなく、現時点ではC++バイナリベースでの組み込みが基本的な導入方法となります。組み込み・IoT向けの小型モデル選定は../columns/qwen3-8-27b-requirements-vram-local-2026や../columns/nemotron-3-requirements-vram-local-2026で扱っているような、より大きめのローカルLLMの必要スペックとあわせて比較検討すると、用途ごとの最適なサイズ感が見えてきます。
既存の小型モデルとの違い
| モデル | パラメータ数 | 特徴 |
|---|---|---|
| Needle 2(Cactus Compute) | 45M | 単一14MBバイナリ・CQ2量子化・tool calling/device use/structured extraction特化 |
| FunctionGemma 270M | 270M | 関数呼び出しに特化した小型モデル(Gemma系) |
| LFM2.5 230M | 230M | Liquid AI製の小型言語モデル |
| Apple FM | 非公開 | AppleのオンデバイスFoundation Model |
| Gemma系ローカルLLM | 数B〜 | 汎用対話も可能な中型ローカルLLM |
確認されている情報によれば、Needle 2はFunctionGemma 270M・LFM2.5 230M・Apple FMと互角の勝ち負けを示しつつ、モデルサイズは相手のf16表現に対して2bit量子化のNeedle 2で5〜70倍小さいとされています。つまり同等水準の性能を、大幅に小さいフットプリントで実現している点が最大の差別化ポイントです。Liquid AIのLFM2.5については../columns/liquid-ai-lfm25-japanese-models-2026-06でも取り上げているため、日本語対応を含めた小型モデル同士の比較材料として参照できます。
向いている用途・向かない用途
向いている用途は、あらかじめ定義された関数群からの選択・実行判断、スマホやIoT機器の操作コマンド生成、決まったスキーマへのデータ抽出など、「範囲が絞られた判断」を高速・低メモリで繰り返すタスクです。エージェントのオーケストレーション層として、簡単な判断はNeedle 2で完結させ、難しい判断だけをクラウドのLLMにエスカレーションする構成にも向いています。
一方で、45Mパラメータ・256トークンのコンテキストウィンドウという制約から、長文の要約や汎用的な雑談、複雑な推論を要するタスクには向きません。あくまでツール呼び出しと構造化抽出に特化した「小さな判断エンジン」であり、汎用チャットボットの代替として使うものではない点は明確に押さえておく必要があります。
FAQ
Needle 2はスマホアプリに組み込めますか?
依存なしの単一C++バイナリとして提供されているため組み込み自体は可能ですが、Flutter/React Native/Kotlin/Swiftといった個別SDKは公式ページに明記されていません。C++バイナリを直接呼び出す形での統合が基本になります。
Needle 2は日本語に対応していますか?
事前学習・事後学習に使われたコーパスの言語構成は公開情報として確認できていません。日本語での挙動については公式情報のみでは判断できないため、実際に試して確認することをおすすめします。
商用利用は可能ですか?
Apache 2.0ライセンスで公開されているため、ライセンス条件に従えば商用利用も可能です。
クラウドLLMと比べてどんな場面で使うべきですか?
あらかじめ範囲を絞ったツール呼び出しや構造化抽出をオフラインかつ低メモリで繰り返す場面に向いています。信頼度スコアが低い場合はクラウドへエスカレーションする構成も可能です。
最低限どのくらいのスペックがあれば動きますか?
確認されている実測ではRaspberry Pi 5や$200未満の廉価スマホでも実用速度が出ており、ピークRAMは約28MBです。Cortex-Mマイコン向けの静的ライブラリもあり、非常に限られたスペックの機器でも動作対象に含まれます。
この記事に関連する無料ツール(登録不要・その場で結果)
お気軽にご相談ください
お問い合わせ