/通喵千問 →English

HanreiLLM PatentLLM SubsidyDB RAG Eng Apps Live GitHub Inquiry
← 記事一覧に戻る Read in English
AI

ローカルRAGツールをNemotron + vLLM + Tool Callingで構築した話

2026-03-23 / soy-tuber

はじめに

単一GPUで完結するローカルファーストのRAGリサーチツールを構築しました。Tool calling + RAGの組み合わせにはかなり試行錯誤が必要でしたので、そのアプローチを共有します。

技術スタック

SoyLM RAG Tool - Extract Phase

設計上の重要な判断

Extract → Execute 2段階フロー

質問を投げると、システムはまずLLMを使ってバイリンガルキーワード(EN+JA)を抽出し、ローカルソースに対するFTS5検索とDuckDuckGoウェブ検索を並列実行します。そして見つかったソースをチェックボックス付きで表示。関連するものを選んでExecuteを押すと、そこで初めて生成が始まります。

これにより、100k+トークンのコンテキストを丸ごと投入して「モデルが何とかしてくれ」という方式を回避しています。

Tool Calling

Nemotron v2はTool Callingに対応していますが、カスタムパーサープラグインが必要です(vLLMの組み込みパーサーはv3用であり、v2には使えません)。--tool-call-parser nemotron_json と --tool-parser-plugin を指定すると、モデルがウェブ検索のタイミングを自律的に判断します。temp 0.1で驚くほどうまく動きます。

Prefix Cache ウォームアップ

ソース読み込み時にまとめてキャッシュするのではなく、ユーザーがソースプレビュー(ステップ3)を見ているタイミングでKVキャッシュをウォームアップします。Executeをクリックする頃にはprefixキャッシュが完了済み。vLLMの --enable-prefix-caching を使用。

バイリンガルFTS5検索

ユーザーのクエリ → Nemotronが英語と日本語の両方でキーワード抽出 → OR結合のFTS5 MATCHクエリ。シンプルですが、多言語の特許・研究データに対して効果的です。

SoyLM RAG Tool - Execute Phase

パフォーマンス

ソースコード

GitHub: https://github.com/soy-tuber/SoyLM

1ファイルアプリ。uv pip install -r requirements.txt で即起動。vLLMとNemotronパーサープラグインは別途必要。

投稿元

Reddit r/LocalLLaMA: https://www.reddit.com/r/LocalLLaMA/comments/1s0lsi8/

よくある質問

このローカルRAGツールの主要な技術スタックは何ですか?

本ツールは、Nemotron Nano 9B v2 JapaneseをvLLM上で動作させ、バックエンドにFastAPI、SQLite FTS5、Jinja2を使用しています。Tool CallingとReasoningにはNVIDIAの公式パーサープラグインを組み込んでいます。

質問から回答までのワークフローはどのようになっていますか?

質問を受けると、システムはまずLLMでバイリンガルキーワードを抽出し、ローカルFTS5検索とDuckDuckGoウェブ検索を並列実行します。ユーザーが見つかったソースから関連するものを選択し、「Execute」を押すことで初めて生成が開始される2段階フローを採用しています。これにより、大規模なコンテキストを一度に投入するのを避けています。

Nemotron v2でTool Callingを実装する際の特別な考慮事項はありますか?

Nemotron v2でのTool Callingには、vLLMの組み込みパーサーではなくカスタムパーサープラグインが必要です。具体的には`--tool-call-parser nemotron_json`と`--tool-parser-plugin`を指定することで、モデルが自律的にウェブ検索のタイミングを判断できるようになります。

このRAGツールのパフォーマンスはどの程度ですか?

RTX 5090を使用した場合、出力速度は約80-120 tok/sで、最大8192トークンを扱えます。ソース抽出は約3-5秒、5つのソースと3つのウェブ結果を組み合わせた詳細な回答の生成には約50秒かかります。

このツールのソースコードは公開されていますか?

はい、ソースコードはGitHubのsoy-tuber/SoyLMリポジリで公開されており、1ファイルで構成されています。`uv pip install -r requirements.txt`で簡単に起動できますが、vLLMとNemotronパーサープラグインは別途インストールが必要です。

Daily Tech Digest 海外15サイトから厳選したAI・開発ニュースを毎日配信