Re Reference AI

RAG vs GraphRAG

RAGは質問に関連する文書の断片をベクトル検索などで取得し、プロンプトに含めてLLMに回答させる手法。GraphRAGはRAGの発展形で、あらかじめ文書群からエンティティと関係を抽出してナレッジグラフを構築し、グラフとコミュニティ要約を介して検索・生成する。特定の事実を尋ねる質問には通常のRAG、文書全体を俯瞰する質問や複数文書にまたがる関係を問う質問にはGraphRAGが向く。

RAGGraphRAG

3行で違いを説明

  • RAGは文書をチャンクに分割し、質問に近いチャンクを検索してLLMに渡す。
  • GraphRAGは文書群からエンティティと関係を抽出したナレッジグラフを検索に使う。
  • 特定の事実を尋ねる質問には通常のRAGで十分なことが多い。
  • 「全体としてどのようなテーマが議論されているか」のような俯瞰的な質問にはGraphRAGが強い。
  • GraphRAGはインデックス構築時にLLMでの抽出・要約が必要なため、構築コストが大きい。

Comparison Table

ItemRAGGraphRAG
Purpose外部知識に基づく回答の根拠づけ・最新化文書全体を俯瞰する質問や、複数文書にまたがる関係を踏まえた回答
Developer手法(Lewisらが提案)Microsoft Research
Release2020年(論文発表)2024年(論文・オープンソース実装公開)
Open Source実装(LangChain・Haystack等)はオープンソースのものが多いMicrosoftがオープンソース実装(microsoft/graphrag)を公開
中心概念チャンクと埋め込みベクトルエンティティ・関係のナレッジグラフとコミュニティ要約

Architecture

RAG

文書をチャンクに分割して埋め込みベクトルへ変換し、ベクトルデータベースに格納する。クエリ時は質問に類似した上位のチャンクを検索し、プロンプトのコンテキストとしてLLMに渡して回答を生成させる。

GraphRAG

文書群からLLMでエンティティ(人物・組織・概念など)と関係を抽出してナレッジグラフを構築し、関連の深いエンティティのまとまり(コミュニティ)ごとに要約を作成しておく。クエリ時は質問の抽象度に応じてグラフやコミュニティ要約を参照し、回答を生成する。

Feature Comparison

FeatureRAGGraphRAG
特定の事実を尋ねる質問○○
文書全体を俯瞰する質問—○
インデックス構築時のLLM呼び出し不要(埋め込み生成のみ)必要(エンティティ・関係抽出と要約)
文書追加時の更新コスト小さい大きい

Advantages

RAG

  • 構成が比較的単純で、構築・運用の知見やツールが豊富
  • 文書の追加・更新が容易で、知識を最新化しやすい
  • 特定の事実を尋ねる質問に強い

GraphRAG

  • 複数の文書にまたがる関係性を踏まえた回答ができる
  • コミュニティ要約により、文書全体を俯瞰する質問に対応しやすい

Disadvantages

RAG

  • 質問に近いチャンクを個別に取り出すため、文書全体の要約や俯瞰的な質問に弱い
  • 検索精度が回答品質全体のボトルネックになる

GraphRAG

  • インデックス構築時にLLMでの抽出・要約が必要で、コストと時間がかかる
  • 文書の追加・更新時にグラフや要約の再構築が必要になる
  • エンティティ・関係の抽出精度が結果に影響する

Best Use Cases

RAG

社内規程やマニュアルなど、特定の事実や手順を調べる質問が中心のチャットボット・ドキュメント検索。

GraphRAG

大量の報告書・議事録・調査資料などから、全体の傾向や主要テーマ、組織や人物の関係を把握したい分析用途。

Migration

GraphRAGは通常のRAGを置き換えるものではなく、俯瞰的な質問への対応が必要な場合に追加する選択肢となる。まずベクトル検索型のRAGで要件を満たせるか確認し、文書をまたぐ質問で精度が不足する場合にGraphRAGの導入を検討するとよい。両者を併用し、質問の種類に応じて検索方式を切り替える構成も取れる。

FAQ

GraphRAGは通常のRAGより常に優れている?

常に優れているわけではない。特定の事実を尋ねる質問では通常のRAGで十分なことが多く、GraphRAGはインデックス構築のコストも大きい。文書全体を俯瞰する質問が多い場合に効果を発揮する。

GraphRAGにはグラフデータベースが必要?

必須ではない。Microsoftのオープンソース実装はエンティティ・関係・コミュニティ要約をファイルとして出力する構成を取る。規模や運用要件に応じてグラフデータベースと組み合わせることもできる。

参考文献

関連する比較

RAG vs ファインチューニング

RAGは外部知識を検索してプロンプトに組み込むことでLLMの回答を根拠づける手法、ファインチューニングは追加データでモデル自体の重みを更新する手法。知識の最新化のしやすさと、モデル自体の挙動・文体の変更しやすさという異なる強みを持つ。

RAGファインチューニング