RAG・検索基盤

GraphRAGとは|全部そろえるのに40件渡すか、15件で足りるか

GraphRAGとは何をするのかふつうの検索では何が足りないのか取り込みのときに何を作るのか

「所属長の許可が要るのはどんな場面か」という問いには、関係する条文をすべて集めないと答えられません。上位3件を取る検索では足りません。

実際に測ったところ、上位10件まで広げてやっと全部そろいました。渡す文書は40件です。つながりの索引から引けば15件で足ります。

この記事の要点

  • 上位3件だと11/15しかそろわない
  • 上位10件で15/15だが、渡す文書は40件
  • つながりの索引なら15件で15/15
  • 必要件数は問いによって2件から6件まで開く

全部そろえるのに40件渡すか、15件で足りるか

全体を見ないと答えられない問いで測りました。上位k件を取る方式は、そろえようとすると渡す文書が増えます。

GraphRAGで何が変わるのかを、実際に走らせて測りました。用意したのは担当を明記した規程30件と、全体を見ないと答えられない問い4件です。

問いは「所属長の許可が要る場面」のように該当するものを全部集める必要がある形にしました。紛らわしい条文も混ぜてあります。

javascript
// 誰 → その人が関わる規程の一覧
const byWho = new Map();
RULES.forEach((r, i) => {
  if (!byWho.has(r.who)) byWho.set(r.who, []);
  byWho.get(r.who).push(i);
});
text
やり方                  そろえた件数  取りこぼし  渡す文書の数
ふつうに上位3件を取る                11 / 15          4件           12件
ふつうに上位5件を取る                13 / 15          2件           20件
ふつうに上位10件を取る               15 / 15          0件           40件
つながりの索引から引く                15 / 15          0件           15件

問い                      必要  上位3件  上位5件  上位10件  つながり
所属長の許可が要る場面                  6件      3件       5件        6件       6件
課長が承認や判断をする場面                4件      3件       3件        4件       4件
経理課が行う処理                     3件      3件       3件        3件       3件
海外事業部が担当すること                 2件      2件       2件        2件       2件

上の表を見てください。上位3件を取る方式では15件中11件しかそろいませんでした。4件を取りこぼしています。

件数を増やせばそろうが

上位10件まで広げると15/15になります。ただし渡す文書の数は40件です。つながりの索引なら15件で済みます。

同じ結果に対して、2.7倍の文書を渡していることになります。渡す量が増えれば、答えを作る側の費用も待ち時間も増えます。

必要件数が問いごとに違う

下の表を見てください。必要な件数は2件から6件まで開いています

上位k件のkは1つの値です。6件要る問いに合わせると、2件で足りる問いでは渡しすぎになります。この開きは事前には分かりません。

同じ15/15でも、渡す文書は40件と15件。

単位: 件上位10件・渡す数40件上位5件・渡す数20件つながり・渡す数15件上位3件・渡す数12件問い4件での実測。そろえた件数は順に11/15・13/15・15/15・15/15。
図1 ── そろえた件数と渡した文書の数
出典Microsoft「GraphRAG」ドキュメント2026-08-18 確認
Baseline RAG struggles to connect the dots. This happens when answering a question requires traversing disparate pieces of information
原文Microsoft「GraphRAG」ドキュメント この内容の有効期限2027-02-18

GraphRAGとは何をするのか

文書から語と語のつながりを抜き出し、そのつながりをたどって集めます。似ている文書を上から取る方式とは探し方が違います。

GraphRAGは、文書から語のつながりを抜き出して索引にし、そのつながりをたどって集める手法です。

似ているものを取る方式との違い

ふつうの検索は、問いに似ている文書を上から順に取ります。似ている度合いの順に並ぶだけです。

Microsoftの説明も、これを素朴な意味検索の手法に対する、構造化され階層化された取り組みだとしています。並べるのではなく、構造をたどります。

点をつなぐ問い

同じ文書は、ふつうの検索の弱点として点と点を結ぶのが苦手であり、これは答えるのに散らばった情報をたどる必要がある場合に起きるとしています。

前の節の問いがこの形でした。「所属長の許可が要る場面」は6か所に散らばっています。1か所を引いても答えになりません。

取り込みで作るもの

  1. 文書を単位に切る。ここまでは普通の取り込みと同じ
  2. 関係を抜き出す。誰が何に関わるかの組を作る
  3. まとまりを作る。関係の近いものを群としてまとめる
  4. 群ごとの要約を作る。全体を問われたときに使う

Microsoftの説明でも、生のテキストから知識グラフを抜き出し、コミュニティの階層を作り、要約を生成するとされています。前の節の計測は2番目までを行ったものです。

余談 この計測での注意

関係の抜き出しは手で置いています。実際には文書ごとに生成AIを呼んで抽出するので、そこで取り違えが起きます。この記事で測ったのは、抽出が正しくできた場合に検索の側でどれだけ変わるかです。抽出の質は別に評価する必要があります。

出典Microsoft「GraphRAG」ドキュメント2026-08-18 確認
GraphRAG is a structured, hierarchical approach to Retrieval Augmented Generation (RAG), as opposed to naive semantic-search approaches
原文Microsoft「GraphRAG」ドキュメント この内容の有効期限2027-02-18

GraphRAGを使うのに要るデータ

文書に、つながりが読み取れる形で書いてあることが前提です。書いていないものは抜き出せません。

GraphRAGは文書から関係を抜き出せることが前提です。抜き出せなければ、索引は作れません。

何を抜き出すか

Microsoftの手順では、文の単位からすべての実体・関係・主要な主張を抜き出し、そのグラフに対して階層的なまとまりの検出を行うとされています。

前の節の計測では、抜き出したのは30件の規程から30組でした。索引の項目は14件です。文書の数だけ抽出が走ります。

書いてあることしか取れない

計測に使った規程は「所属長の許可を得る」と明記してあります。担当が書いていない文書からは、担当のつながりは作れません

議事録や問い合わせの記録のように、関係が文脈に埋もれている文書では抽出の取り違えが増えます。抽出そのものの精度を先に確かめてください。

入れる前に確かめること

  1. 数える・並べる問いがあるか。なければ入れる理由がない
  2. 関係が明記されているか。埋もれていると抽出が当てにならない
  3. 文書が増えたときの作り直し。索引をどう更新するか
  4. 抽出の取り違えをどう見つけるか。索引が間違うと検索も間違う

3番目は運用に効きます。文書が増えるたびに全部作り直すのか、増えた分だけ足すのかを決めてください。索引の更新の話は増分インデックスの記事で扱っています。

書いてあることしか索引にならない。

充足 2 / 4数える・並べる問いが実際にある1か所を引くだけの問いでは、上位3件を取る方式と差が出ない文書に関係が明記されている担当が書いていない文書からは、担当のつながりを作れない抽出は生成AIに任せて確かめていない索引が間違えば検索も間違う。抽出の精度を別に評価する必要がある文書が増えたときの更新を決めていない全部作り直すか、増えた分だけ足すかで運用の負荷が変わる規程30件・問い4件での実測にもとづく。抜き出した組は30組、索引の項目は14件。
図2 ── GraphRAGを入れる前の点検項目
出典Microsoft「GraphRAG」ドキュメント2026-08-18 確認
Extract all entities, relationships, and key claims from the TextUnits. Perform a hierarchical clustering of the graph using the Leiden
原文Microsoft「GraphRAG」ドキュメント この内容の有効期限2027-02-18

よくある質問

上位k件のkを大きくすればよいのでは
全部そろいますが渡す文書が増えます。必要件数は問いによって2件から6件まで開くので、1つの値では合いません。
つながりの索引とは何ですか
誰が何に関わるかの組を文書から抜き出し、名前から引ける形にしたものです。取り込みのときに作ります。
どんな問いで効きますか
数える・並べる・全体をまとめる問いです。1か所に書いてある事実を引くだけの問いでは差が出ません。
取り込みの手間はどれくらいですか
この計測では規程30件から30組を抜き出しました。文書ごとに関係を抽出する処理が必要になります。

まとめ

  • 文書から語のつながりを抜き出して索引にする手法
  • 上位3件だと11/15、上位10件で15/15だが40件渡す
  • つながりの索引なら15件で15/15
  • 効くのは全体を見ないと答えられない問い

今日から始められること

  1. 自分の問いに、数える・並べる問いが混ざっているか確かめる
  2. 混ざっていなければ、ふつうの検索のままでよい
  3. 混ざっていれば、何と何のつながりを抜き出すか決める
  4. 抜き出す処理を取り込みに組み込む

実務で組んだGraphRAGのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る