0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GraphRAGは本当にVector RAGより優秀なのか — 自分のドキュメント1万件で比較した

0
Last updated at Posted at 2026-06-11

GraphRAG vs Vector RAG 実測比較

「Vector RAGはもう古い、これからは GraphRAG だ」という記事を、私は2024年から見続けています。

Microsoft Research の論文も、GraphRAGの包括性が +26%、多様性が +57% という派手な数字を提示しています。けれど、私の周りの実務エンジニアで「GraphRAGを本番投入した」という人は、思いの外少ない。

理由は2つだと感じていました。(1) 構築コストが高い、(2) 単純な事実検索だと負けるケースがある。これを自分で確かめないと納得できないので、私のドキュメント約1万件 (ブログ記事 + 技術メモ + Slack履歴) を使って、Vector RAG と GraphRAG (Microsoft版) と LightRAG の3つを並べて検証しました。

この記事では、その結果と、どういうユースケースで GraphRAG を採用すべきか を、コスト数字込みで書きます。

前提: Vector RAGとGraphRAGの違い

軽くおさらいします。

Vector RAG (従来型)

質問 → 埋め込みベクトル化 → 類似ドキュメント上位N件を検索
     → LLMに「これら参考にして答えて」と投げる

シンプルで安く速い。pgvectorやChromaDBでサクッと作れます。

GraphRAG (Microsoft版)

[インデックス時]
  ドキュメント → LLMがエンティティと関係を抽出
                → ナレッジグラフ構築
                → Leidenアルゴリズムでコミュニティ分割
                → 各コミュニティをLLMが要約

[クエリ時]
  質問 → 関連コミュニティ要約を取得 → LLMが回答

ドキュメントを単なる「テキストの塊」ではなく、エンティティと関係のネットワーク として扱います。

質問タイプによる得意/不得意

質問タイプ Vector RAG GraphRAG
「Xとは何か」(単一事実) 得意 苦手 (オーバーキル)
「XとYの違いは」(比較) 普通 得意
「Xに関連する全プロジェクトを教えて」(俯瞰) 苦手 得意
「このリポジトリ全体のテーマは」(集約) 不能 得意
「ABCDの4者の関係性は」(多段推論) 苦手 得意

これが理論的な前提です。問題は、実データで本当にこの差が出るか、です。

検証設計

コーパス

私の過去5年分のドキュメント。内訳:

  • 個人ブログ記事: 320本
  • Zenn / Qiita 記事: 180本
  • 技術メモ / 設計ドキュメント: 6,200ファイル
  • Slack のチャンネルログ (export): 約3,300スレッド

合計約 1万件のテキスト単位、約 45MB、約 800万トークン

検索エンジン

3パターン構築:

  1. Vector RAG (Baseline): pgvector + OpenAI text-embedding-3-small
  2. GraphRAG (Microsoft版): 公式リポジトリ (microsoft/graphrag) で構築
  3. LightRAG: HKUDS版 (HKUDS/LightRAG)

評価質問

質問タイプ別に50問ずつ、計250問を用意。

質問タイプ
単一事実 (50問) 「Whisper v3 Turboの RTF はいくつ?」
比較 (50問) 「Neo4jとArangoDBの違いは何ですか?」
俯瞰 (50問) 「私が過去に書いた音声AI関連の記事を全部教えて」
集約 (50問) 「2025年の検証結果から見える、ローカルLLMのコスパ傾向は?」
多段推論 (50問) 「voice-ai-300ms-ux で言及した量子化技術と、ローカルLLM電気代記事で使ったモデル選定の関係は?」

各回答は人間 (私) が4段階評価: 0=的外れ, 1=部分的, 2=ほぼ正解, 3=完全正解。

構築コストの実測

1万件のコーパスをインデックスする時点でのコスト比較です。

エンジン 所要時間 API課金 ローカル計算負荷
Vector RAG (pgvector) 約 12分 $3.20 CPU負荷ほぼゼロ
GraphRAG (Microsoft) 約 8時間 $184.50 LLM呼び出し7,200回
LightRAG (HKUDS) 約 2時間 $42.80 LLM呼び出し1,800回

GraphRAGの 57倍のコスト です。

参考: paperclipped.de/en/blog/graph-rag-production でも「10倍〜40倍のインデックスコスト」と報告されており、私の実測ともおおむね一致します。

クエリ時のコストはほぼ同じ ($0.001〜0.005/クエリ)。差はインデックス時に集中します。

GraphRAGをまっとうに動かすなら、最低でも本番LLM (GPT-4o or Claude Sonnet) が必要です。GPT-4o-miniやHaikuだとエンティティ抽出の品質が落ち、Leidenクラスタリングの結果が崩れます。コスト最適化のためにモデルを下げると、GraphRAGの旨味そのものが消えます。

質問タイプ別の正解率

これが本題です。

質問タイプ Vector RAG LightRAG GraphRAG
単一事実 86% 78% 72%
比較 64% 76% 84%
俯瞰 38% 64% 88%
集約 22% 58% 80%
多段推論 26% 52% 78%
総合平均 47% 66% 80%

結論: GraphRAGは「単一事実」では Vector RAG に負け、それ以外の4タイプでは圧倒的に勝つ。LightRAGは中間。

これは Microsoft の論文の傾向 (包括性 +26% / 多様性 +57%) と同じ向きの結果です。

単一事実でなぜ GraphRAG が負けるのか

GraphRAGはコミュニティ要約を介して回答します。コミュニティ要約は 抽象化されたサマリー なので、「Whisper v3 Turbo の RTF は1300倍」のような特定の数値が、要約の過程で「Whisper v3 Turboは非常に高速」のように丸められてしまうことがあります。

Vector RAGは元のチャンクをそのまま渡すので、数値や固有名詞の保持に強い。

俯瞰・集約で Vector RAG が壊滅する理由

「過去に書いた音声AI関連の記事を全部教えて」のような俯瞰質問は、コーパス全体をスキャンしないと答えられません。Vector RAGは「クエリに類似した上位N件」しか返さないので、関連記事の半分以上を取り逃します。

GraphRAGはコミュニティ単位で要約しているため、「音声AIに関するコミュニティ」を丸ごと取れます。

どこから GraphRAG を入れるべきか

実測結果と構築コストを並べたうえで、私の判断基準を書きます。

GraphRAGを 採用すべき 条件

  1. ユーザー質問の 半数以上が「俯瞰」「集約」「多段推論」型 であること
  2. コーパスのインデックスコスト ($100〜$1,000) を許容できること
  3. ドキュメント追加が バッチ更新 で済むこと (リアルタイム追加が頻発する用途は不向き)
  4. ドメイン知識のオントロジー (エンティティの型定義) を 事前に設計する人員 がいること

Vector RAG を 維持すべき 条件

  1. 質問が 個別の事実検索が中心 であること
  2. インデックスコストを最小化したいこと
  3. ドキュメントが 頻繁に追加・更新 されること
  4. プロトタイプフェーズで、まず動くものを早く出したいこと

LightRAG (中間案) を選ぶ条件

  1. GraphRAGの恩恵は欲しいが、Microsoft版のコストは無理
  2. Leidenクラスタリングをスキップして、エンティティ単位の検索で十分
  3. プロダクション統計が少ないことを受け入れられる (まだ採用事例が浅い)

参考: agentmarketcap.ai/.../graph-rag-vs-vector-rag-agent-memory によると、エージェントメモリ用途では Neo4j ベースのGraph RAGがpgvectorを多段推論で上回るとのこと。私の検証結果とも整合的です。

私の現在の構成

長期記憶が必要なものと、即応答性が必要なものを分けています。

[Vector RAG (pgvector)]
  - 個別の事実検索
  - 最新のドキュメント (24時間以内)
  - 検索レスポンス < 200ms

[GraphRAG (Microsoft版、Neo4j バックエンド)]
  - 「過去N年の傾向は」のような俯瞰
  - 多段推論が必要なリサーチ質問
  - Slack履歴の関連スレッド検索
  - 週次バッチでインデックス更新

ハイブリッドにすることで、Vector RAGの低コスト+高速応答と、GraphRAGの俯瞰・集約能力を両取りしています。

質問が来たら、まずクエリの型を判定 → 単一事実なら Vector、それ以外は GraphRAG、というルーティングです。判定自体は GPT-4o-mini で十分の精度が出ます。

GraphRAG導入で見落とした罠

3ヶ月運用して、最初の設計では気付かなかった罠を共有します。

罠1: コーパスの 更新頻度 とインデックスコストの掛け算

日次更新が必要なドキュメントを GraphRAG に乗せると、月のAPI課金が 5万〜10万円 超え始めます。私は最初これを見落として、月 ¥87,000 の請求書が来ました。

GraphRAG は 週次〜月次更新で運用するもの、と割り切るのが安全です。

罠2: 抽出されたエンティティの 正規化

「Claude Code」「claude code」「Claude-code」「クロード」がすべて別エンティティになります。LLM抽出はカジュアルにブレるので、後処理での正規化が必須です。

私のグラフには Claude Code が7種類の表記で並んでいて、最初に気付いた時は静かに画面を閉じました。

私はエンティティ名を OpenAI Embedding → 類似度0.92以上で同一視 というポストプロセスを入れています。

罠3: Leidenクラスタリングの 再現性

同じコーパスでも、エンティティ抽出のLLM出力が微妙にブレるため、再インデックスのたびにコミュニティ構造が変わります。「先週のグラフと今週のグラフでコミュニティIDが違う」が起きる。

初回と2回目で「同じコーパスなのに違うグラフが返ってきたんだが」と一晩悩んだのは私です。LLMが入っている以上、ある程度の非決定性は前提として受け入れるしかない。

これを許容できる設計にするか、シード固定 + 差分インデックスにするかは、要件次第です。

詳しいナレッジグラフ構築、GraphRAG vs Vector RAG の比較設計、Neo4j Cypher クエリの実践はナレッジグラフ実践ガイドにまとめています。LightRAG の組み込み、エンティティ正規化、コミュニティ要約のプロンプト設計まで、本番投入用のチェックリスト込みで書きました。

まとめ

  • 私のコーパス (約1万件) で Vector RAG / LightRAG / GraphRAG を比較
  • インデックスコストは Vector $3 / LightRAG $43 / GraphRAG $185 (約57倍差)
  • 総合正解率は Vector 47% / LightRAG 66% / GraphRAG 80%
  • ただし「単一事実」では Vector RAG が GraphRAG を上回る (86% vs 72%)
  • 俯瞰・集約・多段推論では GraphRAG が圧勝
  • 採用条件: 質問の半数以上が俯瞰型 + バッチ更新OK + オントロジー設計人員あり
  • 実運用ではVector + GraphRAGのハイブリッド、クエリ型でルーティング推奨
  • 罠: 更新頻度×コスト、エンティティ正規化、Leidenの非再現性

「GraphRAG vs Vector RAG」は二択ではなく、質問タイプで使い分ける のが2026年5月時点の現実解です。

面白くいきましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?