従来のRAGが抱える限界

RAG(検索拡張生成)は、LLMが外部データを参照して回答を生成する仕組みとして広く普及しています。ユーザーの質問に関連する文書をベクトル検索で取得し、それをプロンプトに含めてLLMに渡すというのが基本的な流れ(プロンプトキャッシングとの併用も効果的)です。

ただし、この従来型のRAG(ナイーブRAGとも呼ばれます)には弱点があります。ベクトル検索は文の意味的な類似度に基づいて情報を取得するため、「AとBの関係は?」「CがDに影響を与えた理由は?」といった推論が必要な質問に対しては、断片的な情報しか返せないことが多いのです。

GraphRAGの基本的な考え方

GraphRAG(グラフRAG)は、ナレッジグラフとLLMを組み合わせることで、この問題を解決しようとするアプローチです。ナレッジグラフとは、「人物A→所属→企業B」「企業B→開発→製品C」のように、エンティティ(もの・こと)とその関係をグラフ構造で表現したデータベースです。

従来のベクトル検索が「似た文章を見つける」のに対し、GraphRAGは「関連するエンティティとその繋がりをたどる」ことで情報を取得します。その結果、複数の情報を組み合わせた推論や、間接的な関係性の発見が可能になります。

GraphRAGの動作フロー

GraphRAGの処理は大きく3つのステップに分かれます。まず、文書データからエンティティと関係を抽出し、ナレッジグラフを構築します。具体的には、この工程ではLLMを使って「誰が」「何を」「どうした」を自動的に解析します。

次に、ユーザーの質問が来ると、質問に含まれるキーワードやエンティティをもとにグラフを探索し、関連するノードとエッジを取得します。最後に、取得したグラフ情報をLLMに渡して回答を生成します。

ベクトル検索では見落としがちな「AはBを通じてCに影響を与えた」といった間接的な関係も、グラフをたどることで自然に発見できるのが強みです。

MicrosoftのGraphRAG実装

2024年、MicrosoftがGraphRAGのオープンソース実装を公開し、大きな話題になりました。このツールはLLMを使ってテキストからエンティティと関係を自動抽出し、コミュニティ検出アルゴリズムでグラフをクラスタリングします。各コミュニティの要約を生成することで、「このデータセット全体のテーマは何か?」といったグローバルな質問にも対応できるのが特徴です。

2025年に入ってからも開発は続いており、LazyGraphRAGというコスト効率を重視したバリエーションや、DRIFTサーチという動的な検索手法も追加されています。

GraphRAGの実用的なメリット

GraphRAGが特に力を発揮するのは、以下のようなケースです。

たとえば、社内文書の横断検索では、部署をまたいだ情報の関連付けが可能になります。研究論文の分析では、著者間の共同研究関係や引用ネットワークをたどることで、ベクトル検索では見つけにくい関連論文を発見できます。カスタマーサポートでは、製品・不具合・対処法の関係をグラフ化することで、複雑な問い合わせにも的確に回答できます。

導入時の注意点

一方で、GraphRAGには導入のハードルもあります。ナレッジグラフの構築にはLLMによるエンティティ抽出が必要で、大量の文書を処理する場合はそのコストが無視できません。さらに、グラフの品質はエンティティ抽出の精度に依存するため、ドメイン固有の用語が多い分野では調整が必要になることもあります。

また、グラフの更新・メンテナンスも課題です。また、文書が頻繁に更新される環境では、グラフの再構築コストを考慮した運用設計が求められます。

GraphRAGのまとめ

GraphRAGは、従来のベクトル検索ベースのRAGでは対応しきれなかった複雑な質問に答えるための有力なアプローチです。ナレッジグラフの構造を活用することで、情報間の関係性を明示的に扱えるようになります。MicrosoftのOSS実装をはじめ、ツールも充実してきており、2025年はGraphRAGの実用化が本格的に進む年になるでしょう。

なお、OpenAI o1のような推論特化型モデルとGraphRAGの組み合わせにも注目が集まっています。