Geminiのツール呼び出し能力をわずか26Mパラメータに蒸留した超軽量モデル「Needle」が登場。ラズパイでも動くレベルの小ささで、エージェントAIの民主化を一気に加速させる可能性があります。本記事では、Needleの仕組みから実際の使い方、日本での活用シナリオまでを詳しく解説します。
📰 ソース:Hacker News(Show HN, スコア607) / Reddit r/LocalLLaMA
- Needleは、Geminiのツール呼び出し(Function Calling)能力を26Mパラメータに蒸留した超軽量モデル
- モデルサイズは約100MB以下。Raspberry PiやスマホなどのエッジデバイスでもCPUのみで推論可能
- 「テキスト生成AI」ではなく「どのツールを・どの引数で呼ぶか」の判定に特化したルーティングモデル
Needleとは何か——26Mパラメータの衝撃

2025年、AIエージェントの実用化が急速に進む中、大きなボトルネックとなっているのが「ツール呼び出し(Function Calling)」のコストです。ユーザーの自然言語入力を解析し、適切なAPIやツールを選択してパラメータを構築する——この処理のために、これまでは数十億〜数千億パラメータの大規模モデルが必要でした。
そこに登場したのが「Needle」です。Hacker Newsで607ポイントを獲得し大きな注目を集めたこのプロジェクトは、GoogleのGeminiモデルが持つツール呼び出し能力を、わずか26M(2,600万)パラメータのモデルに蒸留(Distillation)することに成功しました。
蒸留とは何か
知識蒸留(Knowledge Distillation)とは、大規模な「教師モデル」の振る舞いを、小さな「生徒モデル」に学習させる手法です。Needleの場合、Geminiが「この入力に対してはこのツールをこの引数で呼ぶ」と判断するパターンを大量に生成し、そのデータで小型モデルを訓練しています。
汎用LLMではない——特化型ルーターという発想
Needleの最大の特徴は、テキスト生成を行わないことです。通常のLLMのように文章を書いたり、質問に回答したりする能力は持っていません。その代わり、「ユーザーの入力に対して、登録されたツール群の中からどれを呼ぶべきか、どんな引数を渡すべきか」を高速に判定するルーティング専用モデルです。
Needle: Distilledの技術詳細と仕組み
アーキテクチャと設計思想
Needleは、巨大なLLMをそのまま小さくするアプローチとは異なります。ツール呼び出しという特定タスクに必要な情報だけを抽出し、それに最適化されたアーキテクチャで再構築しています。26Mパラメータという数値は、GPT-4(推定1.8兆パラメータ)と比較すると約7万分の1、Qwen3 0.6B(6億パラメータ)と比較しても約23分の1という圧倒的な小ささです。
何ができるのか
Needleが処理するのは、以下のようなフローです:
- ユーザーが「明日の東京の天気を教えて」と入力
- 登録済みのツール定義(例:weather_api, calendar_api, search_api)を参照
- 「weather_api」を選択し、引数として
{"location": "Tokyo", "date": "tomorrow"}を構築 - 構造化されたJSON形式で結果を返す
この処理をCPUのみで、ミリ秒単位のレイテンシで実行できる点がNeedleの真価です。
Geminiとの関係
Needleの「Distilled」は、Geminiの推論結果を教師データとして活用していることを意味します。Gemini自体のモデルウェイトを直接圧縮しているわけではなく、Geminiの出力パターンを学習した独立したモデルです。この手法により、Googleのモデルライセンスに抵触せずに、同等のツール呼び出し能力を小型モデルで実現しています。
既存モデルとの比較
ツール呼び出しに使える既存の選択肢と、Needleの位置づけを整理します。
| モデル/手法 | パラメータ数 | ツール呼び出し | テキスト生成 | 実行環境 |
|---|---|---|---|---|
| Needle | 26M | ◎ 専用特化 | ✕ 非対応 | CPU(エッジ可) |
| Qwen3 0.6B | 600M | ○ 汎用対応 | ○ 対応 | CPU/GPU |
| Llama 3.2 3B | 3B | ○ 汎用対応 | ○ 対応 | GPU推奨 |
| GPT-4o(API) | 非公開 | ◎ 高精度 | ◎ 対応 | クラウド |
| Gemini 2.5 Pro(API) | 非公開 | ◎ 高精度 | ◎ 対応 | クラウド |
r/LocalLLaMAでは、Qwen3 0.6BやQwen3.5 0.8Bといった小型モデルの月間ダウンロード数が288万回を超えている(Reddit投稿による)という議論が出ており、小型モデルへの実需が急速に高まっていることがわかります。Needleはその流れをさらに極限まで突き詰めたモデルと言えます。
実践:Needleを動かしてみる
Needleを実際に試す手順を紹介します。具体的なコマンドやAPIの仕様は公式リポジトリで変更される可能性があるため、最新情報は公式ドキュメントを参照してください。
ステップ1:リポジトリのクローン
git clone https://github.com/needle-ai/needle
cd needle
※リポジトリURLは公式サイトで最新のものを確認してください。
ステップ2:依存関係のインストール
pip install -r requirements.txt
Python 3.9以上が推奨されます。GPUは不要で、一般的なノートPCのCPUで十分動作します。
ステップ3:ツール定義の作成
呼び出し対象となるツール(関数)をJSON形式で定義します。OpenAI互換のFunction Calling形式が使える場合が多いです。
{
"tools": [
{
"name": "get_weather",
"description": "指定した都市の天気を取得する",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string", "description": "都市名"}
},
"required": ["city"]
}
}
]
}
ステップ4:推論の実行
python run_needle.py --input "大阪の天気を教えて" --tools tools.json
出力として、選択されたツール名と引数が構造化JSONで返されます。
ステップ5:既存のエージェントフレームワークとの統合
Needleの出力をLangChainやLlamaIndexなどのエージェントフレームワークに組み込むことで、ツール選択部分のコストとレイテンシを大幅に削減できます。テキスト生成が必要な後段の処理には、OllamaやLM Studioで動かす別のLLMを組み合わせるアーキテクチャが有効です。
🇯🇵 日本での活用ポイント
日本のエンジニアにとっての実用シナリオ
Needleの最大の魅力は、API呼び出しコストをゼロにできる点です。現在、多くの日本企業がGPT-4oやGeminiのFunction Calling APIを利用してチャットボットやエージェントを構築していますが、リクエストあたりの課金が積み重なり、月額コストが問題になるケースは少なくありません。
Needleをルーティング層に導入すれば、以下のようなシナリオで大きなコスト削減が見込めます:
- 社内ヘルプデスク:「経費精算の方法を教えて」→ FAQ検索ツール、「有給残日数を確認したい」→ 勤怠システムAPIなど、社内ツールの振り分けに特化
- IoT/エッジデバイス:Raspberry Pi上でスマートホームのコマンド解釈を行い、照明・エアコン・カメラなどのAPIを呼び分ける
- モバイルアプリ:オフライン環境でもツール呼び出し判定が可能なため、通信状況が不安定な現場作業支援アプリに最適
日本語対応状況
Needleは主に英語のツール定義と英語入力で訓練されたモデルです。日本語入力に対する精度は公式には明示されていないため、公式ドキュメントで最新の対応状況を確認することを推奨します。
実務での回避策として、以下のアプローチが考えられます:
- ツール定義(description)を英語で記述し、ユーザー入力を事前に英語に翻訳してからNeedleに渡す
- 日本語の入力に対応したファインチューニングを独自に実施する(26Mパラメータであれば、個人のGPU環境でも追加学習が現実的)
- 日本語入力の意図を簡易的にキーワード抽出してから、Needleに渡す二段構成を組む
プライバシーとオンプレミス運用
日本では個人情報保護法やISMAP等の観点から、ユーザーデータを外部APIに送信できないケースが多くあります。Needleは完全ローカルで動作するため、金融・医療・行政など、データの外部送信が制限される分野での導入障壁が極めて低いと言えます。
💡 pikl編集部の視点
pikl編集部は、Needleの登場を「AIエージェントのアーキテクチャ設計における転換点」と考えます。これまでエージェントAIの構築では、ツール選択もテキスト生成も同じ巨大LLMに任せるモノリシックな設計が主流でした。しかし、Needleは「ツール選択」と「テキスト生成」を明確に分離し、それぞれに最適なモデルを割り当てるマイクロサービス的アプローチを提示しています。
この設計が優れている理由は3つあります。第一に、コスト効率です。全リクエストをGPT-4oに投げる構成では、ツール判定だけで1リクエストあたり数セント〜数十セントかかりますが、Needleなら自社サーバーのCPUで処理可能です。第二に、レイテンシの改善です。クラウドAPIへのラウンドトリップが不要になるため、エッジ環境ではレスポンスが大幅に高速化します。第三に、障害耐性です。外部APIの障害やレート制限に影響されず、ツール判定部分が安定稼働します。
一方で、懸念点も指摘しておきます。26Mパラメータという小ささは、複雑なツール定義(数十〜数百のツールが登録された環境)や、あいまいな自然言語入力に対する精度面で限界がある可能性があります。Hacker Newsのスコア607という高い注目度は、このアプローチへの期待の大きさを示していますが、プロダクション環境での精度検証はこれからです。r/LocalLLaMAコミュニティではTextGenのデスクトップアプリ化(スコア372)やNous ResearchのAMA(スコア145)など、ローカルAIエコシステム全体の活発化が見られます。Needleもこの流れの中で、OllamaやLM Studio、あるいは新興のTextGenと組み合わせた「ローカル完結型エージェント」の重要なピースになると考えます。特に日本市場では、データ主権への意識が高まる中、ローカル実行可能な軽量ツール判定モデルの需要は今後急速に拡大するでしょう。
まとめ
- Needleは26Mパラメータという超軽量サイズで、Geminiレベルのツール呼び出し判定を実現する蒸留モデル。テキスト生成は行わず、Function Callingのルーティングに完全特化しています。
- CPU動作・エッジ対応・オフライン可能という特性により、API課金コストの削減、レイテンシの改善、プライバシー要件への対応が同時に実現できます。
- OllamaやLM Studioで動くテキスト生成モデルと組み合わせることで、ツール判定→テキスト生成の全工程をローカルで完結させる次世代エージェントアーキテクチャが構築可能です。
関連ツール
| ツール名 | 概要 | Needleとの組み合わせ |
|---|---|---|
| Ollama | ローカルLLM実行ツール。CLIベースで手軽にモデルを動かせる | Needleでツール判定後、Ollamaのモデルでテキスト生成を担当 |
| LM Studio | GUIベースのローカルLLM実行環境。GGUF形式に対応 | プロトタイプ段階でのテスト環境として最適 |
| Jan | オープンソースのローカルAIアシスタント。プラグイン拡張可能 | Janのプラグインとして統合し、エージェント機能を強化 |
よくある質問
Q: Needleは通常のチャットAIのように会話できますか?
いいえ、Needleはテキスト生成機能を持ちません。ユーザーの入力を解析し、最適なツール(関数)とその引数を構造化データとして返す「ルーティング専用モデル」です。会話機能が必要な場合は、OllamaやLM Studioで動作する別のLLMと組み合わせて使います。
Q: GPUがなくてもNeedleは動作しますか?
はい、動作します。26Mパラメータという小ささのため、一般的なノートPCのCPUやRaspberry Piなどのエッジデバイスでも推論が可能です。GPU環境は不要です。
Q: Needleは日本語の入力に対応していますか?
公式に日本語対応が明示されているかは、公式ドキュメントで最新情報を確認してください。英語入力への翻訳を前段に挟む、または日本語データでファインチューニングするといった対応策が考えられます。26Mパラメータであれば追加学習のコストも低く抑えられます。
Q: OpenAIのFunction Calling APIの代替になりますか?
ツール選択の判定部分については代替となる可能性があります。ただし、OpenAI APIが持つテキスト生成・推論能力は含まれないため、完全な置き換えではなく、コスト削減やレイテンシ改善を目的としたルーティング層としての導入が現実的です。
Q: Needleで登録できるツールの数に制限はありますか?
公式ドキュメントで上限の記載を確認してください。一般的に、26Mパラメータのモデルでは数百のツールを同時に扱う場合に精度が低下する可能性が考えられるため、用途ごとにツールセットを絞ることが推奨されます。


