使い方・開発 上級
GraphRAG
GraphRAG
文書から人物や組織などの関係を抜き出して「つながりの地図(グラフ)」を作り、それを手がかりに検索して回答させるRAGの発展形です。全体を俯瞰する質問に強みがあります。
別の呼び方グラフRAG、ナレッジグラフRAG
例数百件の報告書を横断して「主要な課題の傾向は?」と聞くため、GraphRAGで関係グラフを作った。
詳しく
GraphRAGとは、文書の内容を「誰が・何が・どう関係しているか」というグラフ(点と線のつながり)に整理し、そのグラフを利用して検索・回答するRAGの方式です。名称は、Microsoft Researchが2024年に発表した手法で広まりました。その後、似た発想の手法も多く登場し、広く「グラフを使ったRAG」の意味で使われることもあります。
通常のRAGの限界
標準的なRAGは、文書を断片(チャンク)に分けてベクトル検索し、質問に近い数件を取り出して回答を作ります。「この製品の保証期間は?」のように、答えが特定の箇所にある質問には向いています。
一方で、「この100件の報告書全体で、共通する課題は何か」や「AさんとBさんの取引はどうつながっているか」といった、文書全体にまたがる質問は苦手です。近い断片を数件取り出しても、全体像や、離れた箇所の関係は把握できません。
しくみ(概要)
典型的な流れは次のようなものです。
- 抽出:LLMで文書を読み、人物・組織・製品・出来事などの要素(ノード)と、それらの関係(エッジ)を抜き出す。
- グラフの構築:抜き出した要素と関係をつないで、グラフにする。
- グループ化と要約:つながりの強い要素をまとまり(コミュニティ)に分け、各まとまりの要約を作る。
- 検索と回答:質問に応じて、関連する要素や関係をたどる、または要約を利用して回答を組み立てる。
方式により細部は異なりますが、「関係をたどれる」「要約された全体像がある」ことが特徴です。
具体例
企業の調査レポートで、「A社の子会社のうち、B社と取引があるのはどこか」を聞くとします。この答えは複数の文書に分散していて、A社→子会社→B社と順にたどる必要があります。グラフ構造なら、この「たどる」操作を明示的に行えます。契約書、法務、研究論文、ニュース記事の分析のように、関係が重要な分野で試されています。
使うときの注意
- 構築に手間と費用がかかります。 文書全体をLLMで読んでグラフを作るため、通常のRAGの前処理より、トークンも時間も多く必要です。文書が更新されたときの再構築も課題です。
- 抽出の誤りが残ります。 LLMが関係を取り違えたり、同じ対象を別名で別のノードにしたりすることがあります。品質の確認が必要です。
- 向かない用途もあります。 単純なFAQや、特定の箇所を引く質問には、通常のRAGで十分なことが多くあります。効果は用途次第なので、小さく試して比較するのが安全です。
- ツールや手法は変化が速い分野です。 実装の選択肢は流動的なため、導入前に最新の情報を確認してください。
関連する考え方
土台となるのはRAGと、ベクトルデータベースによる検索です。グラフを併用する発想は、ベクトル検索だけでは拾いにくい「関係」を補うものと理解すると分かりやすいでしょう。
あわせて知りたい言葉
- RAG(検索拡張生成)質問に関係する文書を検索で取り出し、それを LLM に渡してから回答させる仕組みです。モデルが学習していない社内資料や、最新の情報にもとづいた回答ができるようになります。
- ベクトルデータベース文章や画像を数値の並び(埋め込み)にして保存し、意味の近いものを高速に探せるデータベースです。RAG で関連する文書を探す部分に、とてもよく使われています。仕組みを知ると選びやすくなります。
- 埋め込み文章や画像などを、意味の近さが距離として表れる数値の並び(ベクトル)に変換したものです。言葉が違っても意味の近い文書を探す検索や、分類、RAG の土台に使われます。
- チャンク分割長い文書を、検索や処理に適した小さな断片(チャンク)に区切る作業のことです。RAGではどこでどの大きさに区切るかが、検索の精度と回答の質を大きく左右します。区切り方の工夫が、回答の質を支えます。
- セマンティック検索言葉の一致ではなく、文章の意味の近さをもとに探す検索方式です。「車」で「自動車」の文書が見つかるなど、言い換えや曖昧な質問にも対応しやすいのが特徴です。ただし型番など完全一致が必要な検索は苦手です。