
2026/05/13 3:03
Show HN: ニードル(Needle)── Gemini のツール呼出し機能を、2600 万パラメータの軽量モデルに蒸留しました。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Needle プロジェクトは、スマートフォン、スマートウォッチ、メガネといったコンシューマー機器でのローカルファインチューニングに設計された、2600 万パラメータを持つ蒸留モデル「Simple Attention Network」を導入する。このモデルはエッジ部品の展開を前提として設計されており、Cactus プラットフォーム上で動作し、プリフィル速度で 6,000 トークン/秒、デコード速度で 1,200 トークン/秒を実現し、強力なサーバーを必要とせずに高い効率性を達成する。モデルは、隠れ次元 d=512、コンテキストウィンドウ 8H/4KV、BPE=8192、ZCRMSNorm ノーマライゼーション、Gated Residual レイヤーを備えたアーキテクチャを採用している。このモデルは、16 個の TPU v6e ユニット上で約 27 時間にわたり 2000 ビリョンのトークンで事前トレーニングされ、その後、Gemini モデルによって生成された 20 億トークンからなるワンショット関数呼び出しデータセットを用いてファインチューニングされ、ポストトレーニングは 45 分で完了した。ベンチマークの結果、Needle は FunctionGemma-270m、Qwen-0.6B、Graninte-350m、LFM2.5-350m よりも大きい代替モデルを含め、個人向け AI アプリケーションのワンショット関数呼び出しタスクで優位性を示している。本プロジェクトはオープンソースであり、重み付けデータセットおよびリポジトリはすべて Cactus-Compute で利用可能である。開発者は Web インターフェース http://127.0.0.1:7860(モデルのテストとカスタムツールのファインチューニング)や
needle playground、needle finetune、needle run、needle train、needle eval などのコマンドラインユーティリティを通じて機能を探ることができる。論文は「Needle」と題され、Henry Ndubuaku、Jakub Mroz、Karen Mosoyan、Roman Shemet、Parkirat Sandhu、Satyajit Kumar、Noah Cylich、Justin H. Lee によって 2026 年に発表された。本文
Gemini 3.1 を「シンプル・アテンション・ネットワーキ」(SNA)と呼ばれる、約 2,600 万パラメータ規模に蒸留(ディストイリル)し、ご自身の Mac や PC でローカル環境において簡単にファインチューニング可能なモデルとして提供しています。本番環境では、「カクタス」基板上で動作し、プリフィル速度はトークン/秒あたり 6,000、デコード速度はトークン/秒あたり 1,200 で処理されます。重みとデータセットの生成プロセスもすべてオープンに公開しており、詳細は Cactus-Compute/needle にて確認可能です。
主要なアーキテクチャ仕様(d=512, 8H/4KV, BPE=8192)およびモデル構造図を以下に示します。
┌──────────────┐ │ Tool Call │ └──────┬───────┘ ┌┴──────────┐ │ Softmax │ └─────┬─────┘ ┌─────┴─────┐ │ Linear (T)│ ← パラメータ共有 └─────┬─────┘ ┌─────┴─────┐ │ ZCRMSNorm │ └─────┬─────┘ ┌────────┴────────┐ │ Decoder x 8 │ │┌───────────────┐│ ││ ZCRMSNorm ││ ││ Masked Self ││ ││ Attn + RoPE ││ ││ Gated Residual││ │├───────────────┤│
┌──────────────┐ ││ ZCRMSNorm ││ │ Encoder x 12 │──────────────────────▶Cross Attn ││ │ │ ││ Gated Residual││ │ ┌──────────┐ │ │└───────────────┘│ │ │ZCRMSNorm │ │ └────────┬────────┘ │ │Self Attn │ │ ┌─────┴─────┐ │ │ GQA+RoPE │ │ │ Embedding │ ← パラメータ共有 │ │Gated Res │ │ └─────┬─────┘ │ │ │ │ ┌───────┴───────-┐ │ │ (no FFN) │ │ │[EOS]<tool_call>│ │ └──────────┘ │ │ + answer │ │ │ └───────────────-┘ └──────┬───────┘ │ ┌────┴──────┐ │ Embedding │ └────┬──────┘ │ ┌────┴──────┐ │ Text │ │ query │ └───────────┘
本モデルは、16 個の TPU v6e を使用し、総トークン数 2000 億(学習時間 27 時間)で事前トレーニングされました。その後、単一ショットでの関数呼び出しを対象としたデータセット 20 億トークンを用いて 45 分間ポストトレーニング(ファインチューニング)を実施しました。
「Needle」は、消費用デバイス(スマートフォン、ウェアラブルグラスなど)向け的小型 AI を再定義することを目的としており、実験的なプロジェクト「シンプル・アテンション・ネットワーキ」の一環です。このモデルは、個人利用向けのシングルショット関数呼び出しにおいて FunctionGemma-270m、Qwen-0.6B、Graninte-350m、LFM2.5-350m を凌駕する性能を発揮しますが、これらの大規模モデルにはそれなりのスコープと容量があり、対話型タスクにおいてより優位性を示します。また、小型モデルは場合によっては挙動が不安定になる(finicky)こともありますのでご留意ください。
次のセクションにあるユーザーインターフェースを利用して、ご自身のツール上で試行錯誤いただき、必要に応じてワンクリックでファインチューニングを行ってみてはいかがでしょうか。
クイックスタート
git clone https://github.com/cactus-compute/needle.git cd needle && source ./setup needle playground
このコマンドを実行すると、http://127.0.0.1:7860 でウェブベースのユーザーインターフェースが開き、独自のツール上でのテストおよびファインチューニングが可能です。モデル重みは自動的にダウンロードされます。
使用例(Python)
from needle import SimpleAttentionNetwork, load_checkpoint, generate, get_tokenizer params, config = load_checkpoint("checkpoints/needle.pkl") model = SimpleAttentionNetwork(config) tokenizer = get_tokenizer() result = generate( model, params, tokenizer, query="What's the weather in San Francisco?", tools='[{"name":"get_weather","parameters":{"location":"string"}}]', stream=False, ) print(result) # [{"name":"get_weather","arguments":{"location":"San Francisco"}}]
ファインチューニング
# プレイグラウンドモード:Gemini を経由してデータを生成し、学習、評価、バンドリングを自動実行 needle playground # CLI モード:重みがローカルにある場合に自動的にダウンロードされます needle finetune data.jsonl
コマンドラインインターフェース (CLI)
| コマンド | 説明 |
|---|---|
| ウェブ UI を経由してテストおよびファインチューニングを行う |
| ご自身のデータに対するファインチューニング |
| シングル推論を実行 |
| 完全な学習プロセスの実行 |
| PleIAs/SYNTH データセットを用いた事前トレーニング |
| チェックポイントの評価 |
| データセットのトークン化 |
| Gemini を経由して学習データを合成 |
| TPU の管理(詳細は docs/tpu.md を参照) |
@misc{ndubuaku2026needle, title={Needle}, author={Henry Ndubuaku, Jakub Mroz, Karen Mosoyan, Roman Shemet, Parkirat Sandhu, Satyajit Kumar, Noah Cylich, Justin H. Lee}, year={2026}, url={https://github.com/cactus-compute/needle} }