cactus-compute/needle
Automation foundation model for tiny devices: 2-bit, 8-29 MB, tool calls, ASR, structured extraction and embeddings on phones, wearables, smart homes, robots, cars and microcontrollers.
Needle – 超小型デバイス向け基盤モデル
概要 – Needleは、モバイル、ウェアラブル、ロボット、スマートホームハブ、車載ECU、さらにはマイクロコントローラーといった非常に小さなデバイスに適合する基盤モデルファミリー(最新は Needle 3)です。モデル全体が単一の8‑29 MBのバイナリ(.cactファイル)として提供され、CPU、WASI、ブラウザ、その他のエッジランタイムで動作するカスタムC++エンジン上で実行されます。
主な機能
| 機能 | 内容 |
|---|---|
| ツール呼び出し | 公開したPython関数(ツール)のリストに基づき、Needleは適切なツールを選択し、自然言語入力からすべての引数を埋めます。複数の呼び出しを順次返すことも、一致するツールがない場合に空のリストを返すことも可能です。 |
| 構造化抽出 | JSONスキーマ(形状)を宣言します。乱雑なテキストを入力すると、Needleは常に解析可能な型付きフィールドを、調整済みの信頼度スコアと共に返します。 |
| テキスト埋め込み | 同一モデルで任意の文に対して高密度ベクトルを出力でき、ローカルでのセマンティック検索、ルーティング、類似度マッチングを可能にします。 |
| 音声認識 (Whistle) | Needleのエンジンを共有する16.9 MBの音声モデルです。言語検出、タイムスタンプ、キーワードバイアス、ストリーミングサポートを備えたワンパス転写(最大30秒)が可能です。 |
| 信頼度スコア | すべての応答には学習済みの信頼度ヘッドが含まれており、アプリケーションが行動するか、明確化を求めるか、拒否するかを判断できます。 |
仕組み
- 階層化Simple Attentionネットワーク – 各深さ(2‑20層)が完全にデプロイ可能なサブモデルである「Simple Attention」バックボーン。従来のフィードフォワードネットワークの代わりにMonarch Hadamard MLP、因果畳み込みタップを備えたGQAアテンション、engram n‑gramメモリ、マルチレーンハイパーコネクションを使用しています。
- パラメータ効率 – ほとんどの重みはengramに存在し、121 Mパラメータのモデルが50 Mパラメータモデルのように動作します。
- バイトレベル文法 – JSONスキーマからコンパイルされた文法がトークン生成を制約し、構文的に正しい出力を保証します。
- 量子化 – 重みは1重みあたり2.125ビット(Cactus Quants)で保存され、出荷されるバイナリは8‑29 MBです。
はじめに
pip install cactus-needle # コアライブラリ + ランタイム
pip install "cactus-needle[train]" # オプションのトレーニングユーティリティ
import needle
@needle.tool
def get_weather(city: str):
"""都市の現在の天気を取得します。"""
return {"city": city, "temp_c": 27, "sky": "clear"}
agent = needle.Needle(tools=[get_weather])
print(agent.run("what's it like in Lagos right now?")['results'])
# → [{'city': 'Lagos', 'temp_c': 27, 'sky': 'clear'}]
run呼び出しは、function_calls、モデル内部のreasoningトレース、およびconfidenceスコアを含むJSONオブジェクトを返します。- 音声の場合は、単に
needle.transcribe("clip.wav")を呼び出すか、ストリーミングAPIneedle.stream(chunks)を使用してください。
ベンチマーク
- ツール呼び出し – 完全なテスト分割における完全一致精度は、10倍のサイズのモデルを上回ります。
- 構造化抽出 – フィールドレベルのmicro‑F1は、より大きなベースラインを上回ります。
- Whistle – Whisper‑baseよりも8.6倍小さく、最初のトークンまでの速度が6.6倍速く、LibriSpeech、SPGISpeech、Earnings‑22、FLEURSなどで低い単語誤り率を達成しています(リポジトリ内のベンチマークSVGおよびCactus Computeサイトの詳細テーブルを参照)。
カスタマイズと微調整
- LoRAベースのローカル微調整 (
needle finetune) – ベースを凍結したままアテンション投影のアダプターをトレーニングし、needle buildで微調整済み.cactをエクスポートします。 - フルモデルプラットフォーム微調整 (
needle platform finetune) – Cactus GPU上で実行され、すべての深さをトレーニングし、オプションで信頼度ヘッドを再調整し、任意の層数に対応する微調整済みバイナリを返します。 - 微調整されたサブネットワーク(最小2層)は、特定のツールセットにおいてDeepSeek V4 Flashのような29 Mパラメータモデルを上回ることがあります。
デプロイメント
- ターゲットプラットフォーム(macOS‑arm64, linux‑arm64, WASIなど)ごとに事前構築されたエンジンバイナリが提供されます。
needle build --platform <folder> [--layers N]でデプロイメントフォルダを構築します。このコマンドは適切なエンジンを取得し、その横に.cact重みを配置します。- バイナリを直接実行します:
./macos-arm64/needle --model needle3.cact --tools tools.json --serve。 - テレメトリはデフォルトで有効です。
NEEDLE_TELEMETRY=0およびDO_NOT_TRACK=1で無効にできます。
リソース
- モデルの重みとエンジン – Hugging Faceリポジトリ
Cactus-Compute/needle3およびCactus-Compute/whistle。 - ドキュメントとガイド – 設計ツール、信頼度処理、構造化抽出、微調整、サポートデバイス、
.cactファイル形式、移植ノートはすべてCactus Computeブログにあります(READMEにリンクが記載されています)。 - インタラクティブデモ – https://cactuscompute.com/needle でブラウザ上でNeedleを試してください。
引用 研究や製品でNeedleを使用する場合は、提供されているBibTeXエントリを引用してください。
上記の情報はすべてリポジトリのREADMEから直接取得したものであり、外部の仮定は追加されていません。
関連
- Dispatch
- Dispatch
- Dispatch
- Dispatch
- Dispatch