📘

BM25も立派なAI?最新Deep Researchまでの技術進化を追う🐎

2025/04/04に公開

こんにちは。AI、特に大規模言語モデル(LLM)の活用は目覚ましい進化を遂げています。単純なテキスト処理や検索技術から、近年注目されるAgentic AIのように、自ら考えツールを使いこなすシステムまで、その応用範囲は広がり続けています。

現場では、これらの技術が持つ背景や課題を理解し、適切に組み合わせることで、実用的かつ高精度なシステムが構築されています。今回は、古典的な検索技術であるBM25から、RAGReAct/CoT、そして最新のAgentic AI機能であるDeep Researchに焦点を当て、技術の進化とその実装のリアルな側面を、2025年4月現在の情報に基づいて共有していきます。なお、筆者個人の解釈や推測も含んでいますのでご了承ください。

1. 「これもAIって言うの…?」 BM25≠AI??

BM25の本質

BM25は、Elasticsearchなど多くの検索エンジンで広く利用されている統計的なランキング関数です。文書中の単語出現頻度(TF)や逆文書頻度(IDF)、文書の長さを考慮して、クエリと文書の関連度を算出する手法で、TF-IDFの改良版と位置づけられます。

注意: BM25自体には学習機能はなく、事前に定義された数式に基づいてスコアリングするルールベースの手法です。そのため、データからパターンを学習する現代的なAI(特に機械学習モデル)とは異なり、「AI」と呼ぶことに違和感を覚えるかもしれません。しかし、そのシンプルさと有用性から、あたかも知的に関連文書を見つけているように見える点が特徴です。

以下の動画がBM25の解説としては秀逸でしたので紹介しておきます。
https://youtu.be/_HSOX0oh2ns?si=MEKSMhkaZ3oVmPPy

誤解と再評価

「AIサーチ」と銘打たれたプロダクトの中にも、実はBM25が基盤技術として活躍しているケースは少なくありません。

  • 誤解: 「BM25は古い技術だから現代では役に立たない」
  • 実際: 特定のキーワード、特に固有名詞や製品型番、コードスニペットなど、文字列の正確な一致が求められる検索タスクにおいては、意味の近さでマッチングするベクトル検索よりもBM25の方が優れた結果を出すことがあります。

そのため、実務ではベクトル検索とBM25を組み合わせるハイブリッド検索アプローチが有効です。意味的な類似性とキーワードのマッチングの両方を考慮することで、より頑健で精度の高い検索システムを構築できます。

Azure AI Searchもご多分に漏れず、ハイブリッド検索をサポートしています。
https://learn.microsoft.com/ja-jp/azure/search/index-similarity-and-scoring

2. RAGとチャンク分割の宿命

RAGの基本構造と役割

RAG(Retrieval-Augmented Generation)は、LLMの能力を外部知識で拡張するフレームワークです。ユーザーの質問に対し、まず関連情報を外部の知識ベース(データベース、文書群など)から検索し(Retrieval)、その検索結果をコンテキストとしてLLMに与え、最終的な回答を生成(Generation)させます。

  • 目的: LLM単体では学習データに含まれない最新情報や、組織内ドキュメントのような特定の知識に対応できないという知識の限界を補い、より正確で信頼性の高い回答(ハルシネーションの抑制)を実現すること。

チャンク分割の必要性と具体例

RAGを実装する上で避けて通れないのがチャンク分割です。LLMには一度に入力できるトークン数に上限があるため、長大な文書は適切なサイズの「チャンク(断片)」に分割して知識ベースに格納する必要があります。

  • 固定長分割: テキストを単純に一定の文字数やトークン数で区切る方法。実装は容易ですが、文や意味の途中で分割され、重要な情報が失われるリスクがあります。
  • 意味的分割: 文、段落、セクション単位で区切ったり、NLP技術(文境界検出など)を用いて意味的なまとまりを維持しながら分割する方法。より高度な手法として、埋め込み表現の類似性に基づいて分割点を決定するセマンティックチャンキングなども研究されています。
    • 利点: 文章の文脈や論理構造を保持しやすく、関連情報の検索精度向上に繋がります。

また、RAGとFew-Shot Learningは目的が異なります。Few-Shot Learningは、少数の例示(ショット)をプロンプトに含めることで、LLMに回答の形式や特定のタスクの解き方を「学習」させるプロンプティング技術です。一方、RAGは外部から直接的な知識(事実情報)を「注入」する技術です。これらは排他的ではなく、組み合わせて利用することも可能です。

3. 「一発勝負」の限界とReAct的アプローチ

ReAct/CoTの基本概念

基本的なRAGは「検索→生成」という一方向のプロセスですが、複雑な質問に答えるには、複数回の検索やツールの利用、段階的な思考が必要になる場合があります。ここで登場するのがReAct(Reasoning and Acting)のような、より高度なAgentic AIの思考フレームワークです。

  • 特徴: LLMが単に回答を生成するだけでなく、「思考(Reasoning)」と「行動(Acting)」を交互に繰り返します。
    1. 思考(Reasoning): タスクを達成するために、次に何をすべきか、どの情報が必要か、どのツールを使うべきかを判断する。Chain-of-Thought (CoT) プロンプティングのように、思考プロセスを段階的に記述させることで、より複雑な推論を促すことも有効です。
    2. 行動(Acting): 思考結果に基づき、外部ツール(Web検索、データベース検索、計算機、API呼び出しなど)を実行する。
    3. 観察(Observation): 行動の結果(ツールの出力)を受け取り、それを評価する。
    4. 次の思考へ: 観察結果を踏まえ、タスクが完了したか、さらに思考と行動が必要かを判断し、サイクルを繰り返す。

CoTが主にLLM内部の知識で思考プロセスを明示化するのに対し、ReActは外部環境とのインタラクション(行動と観察)を組み込んでいる点が特徴です。

実装上の課題と対策

ReActのような自律的なサイクルは強力ですが、実装には注意が必要です。

  • 無限ループのリスク: 停止条件が不適切だと、同じ思考と行動を繰り返してしまう可能性があります。⇒ 最大ステップ数制限、状態変化がない場合の強制終了などの対策が必要。
  • エラーハンドリング: ツール呼び出しの失敗、予期せぬAPIレスポンス、不適切なツール選択などへの対処が不可欠。⇒ 堅牢なエラー処理とフォールバック戦略を設計する。
  • コストとレイテンシ: 複数回のLLM呼び出しやツール実行は、コストと応答時間の増加に繋がる。⇒ 効率的なプロンプト設計、必要なステップの見極めが重要。
  • デバッグの難しさ: マルチステップの処理は、問題発生時の原因特定が複雑になりがち。⇒ 詳細なログ記録、中間状態の可視化、トレースツールの活用(LangSmithなど)が有効。
# 例: ReAct的処理の概念的な流れ (擬似コード)
state = {"query": initial_query, "history": [], "result": None}
for _ in range(MAX_STEPS):
    thought = agent.plan(state) # 思考: 次の行動を計画
    action = agent.select_tool(thought) # 行動選択
    if action == "finish":
        state["result"] = agent.generate_final_answer(state)
        break
    observation = agent.execute_tool(action) # 行動実行 & 観察
    state["history"].append((thought, action, observation)) # 履歴更新
    if agent.check_completion(state): # 完了チェック
        state["result"] = agent.generate_final_answer(state)
        break

このように、ステップ数制限やエラー時のフォールバック、状態管理をしっかり設計することが求められます。

4. Deep Researchの登場とAgentic AIの本格化

Deep Researchの本質 (2025年4月現在)

Deep Researchは、OpenAIが2025年2月にChatGPTの新機能として発表し、その後GoogleもGemini Advancedで同名の機能をリリースするなど、主要プレイヤーが提供を開始した最新のAgentic AI機能です。この機能は、既存のChatGPTや検索エンジンでは難しかった、より複雑で深い調査タスクに対応するために開発されました。

  • 特徴:
    • ユーザーの調査依頼(プロンプト)に基づき、AIエージェントが自律的にマルチステップのWebリサーチを実行します。
    • 単なるWeb検索プラグインとは異なり、数百ものWebページを探索・分析・統合し、引用元(ソース)付きの詳細なレポート(最大2万字規模に及ぶことも)を自動生成します。
    • 人間なら数時間(あるいは数日)かかるような複雑な調査を、数分から数十分で完了させる能力を持ちます。
    • 技術的には、End-to-Endの強化学習(RL) を用いて、調査計画、情報検索、分析、統合といった一連のプロセス全体を最適化するように学習されている点が重要です。これにより、単にツールを組み合わせるだけでなく、タスク全体を効率的かつ効果的に遂行する能力を獲得しています。
    • アップロードされたファイル(PDF、データファイル等)の内容を参照する機能も統合されつつあり、Web情報とローカル情報を組み合わせた調査も可能になってきています。

Deep Researchの動作例 (OpenAI公式動画より)
https://www.youtube.com/watch?v=bNEvJYzoa8A

現状と誤解

  • 誤解: 「Deep Researchは何でも完璧に調べ上げてくれる魔法のAI」
  • 現実:
    • 提供状況: 2025年4月現在、ChatGPTの全有料プラン(Plus, Team, Edu, Enterprise)で月10回、Proプランで月120回利用可能です。無料ユーザーへの提供も近日開始予定とされています。Google Gemini Advancedでも有料プランで提供されています。Perplexity AIなども類似の高度なリサーチ機能を提供しており、競争が激化しています。
    • ユースケースの多様性: 業界分析や医療研究のような専門的なタスクに加え、車の購入検討誕生日パーティの計画といった個人的な用途での利用も報告されています。また、開発者によるコーディングや技術ドキュメント調査での活用は、当初の想定を超える反響があったようです。
    • 能力と限界: 非常に強力なツールですが、生成されるレポートの質や網羅性は、対象分野や質問の仕方、参照するWeb情報の質に依存します。常に完璧な調査ができるわけではなく、専門家によるレビューやファクトチェックは依然として重要です。信頼できる情報源からの引用を確認することが推奨されます。
    • コスト: 計算リソースを大量に消費するため、提供回数に制限があり、将来的にも完全無料での無制限利用は難しい可能性があります。
    • UI/UX: 調査プロセスがブラックボックスになりがちで、ユーザーが進行状況を把握したり、介入したりするインターフェースはまだ発展途上です。

対策としては、生成されたレポートの出典(引用元)を必ず確認すること、特定のタスク(例: 社内ナレッジベースでの調査)に特化させること、中間結果の可視化などが考えられます。

Agentic AIの未来: Deep Researchは、OpenAIが計画している一連の「エージェント」機能の第2弾であり(第1弾はOperator)、今後も特定のタスクに特化した、あるいはより汎用的なAIエージェントが登場することが期待されます。

参考として、先日3月27日にあったMicrosoft AI tour tokyoでアナウンスもあったM365 CopilotへのDeep Research的機能のResearcherという新機能が搭載されるとのことで、非常に興味深いですね。

https://www.microsoft.com/en-us/microsoft-365/blog/2025/03/25/introducing-researcher-and-analyst-in-microsoft-365-copilot/

https://youtu.be/lfruwkpqvk4

5. 複雑な仕組みがもたらすシンプルな構造

興味深いことに、RAG、ReAct、そしてDeep ResearchのようなAgentic AI技術が進化し、内部の処理が複雑になればなるほど、それを適切に抽象化・統合することで、外部から見たシステムのインターフェースは逆にシンプルになる傾向があります。

開発者が内部でマルチステップ推論、ツール連携、エラーハンドリング、情報統合といった複雑な処理を実装・管理することで、ユーザーや上位のアプリケーションにとっては、「高度な質問応答・調査タスクを実行できる、単一のAgentic AI」として見えるようになります。

# 内部の複雑さを隠蔽したシンプルな呼び出し例
complex_query = "来期の市場トレンドを、最新の業界レポートと競合の動向を踏まえて分析し、主要な機会とリスクをまとめてください。"

# Deep Researchのような高度なエージェントを呼び出す (内部処理は複雑)
report = advanced_ai_agent.research_and_analyze(
    query=complex_query,
    max_sources=50,
    output_format="detailed_report_with_citations"
)

print(report)

この内部の複雑性をカプセル化し、シンプルなインターフェースを提供するという設計思想は、LLMを活用したAgentic AI開発における重要な原則であり、その強力な能力を多くの人が容易に利用できるようにするための鍵となります。

6. 各技術の誤解と実装上の落とし穴 (2025年4月版まとめ)

技術/機能 課題・誤解 対策例
BM25 古い技術と見られがちだが、キーワードの正確なマッチングには依然有効。ベクトル検索を常に上回るわけではない。 ハイブリッド検索(ベクトル検索と併用)、検索スコアのチューニング。
RAG 外部知識でLLMを補強するが、検索品質が低いと不正確な回答を生成。チャンク分割戦略が性能に影響。 検索精度の向上(ハイブリッド検索、リランキング)、適切なチャンク分割戦略の選択、回答不能時のフォールバック設計。
ReAct/CoT 思考と行動の連鎖で複雑なタスクに対応できるが、無限ループ、エラー、コスト増のリスクがある。 ステップ数制限、堅牢なエラー処理、状態管理、モニタリング、コスト意識した設計。
Deep Research 強力な自律調査エージェントだが、万能ではなく結果の質は変動。利用回数制限やコストも考慮事項。 生成レポートの出典確認とファクトチェック、利用制限(回数、用途)の認識、得意・不得意分野の理解。

7. まとめ:Agentic AI技術進化の道筋

本記事では、古典的な検索技術BM25から始まり、外部知識を活用するRAG、思考と行動を連鎖させるReAct/CoT、そして自律的な調査を行うDeep Researchへと至る技術の進化を見てきました。この流れは、単に情報を検索・生成するだけでなく、LLMを頭脳として、自ら計画し、ツールを使いこなし、目標を達成しようとする「Agentic AI」技術の発展として捉えることができます。

エンジニアとしては、これらの技術要素(検索、知識拡張、推論、ツール連携、自律性)の特性、メリット、デメリット、そして実装上の注意点を深く理解し、解決したい課題や目的に応じて最適なアーキテクチャを選択・設計する能力がますます重要になっています。

Agentic AI技術はまだ発展途上であり、今後も新しいフレームワークや機能が登場することが予想されます。皆さんの現場での経験や、これらの技術に対する意見があれば、ぜひコメントで共有してください。

この記事が、皆さんのAIシステム開発・導入の一助となれば幸いです。ご質問やご意見もお待ちしております!

免責事項

本記事は情報提供を目的としており、2025年4月4日時点の情報に基づいています。本記事について、内容の正確性・完全性は保証されず、誤りを含む可能性があります。公式ドキュメントで最新情報をご確認ください。記事内のコードサンプルは自己責任でご利用ください。APIキー等の機密情報は適切に管理し、公開環境での使用時はセキュリティに十分ご注意ください。本記事内容の利用によって生じたいかなる損害(サービスの中断、データ損失、営業損失等を含む)についても、著者は一切の責任を負いません。本記事に掲載されている各社製品・サービスは各社の利用規約に従ってご利用ください。

Discussion