⛰️

HiRAGでマルチホップなタスクの検索精度を改善

2024/08/27に公開

導入

こんにちは、株式会社ナレッジセンスの須藤英寿です。普段はエンジニアとして、LLMを使用したチャットのサービスを提供しており、とりわけRAGシステムの改善は日々の課題になっています。

本記事では、マルチホップなタスクに対して従来の1.2倍の性能を発揮する手法、HiRAGについて紹介します。

https://arxiv.org/abs/2408.11875

マルチホップなタスクとは

マルチホップなタスクとは、情報源となるデータの中に単体で回答できる情報は存在せず、複数のデータソースを組み合わせることで、初めて回答できるようなタスクとなっています。

タスクをどのようにして分解する必要があるかも判断する必要があるため、正確に回答する事が難しいとされています。

サマリー

HiRAGはこれまでのRAG手法の一つの進化系となります。情報の取得方法とそれを検証するための手段はシンプルながら応用の利きやすい手法かと思います。

HiRAGの大きな特徴は、RAGで取得する情報の検証を自身で行える点にあります。これにより、検索の精度を引き上げています。(構造的に必ずハルシネーションを防げるわけではないですが...)

手法

HiRAGは一般的なRAGと異なり、ドキュメントのデータとは別にドキュメント内の用語から作成される用語解説用のデータセットが存在します。このデータを使用して、回答に使用するデータの整合性のチェックを行います。

データの保管方法

  1. ドキュメント単位でテキストデータを保管
  2. ドキュメント内のキーワードを抜き出して、それぞれのキーワードに対して説明書きを作成(以降、Profile)

データの検索方法

検索方法は、文章にすると複雑なので画像を参照しながら読んでいただければと思います。基本的には回答に必要な情報を集められるまで検索を再帰的に繰り返していくことになります。

  1. ユーザーのクエリと、もし存在すれば参照データを組み合わせて回答できるかを判定、回答できる場合はLLMを使用して回答を生成し終了(画像の上側真ん中あたり)
  2. 回答するのに不足しているデータを取得するのに必要な質問を生成(画像の左上)
  3. 質問文を元に重要なキーワードを抽出
  4. 語彙のマッチングで関連するドキュメントを選択(画像の左側)
  5. ドキュメントのタイトルを使用してProfileから関連するキーワードの説明書きを取得
  6. ドキュメント内から100単語ごとに文章をチャンク化し、関連するチャンク一つを選択(画像の中心より少し右下)
  7. チャンクデータとProfileデータを元に回答に必要な情報が存在しているかを判定。存在していない場合は6、一定回数繰り返していた場合は4に移動しそれまでとは違うデータを再度選択。(画像の右下)
  8. 質問に対応する回答がすべて揃ったら1に戻る。

成果

まずは従来の手法との比較です。onlineと記載のあるものは情報源としてGoogleでの検索結果を利用したものとなっています。多くの項目で改善が見られており、総合すると従来の手法と比べて20%程度の改善が見られます。

続いて、HiRAGの手法と比較して、それぞれの手順を省いた場合の制度比較も行われています。
すべて適応した手法が一番精度が高いのはもちろんですが、一部のタスクではProfileを抜きにしたほうが精度が高いようです。

まとめ

マルチホップなタスクの回答精度を向上させるための手法HiRAGについて解説しました。従来の手法と比べて、関連する情報を1チャンクに絞ることとキーワードの説明を利用することで回答精度を上昇させている点が特徴になっているかと思います。

論文を読んでいて気になった点は、大まかに2つあります。1つはRAG関連の論文ではよく触れていますが、どのくらいの時間かかったのかという点。もう1つは、少し手法が検証データに寄っていないかなという点です。検索の際にはじめにドキュメントとの比較に文字ベースの一致で検索していますが、これはあくまで検証用データに直接的にキーワードが含まれているだけであり、一般的な利用の際には表現に幅があるはずなのでその点はどの程度カバーできているのかは気になりました。

個人的に面白いなと感じたのは、キーワード説明を含めることで僅かながらも精度が改善する点にあります。基本的にキーワードの説明はドキュメントから生成されているので回答に影響がないようにも感じますが、以下のような点で影響があるのではにかと予測しています。

プラスの影響

  • たまたま類似していると判断されたチャンクを除外できる
  • チャンクの区切りの問題で分かりづらいチャンクを除外できる

マイナスの影響

  • キーワードの説明に含まれていなかった観点がある場合に、本来正しいチャンクであっても除外されてしまう。

これらの影響が総合的にプラスに働いたのかなと個人的には見ています。

キーワードの説明が精度の改善に寄与するという点だけ見ても、検証する価値があると思いますので、是非RAGの精度の改善に応用してみてください。

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

Discussion