Graph RAGとベクトルRAGの比較は、RAG(検索拡張生成)アーキテクチャにおける2つの主要アプローチの選択に関わる重要な設計判断である。ベクトルRAGはテキストチャンクの埋め込みベクトル類似度による検索、Graph RAGはナレッジグラフ構造を活用した検索を行い、それぞれ得意とするクエリタイプが異なる。実運用ではハイブリッドアプローチが推奨される。
RAG(Retrieval-Augmented Generation)は、LLMの知識を外部データで補完する技術であり、2024年時点でLLMアプリケーションの最も一般的なアーキテクチャパターンの一つとなっている。RAGの実装アプローチとして、ベクトルRAG(Vector RAG)とGraph RAGの2つが主要な選択肢として存在する。
ベクトルRAGは、テキストをチャンクに分割し、各チャンクのEmbeddingベクトルをベクトルデータベースに格納し、クエリ時にコサイン類似度等でトップK件のチャンクを検索するアプローチである。実装がシンプルで成熟したエコシステムが存在するため、RAGの標準的なアプローチとして広く採用されている。
Graph RAGは、テキストからナレッジグラフを構築し、コミュニティ検出によるサマリ生成を行い、クエリ時にグラフ構造を活用して回答を生成するアプローチである。Microsoft Researchが2024年に提案し、特にグローバルな質問(コーパス全体にまたがる包括的な質問)への回答で優れた性能を示す。
| 比較項目 | ベクトルRAG | Graph RAG | ハイブリッドRAG |
|---|---|---|---|
| インデックス構築コスト | 低(Embedding計算のみ) | 高(LLM呼び出し多数) | 高 |
| インデックス構築時間 | 短い | 長い(10〜100倍) | 長い |
| ストレージ要件 | 中(ベクトル+チャンク) | 高(グラフ+サマリ+ベクトル) | 最高 |
| クエリレイテンシ | 低(ミリ秒〜秒) | 中〜高(秒〜十秒) | 中 |
| ローカル質問の品質 | 高 | 高 | 最高 |
| グローバル質問の品質 |
| 低〜中 |
| 高 |
| 高 |
| 増分更新の容易さ | 高 | 低〜中 | 中 |
| 実装の複雑さ | 低 | 高 | 最高 |
| エコシステム成熟度 | 高 | 中(急成長中) | 中 |
ベクトルRAGの最大の強みは、実装のシンプルさとエコシステムの成熟度にある。
| 限界 | 説明 | 影響 |
|---|---|---|
| セマンティックギャップ | 質問とチャンクの表現が異なると検索できない | 回答品質の低下 |
| チャンク境界問題 | 重要な情報がチャンク間で分断される | 不完全な情報取得 |
| グローバル質問の困難 | トップK件では全体像を把握できない | 包括的回答の生成不可 |
| 構造情報の欠如 | エンティティ間の関係が保持されない | 複雑な推論の制限 |
| 重複チャンクの無駄 | 類似チャンクが上位を占める | コンテキスト効率の低下 |
| 限界 | 説明 | 影響 |
|---|---|---|
| 高い構築コスト | LLMによるエンティティ抽出にAPI費用がかかる | 大規模コーパスでコスト高 |
| 長い構築時間 | 全チャンクのLLM処理に時間がかかる | 迅速な実験が困難 |
| 抽出品質への依存 | グラフの品質がLLMの抽出精度に依存 | ノイズ混入リスク |
| 増分更新の困難 | コミュニティ再検出が必要 | 頻繁な更新が困難 |
| 実装の複雑さ | グラフDB・コミュニティ検出等の技術スタック | 運用負荷が高い |
クエリタイプによる最適な検索戦略の違いは以下のとおりである。
| クエリタイプ | ベクトルRAG | Graph RAG Local | Graph RAG Global | 推奨戦略 |
|---|---|---|---|---|
| 事実確認(Factoid) | ★★★ | ★★★ | ★ | ベクトルRAG |
| エンティティ詳細 | ★★ | ★★★ | ★ | Graph Local |
| 比較質問 | ★★ | ★★★ | ★★ | Graph Local |
| 全体傾向・テーマ | ★ | ★ | ★★★ | Graph Global |
| 要約・概要 | ★ | ★★ | ★★★ | Graph Global |
| 関係探索 | ★ | ★★★ | ★★ | Graph Local |
| 多段階推論 | ★ | ★★★ | ★★ | Graph Local |
実運用では、ベクトルRAGとGraph RAGを組み合わせたハイブリッドアプローチが最も効果的である。以下の3つの主要な統合パターンがある。
クエリの性質を分析し、適切な検索戦略に振り分ける。分類器(LLMまたは軽量モデル)がクエリをFactoid/Detail/Global/Comparative等に分類し、それぞれに最適な検索パイプラインにルーティングする。
ベクトル検索とグラフ検索を並列に実行し、結果をマージする。検索結果のランキングにはReciprocal Rank Fusion(RRF)やWeighted Scoringが使用される。レイテンシが増加するが、検索漏れのリスクが最小化される。
ベクトル検索で候補チャンクを取得した後、それらのチャンクに関連するグラフ情報(エンティティ、関係、コミュニティサマリ)を追加でフェッチしてコンテキストを拡充する。Microsoft GraphRAGのLocal Searchがこのパターンに近い。
| フレームワーク | ベクトルRAG | Graph RAG | ハイブリッド | 成熟度 |
|---|---|---|---|---|
| LangChain | ★★★ | ★★(LangGraph経由) | ★★ | 高 |
| LlamaIndex | ★★★ | ★★★(PropertyGraphIndex) | ★★★ | 高 |
| Microsoft GraphRAG | ★★(Local Search内) | ★★★ | ★★ | 中 |
| Haystack | ★★★ | ★ | ★ | 中 |
| DSPy | ★★ | ★ | ★ | 低 |
| コスト項目 | ベクトルRAG | Graph RAG(GPT-4) | Graph RAG(GPT-4o-mini) |
|---|---|---|---|
| Embedding生成 | $0.10〜0.50 | $0.10〜0.50 | $0.10〜0.50 |
| エンティティ抽出 | なし | $30〜100 | $3〜10 |
| サマリ生成 | なし | $10〜30 | $1〜5 |
| ベクトルDB格納 | $0.01〜0.10 | $0.01〜0.10 | $0.01〜0.10 |
| グラフDB格納 | なし | $0.01〜0.10 | $0.01〜0.10 |
| 合計 | $0.11〜0.60 | $40〜130 | $4〜16 |
Graph RAGのインデックス構築コストはベクトルRAGの10〜100倍以上になるが、GPT-4o-miniの活用やオープンソースLLM(Llama 3、Mistral等)のローカル実行により大幅に削減可能である。
Graph RAGとベクトルRAGの融合は加速しており、2024年後半以降、LlamaIndexのPropertyGraphIndex、LangChainのLangGraph統合、Microsoft GraphRAGのv2ロードマップ等、主要フレームワークがハイブリッドアプローチを標準機能として提供し始めている。
オープンソースLLMの性能向上により、エンティティ抽出コストは急速に低下しつつある。Llama 3 70BやMistral Largeをローカルで実行することで、APIコストをゼロにしながらGPT-4に匹敵する抽出品質を実現できるようになっている。
また、GraphRAG v2では増分更新のネイティブサポート、マルチモーダル対応(画像・表を含むドキュメントのグラフ化)、動的なクエリルーティングの自動化が予定されており、運用上の主要な障壁が段階的に解消されている。
小規模コーパスではベクトルRAGで十分なケースが多い。ベクトルRAGのトップK検索でも、コーパスの大部分をカバーできるためである。ただし、ドキュメント間の関係性が重要な場合(例: 契約書間の参照関係、研究論文のサーベイ)は、小規模でもGraph RAGのメリットがある。コスト面では、100件のドキュメント(数十万トークン)であればGPT-4o-miniでのインデックス構築が数ドルで完了するため、実験的な導入は容易である。
段階的な移行が推奨される。第1段階として既存のベクトルRAGを維持しつつ、Graph RAGのインデックスを並行して構築する。第2段階でLocal Searchを追加し、特定のクエリタイプ(エンティティ詳細、関係探索)をGraph RAGにルーティングする。第3段階でGlobal Searchを追加し、包括的な質問への対応を強化する。この段階的アプローチにより、既存機能を維持しながらGraph RAGの導入効果を検証できる。
KGQAは事前に構築された構造化ナレッジグラフ(Wikidata、Freebase等)に対してSPARQL/Cypherクエリを生成して回答するアプローチであり、Graph RAGとは根本的に異なる。Graph RAGは非構造化テキストからグラフを自動構築し、そのグラフをRAGの検索基盤として利用する。KGQAはスキーマが明確で正確な事実検索に強いが、テキストの文脈やニュアンスが失われる。Graph RAGは元テキストを保持しつつグラフ構造を活用するため、文脈豊かな回答を生成できる。両者の統合(既存KGをGraph RAGのシードとして利用)も有効なアプローチである。
ベクトルRAGのクエリレイテンシは50〜500ミリ秒程度(ベクトル検索+LLM生成)であるのに対し、Graph RAGのGlobal Searchは5〜30秒程度(全コミュニティサマリのMap-Reduce処理)かかる。リアルタイムチャットボットにはベクトルRAGが適しており、分析レポート生成やリサーチアシスタントにはGraph RAGのレイテンシが許容される。Local SearchはベクトルRAGに近いレイテンシ(1〜5秒)で動作するため、インタラクティブなユースケースにも適用可能である。