Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
🔍

RAGでも「深い検索」を実現する手法「DeepRAG」

2025/02/12に公開

本記事では、RAGの性能を高めるための「DeepRAG」という手法について、ざっくり理解します。株式会社ナレッジセンスは、エンタープライズ企業向けにRAGを提供しているスタートアップです。

この記事は何

OpenAIがリリースした「Deep Research[1]という機能が話題です。

この記事は、RAGでも「Deepな検索」ができるようにする手法「DeepRAG」の論文[2]について、日本語で簡単にまとめたものです。
https://arxiv.org/abs/2502.01142

今回も「そもそもRAGとは?」については、知っている前提で進みます。確認する場合はこちらの記事もご参考下さい。

本題

ざっくりサマリー

RAGでも「深い検索」を実現する「DeepRAG」という手法

DeepRAGは、RAGの新しい手法です。DeepRAGを使うことで、データベースを深く・網羅的に検索した上で回答するRAGを、構築することができます。中国科学院ソフトウェア研究所とWeChat AIの研究者らによって2025年2月に提案されました。

OpenAIによる「Deep Research」が話題です。この機能では、ユーザーから質問が来ると、AIが何度もWeb検索をして、リサーチを重ねた上で、最終的な回答を生成してくれます。まるで人間みたいな仕事ぶりです。これにより、網羅的に情報を整理してくれるので、回答精度が高いです。

DeepRAGは、これと似たようなことを、一般的なRAGでも実現するための手法です。

問題意識

RAGでも「深い検索」を実現する「DeepRAG」という手法
従来のRAGの課題として、「一度に複数のことを聞かれると、上手く答えられない」という課題がありました。これは、従来のRAGが「ユーザーの質問1回につき、1回までしかデータを検索できない」という、柔軟性を欠いた仕組みのせいで、発生する問題です[3]

とはいえ最近では、これを克服して「複数回検索してから回答できる」ようなRAGの手法[4]も、出てきています。

しかし、そうした最近の手法にも課題があります。具体的には、「検索が要らない時まで検索してしまう」という課題です。これにより「回答が遅くなる」「ノイズが増えて回答精度が下がる」という問題に繋がります。

そこで、DeepRAGでは、マルコフ決定過程(MDP)[5]をRAGに導入することで、必要な分だけ、でも、十分な量、検索してから回答してくれるRAGを実現します。

手法

RAGでも「深い検索」を実現する手法「DeepRAG」

DeepRAGの全体像としては、まずユーザーから質問が来たら、「その質問に回答するにはどんな知識が必要か?」を考えます。その後に、「Web検索すべきか?それとも自分がもともと知っている知識でいけるか?」を考えるという仕組みです。このそれぞれの部分で、精度が高くなるよう、モデルを事前にファインチューニングしています。

【事前にやっておくこと】
以下のような手法を用いてLLMをファインチューニング。「こういう質問だったらWeb検索すべき/しないべき」という境界判定の精度を上げます。

  • 二分探索木形式での、データセットを下準備(上記画像の左側)
    • 大量の質問データセットを用意。1つ1つについて、下処理をしていく
    • まず、1つの質問を細かい質問(サブクエリ)に分解
    • さらに、サブクエリそれぞれについて、Web検索すべき/しないべきを二分探索木で表現
    • こうすることで、質問データに対して最適な回答をするためには、Web検索すべき/しないべき、という正解データを用意できる
  • 模倣学習 & 知識境界の調整(Chain of Calibration)
    • 上記を学習データとして学習
    • 検索回数を最小限にしつつ正確な回答を出す方法を学習

【ユーザーが質問を入力して来たとき】

  1. 質問をサブクエリに分解
    • 例: 「フランス革命の原因は?」→ 「フランス革命とは?」「フランス革命の経済的背景は?」など
  2. サブクエリごとに、検索が必要かを判断
    • 検索して回答生成 or 検索せずそのまま回答
  3. 2の情報を統合。最終回答生成

DeepRAGという手法のキモは、知識境界の調整です(Chain of Calibration)。どういうことかというと、まず前提として、LLMは「メタ認知」が苦手です。例えば「自分はXXについての知識を持っていないな」と、LLM自身が考える能力は、かなり弱いです。なので、DeepRAGでは、「こういう質問だったら検索すべき」という境界の判定を矯正しています(モデルのファインチューニングを活用)。

成果

RAGでも「深い検索」を実現する手法「DeepRAG」

  • 従来手法と比較して回答精度が平均21.99%向上
  • 検索回数を削減しながら精度を向上させることに成功

まとめ

OpenAIの「Deep Reserch」機能の影響で、日本でも「調査エージェント」的なサービスが流行することが予想されます。ただ、素朴に実装してしまうと、「回答が遅すぎる」「ノイズが増えて回答精度が低い」という問題が起きます。

DeepRAGという手法は、LLMのメタ認知能力を高め、上記の問題を解決します。

みなさまが業務でRAGシステムを構築する際も、選択肢として参考にしていただければ幸いです。今後も、RAGの回答精度を上げるような工夫や研究について、記事にしていこうと思います。我々が開発しているサービスはこちら

脚注
  1. こちらの機能です。当然ながら、私も毎日使ってます。 ↩︎

  2. "DeepRAG: Thinking to Retrieval Step by Step for Large Language Models", Guan et al. ↩︎

  3. こちらの記事にて、具体的な例を挙げています。 ↩︎

  4. 例えば、「DIVA」など ↩︎

  5. https://ja.wikipedia.org/wiki/マルコフ決定過程 ↩︎

ナレッジセンス - AI知見共有ブログ

Discussion