社内に蓄積した問い合わせ履歴・サポート文書・マニュアルをAIに検索させると、それらしい文章は返ってくるのに「どこに書いてあるのか」が分からない。複数の資料をまたぐ質問になると急に精度が落ちる。こうした壁にぶつかったとき、次の一手になるのがGraphRAGです。
GraphRAGとは、文書をベクトル化して類似検索するだけの一般的なRAGに、ナレッジグラフ(知識の関係性を表したグラフ)を組み合わせた検索・回答の仕組みです。文書の断片どうし、登場する概念どうし、誰がどの主張をしたかといった関係を明示的に結びつけることで、根拠をたどれる回答と、複数文書を横断する回答を実現します。
GraphRAGとは
一般的なRAG(Retrieval-Augmented Generation)は、質問に近い文書の断片をベクトル類似度で引っ張ってきて、それをLLMに渡して回答させる仕組みです。手軽で強力ですが、検索の手がかりが「意味が近いか」の一点に集約されます。
GraphRAGは、ここにグラフ構造を足します。文書を取り込むときに、本文だけでなく「どの概念が出てきたか」「誰のどんな主張か」「概念どうしがどう関係するか」を抽出してグラフのノードと関係(リレーション)として保存します。質問が来たら、ベクトル検索だけでなくグラフ上の近傍をたどって関連論点を集めることができます。
たとえばカスタマーサポートのナレッジベース(問い合わせ履歴・サポート文書・マニュアル)を検索するケースなら、グラフは次のような形になります。
- ノード: 文書/製品・機能/本文チャンク/概念/対応根拠(Claim)/タグ
- 関係: 「文書が本文チャンクを持つ」「チャンクが製品・機能に言及する」「チャンクが対応根拠を裏付ける」「対応根拠が概念に関する」「概念どうしが関連する」
この構造があると、「ある手順について、どの文書の・どの記述が根拠か」を関係でたどれます。回答に必ず引用元を添えられるのは、この設計があるからです。
なぜベクトル検索だけでは足りないのか
ベクトル検索は「意味が近い文」を見つけるのは得意ですが、苦手なところもあります。
- 量が増えると精度が落ちる: 文書が増えるほど似た候補が増え、上位に正解が来にくくなる。データ量の増加に対して素直にスケールしない。
- 横断が弱い: 1つの質問の答えが複数文書に分散していると、上位の数件しか拾えず全体像を取りこぼす。
- 関係を表現できない: 「AとBはどう関係するか」のような関係性の質問に、類似度だけでは答えにくい。
- 根拠が曖昧: なぜその文書が選ばれたのかが分からず、引用元の妥当性を確かめにくい。
GraphRAGは、この弱点をグラフ構造で補います。ただし「グラフだけ」にするのも極端で、言い換え・表記揺れに強いベクトル検索の良さは捨てたくない。そこで実務では、両方を組み合わせたハイブリッド構成が現実解になります。
GraphRAGとベクトルRAGの違い・使い分け
どちらが上位ということではなく、質問のタイプで相性が分かれます。
ベクトルRAGが向く質問
- 言い換え・表記揺れを含む「意味が近い箇所を探す」質問
- 1つの文書・1つの箇所で答えが完結する質問
- とにかく早く・安く立ち上げたい初期フェーズ
GraphRAGが向く質問
- 「AとBの関係は?」のような関係性をたどる質問
- 複数の文書・複数の発言にまたがる横断的な質問
- 回答の根拠を必ず提示したい、誤りが許されない用途
実際の検証でも、「言い換えに強いのはベクトル」「関係をたどるのはグラフ」と役割が分かれ、両方を持つハイブリッドが安定する、という結果になりやすいです。RAGを社内導入するときの成功・失敗の分かれ目は、社内AIアシスタントとRAGの成功・失敗パターンでも整理しています。
GraphRAGの何が嬉しいのか
導入してうれしいポイントは、突き詰めると3つです。
- 根拠付きで答える: 回答に「どの資料の・どの本文か」を必ず添えられる。利用者が裏取りでき、誤りに気づける。
- 横断して答える: 複数の文書・発言をまたぐ論点を、関係をたどって集められる。
- 「知らないことは知らない」と言える: 参照情報に無い内容は断定しない設計にしやすい。ハルシネーション(もっともらしい嘘)を抑えられる。
とくに最後の点は、社内ナレッジや専門領域では決定的です。間違った回答を堂々と返すAIは、無いより危ない場面があります。
Hybrid GraphRAGの実装
ここからは、実際に根拠付き・高精度を狙うときの作り方です。Beekleでは、単一のベクトル検索に依存しないPrecision-first Hybrid GraphRAGという方針で組みます。
1. 取り込み: 文書をグラフに変換する
文書を取り込むとき、本文を検索しやすい単位(数百〜千文字目安)に分割し、各断片から概念・主張・関係・タグをLLMで抽出します。抽出結果は型(スキーマ)で検証し、ナレッジグラフ(Neo4jなどのグラフデータベース)へ登録します。あわせて各断片をベクトル化し、ベクトルインデックスにも保存します。
2. 検索: 5つの経路を同時に走らせる
質問が来たら、まず質問から重要概念を抽出し、次の複数経路で並行して候補を集めます。
- メタデータ検索: 製品・カテゴリ・更新日などの属性で絞る
- 全文検索: キーワードの完全一致・近接で拾う
- ベクトル検索: 意味が近い断片を拾う(言い換えに強い)
- グラフ近傍検索: 関連概念を1〜2ホップ展開して関連論点を集める
- 主張(Claim)検索: 「何が主張されたか」を根拠候補として集める
3. 統合: RRFでまとめ、回答を検証する
複数経路の結果は、順位を融合するRRF(Reciprocal Rank Fusion)で1つのリストにまとめます。これで「どの経路でも上位に来た断片」が自然に強くなります。最後に、生成した回答が本当に引用元で裏付けられているかを後段で検証(Evidence Verification)し、裏付けの取れない主張は出さない、あるいは「資料上は確認できません」と返すようにします。
なお、精度向上のつもりで入れた処理がかえって精度を下げることもあります(たとえば再ランク処理を足したら精度が落ちた、など)。必ず評価データで測ってから採否を決めるのが鉄則です。RAGの精度が出ないときの考え方は、見積もり前の検証としても重要です。
4. 構成: AI処理を分離したマイクロサービス
運用しやすさの面では、Webアプリ(画面・履歴・認証)とAI処理(検索・回答生成)を分けるのが扱いやすい構成です。たとえば画面側をWebアプリのフレームワーク、AI Engineを別サービス(Python)として切り出し、リバースプロキシでまとめます。会話履歴はアプリ側のDB、ナレッジはグラフDBを単一の真実として置き、二重管理を避けます。
つまずきやすい落とし穴
- 抽出品質がすべて: 概念・主張の抽出が雑だと、グラフが育たず効果が出ない。スキーマ設計と検証に手を抜かない。
- 足し算で精度を測らない: 経路や後処理を増やすほど良くなるとは限らない。評価で確かめる。
- 小さく始める: 最初から全文書・全機能を狙わない。少量のデータで検索と回答の品質を固めてから広げる。
Beekleの実装事例
Beekleでは、カスタマーサポートのナレッジ検索(問い合わせ履歴・サポート文書を対象にした社内ナレッジ検索)を、ここで説明したHybrid GraphRAGで構築しました。自然文の質問に対し、引用元の本文を示しながら回答し、資料に無い内容は断定しない設計です。フロント・AI基盤・インフラまで一貫して担当しています(詳細は導入事例)。
なぜ通常のRAGではなくGraphRAGを選んだのか
この案件では、最初から通常のベクトル検索だけのRAGではなくGraphRAGを採用しました。実際に扱うデータ量を踏まえると通常のRAGでは限界があったことが最大の理由で、加えてサポート用途では「もっともらしいが裏付けのない回答」が事故につながります。次の点が決め手になりました。
- 実際のデータ量では通常のRAGに限界がある: 扱うデータ量が大きくなると、意味の近さだけで引くベクトル検索はノイズが混ざって精度が落ち、スケールしない。グラフ構造で「どこを見るか」を関係で絞れるため、量が増えても根拠をたどった回答を保てる。この案件でGraphRAGを選んだ最大の理由。
- 引用元を必ず提示できる: どの文書のどの記述が根拠かを示せるので、オペレーターが裏取りできる。回答の正しさを利用者側で確認できることが、サポート品質に直結する。
- 複数文書をまたぐ回答に強い: 手順と例外対応、製品ごとの差分など、答えが複数文書に分散する質問を、関係をたどって集められる。ベクトル類似度だけでは上位数件で取りこぼす。
- 「資料に無い」と言える: 参照情報に無い内容を断定しない設計にしやすく、誤った案内のリスクを抑えられる。
言い換えに強いベクトル検索の良さも捨てず、グラフと組み合わせたハイブリッドにしている点が、単純なRAGとの差です。
小規模なAIナレッジ検索は、AIナレッジ相談デモで実際の挙動を試せます。本格的なGraphRAG/RAGシステムの構築はRAGシステム構築、社内文書のチャットボット化はAIチャットボット開発でご相談いただけます。
よくある質問(FAQ)
Q. GraphRAGとは何ですか?
A. 文書をベクトル化して類似検索する一般的なRAGに、概念や主張、文書どうしの関係をグラフ構造で表したナレッジグラフを組み合わせた仕組みです。関係をたどれるため、複数文書を横断する回答や、引用元を示した根拠付きの回答が得意になります。仕組みの全体像は社内AIアシスタントとRAGの成功・失敗パターンもあわせてご覧ください。
Q. ベクトルRAGとGraphRAGはどう使い分けますか?
A. 言い換えや表記揺れを含む「意味が近い箇所を探す」質問はベクトルRAG、「AとBの関係は?」のような関係性をたどる質問や複数文書にまたがる質問はGraphRAGが向きます。実務では両方を組み合わせたハイブリッド構成が安定しやすく、Beekleでも複数の検索経路を統合する設計を採っています。
Q. GraphRAGを導入するとハルシネーションは減りますか?
A. 回答に必ず引用元を添え、参照情報に無い内容は断定しない設計にできるため、もっともらしい誤回答を抑えやすくなります。あわせて、生成した回答が引用元で裏付けられているかを後段で検証する仕組みを入れると、さらに確実になります。完全にゼロにはできない前提で、最終的な判断は人が確認できる運用にします。
Q. 社内文書が少なくてもGraphRAGは効果がありますか?
A. 効果はありますが、まずは少量のデータで検索と回答の品質を固めてから広げるのが現実的です。文書量より、概念や主張をどれだけ正確に抽出できるか(グラフの質)が効きます。小さく始めて評価しながら拡張する進め方を推奨します。
Q. GraphRAGの構築にはどれくらいの開発が必要ですか?
A. 取り込み(抽出・グラフ登録)、複数経路の検索、回答生成と検証、画面という構成要素があり、ベクトルRAGより作り込みは増えます。一方で、Webアプリとは独立した小さなデモから始められます。費用感は対象データ量と求める精度で変わるため、RAGシステム構築でご相談ください。AI開発全体の費用の考え方はAI受託開発の費用相場でも解説しています。
Beekleでは、生成AI/CDP/業務システムの企画・要件定義・開発・運用までワンストップで支援しています。「何を作れば成功か」の整理、検証フェーズの設計、本番化判断まで、発注側の判断材料が揃うように伴走します。費用感の概算だけでも歓迎です。