前回、GraphRAG の原論文を読んで「全体俯瞰の問いには強く、特定の問いには naive RAG が勝つ」「索引は高い」「審判には位置バイアスがある」と整理した。 整理しただけでは論文の受け売りなので、手元で一番よく知っているコーパス=このサイトの教材 104 本に対して、原論文の手順を最小構成で組んで回してみた。 索引の各段の数字、できあがったコミュニティ地図、naive RAG との 7 問対決、審判を提示順入れ替えで 2 回、そしてコスト。全部を一次データとして残す。
Microsoft の公式実装は使わず、原論文の 6 段をそのまま Python 400 行で書いた。理由は 2 つ。段ごとの数字(言及数、統合率、コミュニティ数、トークン数)を取りたかったこと、 そして LLM を手元の DGX Spark(vLLM)に向けたかったこと。埋め込みは Mac の Ollama。
| 段 | 数字 | 読み方 |
|---|---|---|
| コーパス | 104 本 / 511 units / 620,964 字(≈388K tok) | うち HTML 本文があるのは 92 本。残り 12 本(外部リンク)はカードの説明文のみ。原論文の podcast コーパス(≈1M tok)の 4 割 |
| 抽出 | 7,144 言及 / 4,112 関係 | 1 unit あたり平均 14.0 エンティティ・8.0 関係。511 回の LLM 呼び出し、入力 52 万+出力 66 万トークン、16 並列で 83 分 |
| 統合(MS 準拠) | 7,144 → 4,377 | (名前, 型)完全一致。ここから関係を持たない孤立ノード 1,441 を落として 2,936 ノード / 3,553 エッジ |
| 連結成分 | 162 / 最大 2,456(84%) | ほぼ 1 つの大きな塊+小さな島が 161。島は「1 本の教材にしか出てこない固有名詞群」 |
| Leiden L0 | 196 コミュニティ(modularity 0.88) | 15 ノード以上は 33、3 ノード以下が 128。教材ごとに強く分断された構造(modularity が高い=塊同士の橋が少ない) |
| Leiden L1 | 262 | L0 の大きな塊 33 個を再分割。要約対象(3 ノード以上)は L0 100 + L1 247 = 347 |
| 要約 | 347 レポート | 入力 42 万+出力 13 万トークン。葉(L1)→根(L0)の順で、根は子レポートも読んで書く |
公式実装は「名前とタイプが完全一致したら同一エンティティ」とみなす。前回の記事で「表記ゆれの名寄せはしない」と書いたが、実際にどれだけ漏れるかを数えた。
分裂の主犯は表記ゆれ(HuggingFace/Hugging Face、KV キャッシュ/KVキャッシュ、GGUF/gguf)よりも型の揺れだった。
同じ「MCP」がある unit では「技術・手法」、別の unit では「ツール・製品・モデル」と判定される。LLM 抽出の型付けは文脈依存なので、これは避けられない。
統合キーから型を外す(名前だけで束ね、型は多数決で決める)のが現実的な改善で、次にやるならここから直す。
| ID | ノード | 教材 | LLM が付けた題 | 中心ノード | 主なカテゴリ |
|---|---|---|---|---|---|
| L0-0 | 185 | 29 | ローカル特許RAGと低コストAIバッチ処理基盤 | Ollama, ChromaDB, nomic-embed-text, HBOパターン | AI技術教材 13 / IP×AI 5 |
| L0-1 | 161 | 15 | LLM推論のメモリ律速と最適化技術群 | vLLM, KVキャッシュ, DGX Spark, 量子化 | AI技術教材 9 |
| L0-2 | 155 | 16 | Transformer基盤の学習・推論最適化と実装エコシステム | Transformer, LoRA, ViT | AI技術教材 9 |
| L0-3 | 151 | 32 | AnthropicのAIガバナンスと知財リスクの全体像 | Anthropic, Claude, Bartz 訴訟 | 予習・大局観 6 / IP×AI 5 |
| L0-4 | 134 | 18 | AI時代の知財実務変革と制度・リスクの再設計 | 本人確認, ID.me, プロンプト | IP×AI 8 / 予習 6 |
| L0-5 | 113 | 20 | AIコーディングツールの環境構築と安全運用 | Claude Code, Codex, OpenAI | 環境構築 5 |
| L0-6 | 111 | 29 | AIエージェントと知財実務の融合体系 | 知財ビジネスモデル図鑑, 高峰譲吉, 特許DBビュー, Orchestrator-Worker | IP×AI 13 / 事例集 8 |
| L0-7 | 105 | 27 | AI知財変革と『女工哀史』の構造比喩 | 生成AI, MCP, エージェント | IP×AI 8 / 予習 7 |
| L0-8 | 104 | 37 | AI×知財もくもく会の運営と戦略的教材体系 | AI × 知財 もくもく会, 知財実務オンライン | IP×AI 9 / 予習 7 |
| L0-9 | 102 | 28 | GraphRAGとRAG手法の技術比較と知財業務への応用 | GraphRAG, LLM, RAG, From Local to Global | AI技術教材 14 |
| L0-10 | 101 | 24 | AIエージェント駆動の知財業務基盤と要件管理 | AIエージェント, SQLite, FastAPI | AI技術教材 7 / IP×AI 6 |
| L0-11 | 94 | 19 | Git基盤のAIモデル共有エコシステム | Hugging Face, Git, GitHub | AI技術教材 5 / 国家戦略 4 |
| L0-12 | 85 | 15 | Kimi K3の技術系譜と地政学的知財紛争 | Kimi K3, Moonshot AI, 杨植麟 | AI技術教材 4 / 事例集 4 |
| L0-13 | 76 | 16 | ハイブリッド検索と知財業務の最適化設計 | RRF 融合検索, ティアードアーキテクチャ | AI技術教材 9 |
| L0-14 | 65 | 8 | 職務発明規程のAI業務フロー再設計と法的基盤 | 職務発明規程, 特許庁, 状態機械, 権限行列 | IP×AI 4 |
| L0-15 | 64 | 13 | AI時代の知財戦略再定義と社会変革 | 特許, Machines of Loving Grace, 目的-手段ロジックツリー | 予習 5 / 事例集 4 |
題はすべて LLM が付けたもので、人手は入れていない。サイトのカテゴリ(環境構築/AI技術教材/IP × AI…)とは違う切り口で塊ができているのが面白い。 たとえば L0-6 は「AI エージェント設計パターン」と「高峰譲吉の日米特許戦略」と「知財ビジネスモデル図鑑」が同じ塊にいる。人間の目には別カテゴリだが、 グラフ上では「制度上の位置取り」というエンティティで橋がかかっていた。コミュニティ要約は、サイト運営者が意識していなかった教材の隣接関係を出してくる。これは Global Search の副産物として最も実用的だった。
原論文の「global sensemaking」に相当する問いを 5 つ、対照として「1 本の教材に答えがある」問いを 2 つ用意した。 GraphRAG 側は根レベル要約 100 本への map-reduce、naive 側は埋め込み類似の上位 8 チャンク。生成モデルは同じ。
| 問い | 型 | Graph 秒 | Graph 入力 tok | naive 秒 | naive 入力 tok | |
|---|---|---|---|---|---|---|
| q1 | 教材群を貫く主要テーマは何か。テーマごとに根拠教材を挙げよ | global | 214 | 39,823 | 127 | 3,637 |
| q2 | 知財実務で AI が最も効く工程はどこだと主張しているか | global | 208 | 39,271 | 111 | 4,902 |
| q3 | 繰り返し登場するツール・モデルは何で、どう位置づけられているか | global | 212 | 40,689 | 90 | 3,463 |
| q4 | 教材群が扱っていない・手薄な領域はどこか | global | 191 | 40,382 | 90 | 4,000 |
| q5 | 初めて AI 導入を任された人が読む順番を組むなら | global | 183 | 40,037 | 90 | 4,780 |
| q6 | LLM-jp-4 を Mac mini の Ollama に導入する手順と注意点 | local | 48 | 37,464 | 87 | 5,889 |
| q7 | 特許 RAG の教材で、請求項のチャンク分割の注意点は何か | local | 38 | 37,500 | 33 | 6,877 |
Global Search は問いによらず約 4 万トークンを読む(要約 100 本を全部舐めるため)。naive は 4〜7 千。問い合わせ 1 回あたり約 8〜10 倍。 q6・q7 で Graph が速いのは、map 段で「言えることなし(score 0)」が大半になり reduce の入力が空に近くなったから——つまり速いのではなく答えられていない。
どちらが「良い」かは読む人による。Graph は網羅的だが各項目は浅く、naive は狭いが引用が正確で具体的。 原論文が包括性・多様性と直接性を対立軸に置いた理由が、そのまま出た。
「無いものを問う」問いは、全体を見ないと答えられない。ここが GraphRAG の存在理由で、サイト運営者として最も実用的な答えが出た問いでもあった(商標・意匠・著作権が手薄なのは事実である)。
コミュニティ要約には「LLM-jp-4 は NII の国産 LLM で Ollama で動く」までは入っているが、convert_hf_to_gguf.py のような手順の粒度は要約の時点で落ちている。
Han et al. が "Global search retrieves high-level community summaries, which can lose fine-grained evidence" と書いたそのままで、手順・数値・条文のような細部は要約を経由した時点で失われる。
公式実装に Local Search と DRIFT が別途ある理由がここにある。
原論文と同じ 3 指標(包括性・多様性・直接性)を LLM に一対比較で判定させた。Han et al. の「提示順で判定が変わる」指摘を確かめるため、 Graph を回答 1 にした版と、naive を回答 1 にした版の両方を判定させている。
| 型 | 包括性 | 多様性 | 直接性 | |
|---|---|---|---|---|
| q1 主要テーマ | global | 反転 Graph→naive | naive | 反転 Graph→naive |
| q2 効く工程 | global | Graph | Graph | Graph |
| q3 頻出ツール | global | Graph | Graph | Graph |
| q4 手薄な領域 | global | Graph | Graph | Graph |
| q5 読む順番 | global | Graph | Graph | naive |
| q6 導入手順 | local | naive | naive | naive |
| q7 チャンク分割 | local | naive | naive | naive |
「Graph」「naive」は両方の提示順で同じ判定だったもの。全体俯瞰の q2〜q5 では包括性・多様性とも Graph が 4/4、特定の q6・q7 では naive が全指標で勝ち、いずれも順序に依存しなかった。 原論文の結果(包括性・多様性で Graph、直接性で naive)と Han et al. の結果(局所 QA では RAG)が、7 問の範囲で両方とも出た。
| 段 | LLM 呼出 | 入力 tok | 出力 tok | 時間 |
|---|---|---|---|---|
| 抽出(②) | 511 | 520,607 | 655,304 | 83 分(16 並列) |
| 要約(⑤) | 347 | 423,756 | 131,149 | 推定 20〜30 分(夜間に Mac がスリープし壁時計は不正確) |
| 索引 合計 | 858 | 944,363 | 786,453 | コーパス 38.8 万 tok の 4.5 倍を LLM に通した |
| naive の索引(埋め込み 511 本) | — | — | — | 30 秒(Ollama nomic-embed-text) |
| Global Search 1 問 | ≈10 | ≈40,000 | 4,000〜6,500 | 180〜215 秒 |
| naive 1 問 | 1 | 3,500〜7,000 | 1,000〜1,400 | 33〜127 秒 |
Han et al. の「構築時間 41 倍」に対し、ここでは 83 分 vs 30 秒で 約 170 倍。ローカル GPU なので金額はゼロだが、API 従量で見積もると 173 万トークン × (入力 $3 / 出力 $15 per 1M 程度の価格帯)≈ $15 前後を、104 本のサイトの索引 1 回に払う計算になる。 問い合わせは 1 回 4 万トークンなので、100 問で索引と同じ額に届く。
原論文が「根レベル要約 C0 は原文の 2〜3%」と書いたのは問い合わせ時のコンテキスト量の話で、索引時のコストとは別。ここを混同すると「GraphRAG は安い」という逆の印象になる。 索引を LLM で作る限り、Microsoft 自身が LazyGraphRAG で「索引コストをベクトル RAG 並みに」した理由は数字で腹落ちする。
| 主張 | 出典 | この実験 |
|---|---|---|
| 全体俯瞰の問いで包括性・多様性が naive RAG を上回る | Edge et al. 2024 | 再現 q2〜q5 で 4/4(順序不変) |
| 直接性は naive RAG が上 | 同上 | 部分再現 q5 で naive、q2〜q4 は Graph。問いが「論点を整理せよ」型だと Graph の構造化が直接性でも評価された |
| 局所的な QA では RAG が上、Global Search は細部を失う | Han et al. 2025 | 再現 q6 は回答不能、q7 も naive |
| LLM 審判は提示順で判定が変わる | Han et al. 2025 | 再現 7 問中 1 問(q1)で 3 指標中 2 指標が反転 |
| 索引コストが高い | Han et al. 2025 / LazyGraphRAG | 再現 埋め込みの約 170 倍の時間、コーパスの 4.5 倍のトークン |
| ドメイン向けスキーマ(型)を設計すると抽出が良くなる | Scaffidi et al. 2025 | 未検証 8 型で回したが、デフォルト型との比較はしていない |
| 同一名・同一型で統合(名寄せなし) | 公式 dataflow | 問題を確認 型の揺れで 219 名が分裂、緩い正規化で +326 統合可 |
| 出典を付けると empowerment が上がる | Edge et al. 2024 | 条件付き 照合不能な ID は逆効果。題名・URL で出す必要 |
そして「このサイトに GraphRAG は要るか」への答えは、問い合わせ用途では要らない、索引の副産物は要る。 104 本の教材に対して読者が投げる問いの大半は local で、naive RAG で足りる。一方、347 本のコミュニティ要約と「手薄な領域」の答えは、 サイト運営者にとって教材群の棚卸しとしてそのまま使える。用途を「検索」ではなく「棚卸し」に置くと、索引コストは年に数回払えばよいものになる。
unsloth/Qwen3.8-27B-NVFP4 を vLLM(DGX Spark GB10、max_model_len 65,536、thinking 無効)で OpenAI 互換 API として提供。抽出は temperature 0、max_tokens 1,500。16 並列で 1 unit あたり実効 ≈10 秒nomic-embed-text。511 本で 30 秒