GraphRAG(グラフラグ)
Microsoft Researchが2024年に発表したRAG手法で、文書コーパスからナレッジグラフ(エンティティと関係のネットワーク)を自動構築し、グラフ構造を活用して複雑な推論・要約クエリに対応する。従来のベクトル検索RAGでは困難だったマルチホップ推論を実現する。
GraphRAGとは
GraphRAGは、Microsoft Researchが2024年に発表したRAGの拡張手法で、文書コーパスからナレッジグラフを自動構築し、グラフ構造を活用して検索・推論を行う。論文「From Local to Global: A Graph RAG Approach to Query-Focused Summarization」およびGitHubリポジトリ(microsoft/graphrag)で公開されている。従来のベクトル検索RAGが「クエリに似た文書チャンクを返す」のに対し、GraphRAGは「エンティティ間の関係を辿って推論する」ため、マルチホップ質問や要約タスクで大幅に優れた性能を発揮する。
主な特徴・仕組み
- 自動グラフ構築: LLM(GPT-4o等)が文書からエンティティ(人名・組織名・技術用語・概念)と関係(所属・開発・競合・依存等)を自動抽出
- コミュニティ検出: Leiden アルゴリズムでグラフをコミュニティ(密に接続されたノード群)に分割。階層的な要約を生成
- 2つの検索モード:
- ローカル検索: 特定エンティティの周辺ノード・エッジを探索。「RTX 4090の競合製品は?」のような具体的なクエリ向き
- グローバル検索: コミュニティ要約を階層的に集約。「このコーパスの主要テーマは?」のような俯瞰的クエリ向き
- グラフ構築コスト: 1,000ページの文書で約$5〜20のLLM API費用(GPT-4o使用時)。構築は1回で、以降の検索はグラフ探索のみ
- ベンチマーク: 要約タスク(Comprehensiveness)でBaseline RAGを+20〜30%上回る(Microsoft 2024)
- マルチホップ推論: 「AはBを開発し、BはCに使われ、CはDと競合する」のような3段階以上の推論チェーンに対応
- スケーラビリティ: 10万ノード規模のグラフまで実用的な応答速度(1〜3秒)
- OSSライセンス: MIT License。Python実装でpip install graphragで導入可能
アーキテクチャ
| レイヤー | コンポーネント | 役割 |
|---|---|---|
| インデクシング | Entity Extractor | LLMで文書からエンティティ・関係を抽出 |
| インデクシング | Graph Builder | Neo4j/NetworkXでナレッジグラフを構築 |
| インデクシング | Community Detector | Leidenアルゴリズムでコミュニティ分割 |
| インデクシング | Summary Generator | 各コミュニティの階層要約を生成 |
| クエリ | Local Search | エンティティ中心のサブグラフ探索 |
| クエリ | Global Search | コミュニティ要約の階層集約 |
構築コスト比較
| コーパスサイズ | グラフ構築時間 | LLM API費用 | ノード数 | エッジ数 |
|---|---|---|---|---|
| 100ページ | 10〜30分 | $1〜3 | 500〜2,000 | 1,000〜5,000 |
| 1,000ページ | 2〜6時間 | $5〜20 | 5,000〜20,000 | 10,000〜50,000 |
| 10,000ページ | 1〜3日 | $50〜200 | 50,000〜100,000 | 100,000〜500,000 |
選び方・注意点
- 構築コストが高い: ベクトルRAGが文書チャンクを埋め込むだけなのに対し、GraphRAGはLLMでエンティティ抽出→グラフ構築→コミュニティ要約の3段階が必要
- 更新コスト: 文書が追加・変更されるたびにグラフの再構築(差分更新)が必要。静的なコーパス向き
- 単純なクエリにはオーバースペック: 「〇〇とは?」のような単一文書で回答できるクエリにはベクトルRAGで十分
- グラフDB選択: 小規模ならNetworkX(インメモリ)、大規模ならNeo4j・Amazon Neptune等の専用GraphDB推奨
- LightRAGとの使い分け: LightRAGはGraphRAGの軽量版で、構築コストを1/10に抑えつつ精度を80%程度維持
関連用語との違い
| 特性 | GraphRAG | ベクトルRAG | HyDE | LightRAG |
|---|---|---|---|---|
| 検索対象 | ナレッジグラフ | 文書チャンク | 文書チャンク | 軽量グラフ |
| マルチホップ推論 | ○ | × | × | △ |
| 要約タスク | ◎ | △ | △ | ○ |
| 構築コスト | 高($5〜200) | 低($0.1〜1) | 不要 | 中($0.5〜20) |
| リアルタイム更新 | 困難 | 容易 | 不要 | 中程度 |
よくある質問(FAQ)
Q1: GraphRAGはどんなユースケースに最適? A: 社内文書の横断的な分析・要約、複雑な因果関係の解明、競合分析、特許調査など「複数文書にまたがる情報を統合して推論する」タスクに最適。単純なFAQやキーワード検索にはオーバースペック。
Q2: GraphRAGの構築にGPT-4oは必須? A: エンティティ抽出の精度はLLMの能力に依存するため、GPT-4oクラスが推奨。Llama 3-70BやMistral Largeでも動作するが、抽出精度が10〜20%低下する。構築後の検索フェーズにはLLMのサイズは影響しない。
Q3: Neo4j以外のグラフDBでも使える? A: 公式実装はNetworkX(インメモリ)がデフォルト。Neo4j・ArangoDB・Amazon Neptuneへのアダプターはコミュニティ実装として提供されている。1万ノード以下ならNetworkXで十分で、それ以上はNeo4j推奨。
まとめ
- GraphRAGはMicrosoft発のナレッジグラフベースRAGで、マルチホップ推論と要約タスクに特化
- 文書からLLMでエンティティ・関係を自動抽出し、Leidenアルゴリズムでコミュニティ構造化
- 構築コスト($5〜200/コーパス)は高いが、複雑な推論タスクでは従来RAGを+20〜30%上回る
- 静的な大規模コーパスの分析・要約に最適で、頻繁に更新されるドキュメントにはLightRAGを検討