- オープンソースのモデルとツール(Milvus、LangChain など)を活用して、Deep Research 型のリサーチエージェントを実装
- Web・ドキュメント検索を通じて、テーマや質問に対して自動で深いリサーチを行い、中間段階ごとに 行動(検索、整理など)を選択するエージェント構造を実装する事例が増えている
- 本文では、こうしたアイデアを拡張した DeepSearcher オープンソースプロジェクトを紹介。クエリルーティング、条件付き実行フロー、Webクローリングツールの利用 などを紹介
- DeepSearcher は Python ライブラリ・CLI 形式で提供されており、複数のソース文書を入力し、埋め込みモデルやベクターDBの設定をファイルで簡単に調整できる
- シンプルながら エージェントベースRAG を実演する事例であり、実際の AI アプリケーション開発へとつながる足がかりになりうる
- 特に 推論モデル の速度と効率の問題が強調されており、問い合わせと検索の過程で多くのトークン生成が必要なため、推論リソース がボトルネックになる
- SambaNova のカスタムハードウェアで動作する DeepSeek-R1 reasoning model を使うと、1秒あたりのトークン生成速度が競合サービスより高速になる
- こうしたクラウド推論サービスにより、Llama 3.x、Qwen2.5、QwQ などさまざまなモデルでも効率的な推論が可能になる
質問の定義と細分化
- 初期のユーザー問い合わせを 詳細なサブクエリ に分解する
- 前回の記事と同様に、"How has The Simpsons changed over time?" のような問い合わせは、以下のように複数のサブクエリに分けられる
- 例: 作品の文化的・社会的影響、シーズンごとのキャラクター・ユーモア・物語構成の変化、アニメーション・制作技術の変化、視聴者の反応の変化 など
- その後の段階で必要に応じて、追加で 質問を再定義 したり拡張したりもする
リサーチと分析
- サブクエリをもとに、クエリルーティング、ベクター検索、リフレクション(reflection)、そして 条件付き反復 の段階を経る
- クエリルーティング
- 複数のデータベースコレクションのうち、どれを使うかを LLM が決定するようにプロンプトを構成する
- JSON 形式の応答を受け取り、コレクションごとに検索クエリを生成するようにする
- ベクター検索
- Milvus に保存された埋め込みを活用して 類似度検索 を実行する
- 前回の記事と同様に、ソースデータをあらかじめ分割してベクトル化しておく
- リフレクション(reflection)
- LLM が前段階で得られたクエリ・回答をもとに、追加情報が必要かどうか を確認する
- 不足している部分があれば新しいサブクエリを生成し、再検索を試みる
- 条件付き反復
- リフレクションの結果、追加クエリが必要なら上記の過程を繰り返す
- これ以上情報を収集する必要がないと判断したら、最終レポートを生成する段階に進む
最終レポートの生成
- すべてのサブクエリと検索結果を総合して、1つのプロンプト でレポートを生成する
- 以前のデモより 一貫性とまとまり を高めた形のレポートが得られる
- たとえば、"How has The Simpsons changed over time?" に対する最終レポートは、以下のような構成で詳細を提供する
-
- 文化的影響と社会的な関連性
-
- キャラクター・ユーモア・ストーリーラインの進化
-
- アニメーション・技術的変化
-
- 視聴者層、反応、視聴率の変化
- 結論: 初期の反抗的な風刺から大衆的アイコンへと変貌した過程 など
- DeepSeek-R1 モデルを使った版と、GPT-4o mini モデルで生成した版のレポートを比較できる
今後の方向性
- DeepSearcher はまだシンプルな段階だが、追加のエージェント構成、レポートの構造化、条件付き反復の拡張 などによってさらに発展させられる
- 大規模推論モデルは 非常に重い計算 を伴うため、推論速度 と コスト がサービスの中核的課題になる
- SambaNova の DeepSeek-R1 モデルを使って 65 回の推論呼び出し、約 25k の入力トークンと 22k の出力トークンを使用し、約 0.30 ドルのコストで十分に高速な応答が得られたという
- DeepSearcher リポジトリ でプロジェクトを直接試せるほか、今後も追加機能や事例を継続的に共有していく予定
1件のコメント
Hacker Newsのコメント
このシステムはローカルLLMを使っていないので、真のローカルシステムではない
HuggingFaceのオープンソース版との比較が気になる
Grokの実装の魔法は、ほとんどのWebサイトをキャッシュしているため非常に高速に感じられることにある
Deep Researchに対するさまざまなアプローチが好き
関連する2本のブログ記事がある
主要なAI企業が同じDeep Research製品を作っているので、共有オープンソースプラットフォームに集中するのが合理的だろう
Webクローリング統合の実質的な意味が気になる
個人ノート(Obsidian)とWebに接続できるDeep Researchツールを探していた
実際に使ってみて、いくつか問題に直面したため、openAIテキスト埋め込みをMilvusEmbeddingに置き換える必要があった
真の魔法の弾丸は、lib-genとsci-hubを検索することだ