[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
🕸️

RAGの「ベクトル検索」の弱みを、ナレッジグラフで補う

2024/09/03に公開

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

この記事は何

この記事は、RAGシステムを専門用語に強くするための手法「HybridRAG」の論文[1]について、日本語で簡単にまとめたものです。
https://arxiv.org/abs/2408.04948

今回も「そもそもRAGとは?」については、知っている前提で進みます。確認する場合は以下の記事もご参考下さい。
https://zenn.dev/knowledgesense/articles/47de9ead8029ba

本題

ざっくりサマリー

RAGでベクトル検索・ナレッジグラフの両方を使って精度向上
HybridRAGは、通常のRAG(Retrieval Augmented Generation)で用いられる「ベクトル検索」の弱みを補い、回答精度を向上するための手法です。BlackRockとNVIDIAの研究者らによって2024年8月に提案されました。

ベクトル検索の弱みはいくつかあります。例えば、専門用語に弱いこと、前後の文脈を理解したうえでの回答に弱いことです。

HybridRAGは、ベクトル検索(VectorRAG)と、ナレッジグラフを用いた検索(GraphRAG)を両方用いる手法です。そうすることで、お互いの検索手法の弱みを補い、より精度の高い回答が実現できます。

問題意識

RAGは便利ですが、従来のベクトル検索のみを使ったRAGでは、専門用語に弱かったり、前後の文脈を捉えきれなかったりなど弱みがあります。(専門用語に弱い話は、以前も紹介しました

「前後の文脈に弱い」とはどういうことかというと、ベクトル検索では通常、文書全体の「一部のみ」(例: 200文字など)をLLMに渡して、回答作成させます。なので、文書の広い範囲を読んで回答する必要がある質問(例: 財務諸表のように、上から下まで読んで、回答する必要がある質問など)に、正しく回答できません。

GraphRAGは、このようなベクトル検索の弱みを克服するアプローチとして、最近注目されています。とはいえ、GraphRAG単体だと、それはそれで弱みがあるというのが、これまでの課題でした。

手法

HybridRAGは、VectorRAGとGraphRAGの両方を使って文書を検索し、それらの結果を組み合わせて回答生成する手法です。非常にシンプルです。
RAGでベクトル検索・ナレッジグラフの両方を使って精度向上
【事前にやっておくこと】

  • RAGに使いたい文書(論文内では決算資料)について、テキスト抽出
  • 抽出されたテキストを、チャンクに分割しベクトル化(VectorRAG用)
  • 文書からナレッジグラフを構築(GraphRAG用)

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

  1. VectorRAGで関連する文書チャンクを検索
  2. GraphRAGで関連する知識グラフのサブグラフを検索
  3. 1と2の結果を統合してGPT-3.5に渡し、回答を生成させる

HybridRAGという手法は、構造自体は本当にシンプルです。すでにベクトル検索型のRAGを構築済の場合でも、そこに追加する形で実装できるので、その点も嬉しいポイントです。

成果

  • 忠実性(Faithfulness):0.96(VectorRAG: 0.94, GraphRAG: 0.96)
  • 回答関連性(Answer Relevancy):0.96(VectorRAG: 0.91, GraphRAG: 0.89)
  • コンテキスト再現率(Context Recall):1.00(VectorRAG: 1.00, GraphRAG: 0.85)

(※「コンテキスト精度(CP)」については、従来手法よりも低い。両方手法の検索結果を、全てコンテキストに詰め込むので、当然ではあるのですが...)

以下の成果が重要です。

  • 金融業界「ならでは」な用語・複雑な質問でも正確に回答可能
  • 抽出型質問(ベクトル検索の弱み)と抽象型質問(GraphRAGの弱み)の両方に対して高い性能を発揮

まとめ

弊社では、法人向けにRAGシステムを提供しているので、「RAGで決算書類を読んで欲しい。10年分まとてほしい。」という要望をいただくことが(本当に)よくあります。こういう要望に対して、従来のベクトル検索型のRAGだと対応しきれません。(専門用語・構造・時系列比較など、従来のRAGだと苦手そうな理由が、すぐにたくさん思い浮かびます...)

こうしたニーズから、最近は「GraphRAG」というアプローチが人気なのですが、一方で「これ単体だと実用に耐えないな」という感覚がありました。HybridRAGは、この課題に対する、非常にシンプルなアプローチです。かなりシンプルなので、今後も派生したアプローチが多くでてきそうに感じます。

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

脚注
  1. "HybridRAG: Integrating Knowledge Graphs and Vector Retrieval Augmented Generation for Efficient Information Extraction", Sarmah et al. ↩︎

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

Discussion