GraphRAG
3 秒看懂
GraphRAG = 先用 LLM 從文件中抽取實體/關係、建置知識圖譜 → 對圖做社群檢測並生成層級摘要 → 查詢時用圖結構 + 社群摘要檢索回答問題。 它解決的核心痛點是:傳統 RAG 擅長”區域性事實檢索”,但面對”這批文件整體說了什麼”的全域性性問題時束手無策。
3 分鐘產業解釋
為什麼需要 GraphRAG?
傳統 RAG(Retrieval-Augmented Generation)的工作流是:把文件切成 chunk → 向量化 → 相似度檢索 → 餵給 LLM 生成回答。這套流程對”某篇文件裡某個具體事實”型問題非常有效,但有一個根本侷限——
使用者問一個需要跨越數百上千個 chunk 綜合理解的全域性問題時,傳統 RAG 不知道該檢索哪些 chunk。
例如:
- “這份 200 篇專利文件合集裡,核心技術趨勢是什麼?”
- “這個組織的主要派系和權力結構是怎樣的?”
- “這兩百段播客對話中,反覆出現的爭議主題有哪些?”
這些問題的”答案”不存在於任何一個單獨的 chunk 中,而是需要對整個語料庫做歸納推論。GraphRAG 的核心洞察是:用圖結構來顯式建模實體間的關係網路,再用圖的社群結構來捕獲”主題聚類”,從而為全域性性查詢提供有效的檢索錨點。
一句話價值主張
GraphRAG 把非結構化文本 → 結構化知識圖譜 → 層級化摘要索引,使 LLM 能回答傳統 RAG 無法回答的全域性性、綜合性問題。
15 分鐘專家深入
起源與背景
GraphRAG 的核心方法論由 微軟研究院(Microsoft Research) 的 Darren Edge 等人於 2024 年 發表,論文標題為 “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”,同時微軟在 GitHub 上開源了參考實現(microsoft/graphrag)。
核心流程概覽
GraphRAG 的索引(Indexing)和查詢(Query)兩個階段:
索引階段(離線、計算密集):
- 文件分塊(Chunking):將源文件切分為文本塊
- 實體與關係抽取:用 LLM 從每個 chunk 中提取實體(人名、組織、概念等)及其關係,輸出結構化的三元組
- 知識圖譜建置:將所有三元組合併為一張知識圖譜
- 社群檢測:對圖執行 Leiden 演算法,得到層級化社區劃分
- 社群摘要生成:用 LLM 為每個社群生成摘要報告(community report),描述該社群中的核心實體、關係和主題
查詢階段(線上):
- Local Search:利用圖結構做增強檢索,找到與問題相關的實體/關係/社群,結合原始 chunk 生成回答
- Global Search:從社群摘要層級結構出發,LLM 對各層級社群報告做 map-reduce 式的綜合推論,生成全域性性回答
為什麼是圖?為什麼是社群檢測?
知識圖譜的本質優勢在於關係的顯式表達——向量檢索只捕獲語義相似性,圖則能捕獲”A 與 B 合作 → B 資助了 C → C 與 A 存在利益衝突”這種多跳關係鏈。
社群檢測(Leiden 演算法是對 Louvain 的改進)的核心作用是:自動將緊密關聯的實體聚類為”主題群組”,每個群組對應一個語義上自洽的知識子集。層級化社群結構意味著粗粒度到細粒度的摘要可以按需使用。
技術原理(最深)
整體架構(ASCII)
┌─────────────────────────────────────────────────────────┐
│ INDEXING (離線) │
│ │
│ ┌──────────┐ ┌──────────────┐ ┌───────────────┐ │
│ │ 文件分塊 │───→│ LLM 實體/關係 │───→│ 知識圖譜 G │ │
│ │ Chunking │ │ 抽取 │ │ (V:實體,E:關係)│ │
│ └──────────┘ └──────────────┘ └───────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Leiden 社群檢測 │ │
│ │ (層級化劃分) │ │
│ └────────┬─────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ LLM 生成社群摘要 │ │
│ │ Community Reports │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ QUERY (線上) │
│ │
│ ┌────────────┐ ┌─────────────┐ │
│ │ Local Search│ │ Global Search│ │
│ │ │ │ │ │
│ │ 圖遍歷增強 │ │ 社群摘要層級 │ │
│ │ 檢索+chunk │ │ map-reduce │ │
│ │ → 生成回答 │ │ → 生成回答 │ │
│ └────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
關鍵步驟技術細節
1. 實體/關係抽取(Entity & Relation Extraction)
- 使用 LLM(原始論文實驗用 GPT-4 系列)對每個文本塊做結構化抽取
- Prompt 模板要求 LLM 輸出實體名稱、型別、描述,以及實體間的關係描述
- 同一實體在不同 chunk 中被多次提取後需做實體消歧/合併(Entity Resolution),合併後的實體描述也會融合
- 關係邊帶有多條屬性:description 列表、weight(出現頻次)等
關鍵成本因素:這一步是 GraphRAG 索引成本高的主因——每個 chunk 都需要一次或多次 LLM 呼叫。對大規模語料庫,索引階段的 token 消耗可能是查詢階段的數個數量級以上。
2. 社群檢測(Community Detection)
- 採用 Leiden 演算法(Traag et al., 2019),是 Louvain 演算法的改進版本,能保證社群內部連通性
- Leiden 輸出層級化(hierarchical) 的社群結構:最頂層是少數幾個大社群,逐層細分到底層的小社群
- 社群層級的深度和每層社群數量取決於圖的規模和結構
3. 社群摘要(Community Reports)
- 對每個社群中的實體和關係,LLM 生成一份結構化的摘要報告
- 報告內容包括:社群主題、核心實體列表、關鍵關係、重要發現
- 層級策略:底層社群摘要更細粒度(特定子話題),頂層社群摘要更宏觀(大主題域)
4. Global Search 機制
這是 GraphRAG 最獨特的部分:
使用者全域性性問題
│
▼
┌─────────────────────┐
│ 選擇社群摘要層級 │
│ (中間層 or 多層取樣) │
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ MAP 階段: │
│ 對每個社群摘要, │
│ LLM 生成區域性回答 │
│ + 相關性評分 │
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ 過濾: 丟棄低相關性 │
│ 的區域性回答 │
└─────────┬───────────┘
│
▼
┌─────────────────────┐
│ REDUCE 階段: │
│ LLM 綜合所有區域性回答 │
│ 生成全域性性最終回答 │
└─────────────────────┘
- Map 階段:將使用者問題分別與每個社群摘要配對,LLM 生成”該社群視角下的區域性回答”並評分
- Reduce 階段:將通過閾值篩選的區域性回答彙總,LLM 做最終綜合生成
5. Local Search 機制
- 從與問題相關的實體出發,沿圖結構做鄰域擴充套件
- 收集相關的實體描述、關係描述、社群報告、原始文本 chunk
- 將這些上下文拼接後交給 LLM 生成回答
- 本質上是圖增強的 RAG,比純向量檢索多了結構化關係資訊
成本結構定性分析
| 環節 | 主要成本來源 | 量級特徵 |
|---|---|---|
| 實體/關係抽取 | LLM token(每個 chunk 多次呼叫) | 索引成本的主要組成部分,遠高於傳統 RAG |
| 實體消歧合併 | 計算 + LLM(歧義情況) | 取決於實體重疊度 |
| 社群摘要生成 | LLM token(每個社群一次) | 隨社群數量線性增長 |
| 查詢(Local) | LLM token(少次呼叫) | 與傳統 RAG 相當 |
| 查詢(Global) | LLM token(map-reduce 多次呼叫) | 高於 Local Search,隨社群數量增長 |
技術演進史
| 時間 | 事件 | 意義 |
|---|---|---|
| 2020 | Lewis et al. 發表 RAG 論文 | ”檢索增強生成”範式確立 |
| 2020–2023 | 知識圖譜 + NLP 研究持續 | KGQA、KBQA 等方向積累圖+語言模型融合經驗 |
| 2023 | RAG 在工業界大規模落地 | 向量資料庫(Pinecone、Weaviate 等)繁榮;暴露全域性性問題短板 |
| 2024 Q2 | 微軟研究院發表 GraphRAG 論文 | 提出用知識圖譜+社群檢測+層級摘要解決全域性 RAG 問題 |
| 2024 Q2–Q3 | 微軟開源 microsoft/graphrag | 社群快速跟進,GitHub 星標快速增長 |
| 2024 H2 | 社群衍生方案湧現 | LightRAG、nano-graphrag、LazyGraphRAG 等輕量化/最佳化變體出現 |
| 2024–2025 | LazyGraphRAG(微軟) | 微軟後續提出 LazyGraphRAG,大幅降低索引成本,按需抽取而非全量預索引 |
技術路線對比
GraphRAG vs. 傳統 RAG vs. 知識圖譜問答
| 維度 | 傳統 RAG(向量檢索) | 知識圖譜 QA(KBQA) | GraphRAG |
|---|---|---|---|
| 知識表示 | 向量嵌入(隱式語義) | 結構化三元組(顯式符號) | 圖 + 文本摘要(混合) |
| 索引成本 | 低(embedding 計算) | 高(需建置/維護 KG) | 很高(LLM 抽取+摘要) |
| 全域性問題能力 | 弱(依賴檢索命中) | 中(受限於圖覆蓋度) | 強(社群摘要 map-reduce) |
| 區域性事實能力 | 強 | 強 | 強 |
| 可解釋性 | 低(黑盒相似度) | 高(路徑可追溯) | 中高(社群報告可讀) |
| 增量更新 | 容易(追加 embedding) | 中等 | 複雜(需重新社群檢測/摘要) |
| 典型查詢延遲 | 低 | 中 | 中–高(Global 多輪 LLM 呼叫) |
| 適用場景 | 精確事實檢索 | 結構化領域知識 | 大規模非結構化語料的全域性理解 |
GraphRAG 變體對比
| 變體 | 核心改進 | 索引成本 | 查詢質量 |
|---|---|---|---|
| GraphRAG(原版) | 全量預索引 + 社群摘要 | 很高 | 全域性問題表現最佳 |
| LazyGraphRAG | 延遲抽取,按需建置輕量圖結構 | 大幅降低 | 全域性能力有取捨,區域性能力保持 |
| LightRAG / nano-graphrag | 社群實現的輕量化最佳化 | 降低 | 接近原版 |
上下游
上游(GraphRAG 依賴什麼)
| 環節 | 關鍵依賴 | 說明 |
|---|---|---|
| LLM 推論 | GPT-4 / GPT-4o / 開源替代 | 實體抽取、摘要生成、查詢回答均依賴 LLM |
| 文件處理 | 文本分塊、OCR、PDF 解析 | 源資料質量直接影響抽取質量 |
| 圖演算法庫 | NetworkX / graph-tool | 圖建置與社群檢測 |
| Leiden 演算法實現 | leidenalg (igraph) | 社群檢測核心 |
| 向量模型(可選) | text-embedding 模型 | Local Search 中的語義匹配 |
下游(GraphRAG 產出什麼)
| 產出 | 消費方 | 說明 |
|---|---|---|
| 全域性性摘要回答 | 終端使用者 / 分析師 | 最終價值交付 |
| 知識圖譜 | 視覺化、其他 AI 應用 | 索引的副產品,本身有獨立價值 |
| 社群層級結構 | 知識管理、主題分析 | 自動生成的主題分類體系 |
| 結構化實體/關係 | 知識庫、搜尋引擎增強 | 可匯入傳統 KG 系統 |
關鍵指標
| 指標 | 說明 | 參考量級 |
|---|---|---|
| Comprehensiveness(全面性) | 回答是否覆蓋問題各方面 | GraphRAG 顯著優於 naive RAG(論文人工評估) |
| Diversity(多樣性) | 回答是否包含多角度資訊 | GraphRAG 顯著優於 naive RAG |
| 索引 token 消耗 | 建置圖譜+摘要的總 LLM token | 遠高於傳統 RAG;定性:對萬級 chunk 語料可達數百萬 token |
| 查詢延遲(Global) | 全域性查詢端到端時間 | 受社群數量和 LLM 延遲影響,通常數十秒級 |
| 圖規模 | 實體數/關係數 | 取決於語料規模和 LLM 抽取粒度 |
| 社群數量 | Leiden 輸出的社群總數 | 取決於圖結構和解析度引數 |
注:原始論文中報告的 Comprehensiveness 和 Diversity 勝率資料來自人工評估(LLM-as-judge + 人工標註),實驗資料集為播客轉錄和新聞語料,具體數字可參見原論文 Table/Figure,此處不編造精確百分比。
供需與市場資料
需求側驅動力
| 驅動力 | 說明 |
|---|---|
| 企業知識管理 | 大量內部文件、報告、會議記錄需要全域性性理解 |
| 情報分析 | 金融、安全、法律領域的多源資訊綜合分析 |
| 學術文獻綜述 | 跨論文主題歸納 |
| 合規審計 | 需要理解大規模文件集合的全貌 |
供給側格局
| 層次 | 玩家 | 說明 |
|---|---|---|
| 開源架構 | 微軟 graphrag、LlamaIndex(整合 GraphRAG)、LangChain 生態 | 開源主導,微軟為核心推動者 |
| 雲端服務 | Azure(與 OpenAI 生態整合)、各 AI 平台 | 原生整合尚在早期 |
| 垂直方案 | 各行業 RAG 平台提供商 | 將 GraphRAG 作為高階 RAG 模式之一 |
成本敏感性
GraphRAG 的核心商業挑戰在於索引成本。對大規模語料庫(百萬級 chunk),全量預索引的 LLM token 消耗可能達到數千萬甚至更高量級,這使得索引成本可能遠超查詢成本。LazyGraphRAG 等輕量化方案正是為解決這一問題而生。
代表公司與資本對映
| 公司/組織 | 角色 | 與 GraphRAG 的關係 |
|---|---|---|
| Microsoft | 方法論提出者、開源維護者 | 發表論文、開源 graphrag 庫、Azure AI 整合 |
| OpenAI | 上游 LLM 提供 | GPT-4 系列是論文實驗和社群實踐的主力模型 |
| LlamaIndex | 架構整合 | 將 GraphRAG 能力整合到 LlamaIndex 生態 |
| LangChain | 架構整合 | 支援 GraphRAG 風格的編排 |
| Neo4j | 圖資料庫廠商 | 提供圖儲存後端,推廣 GraphRAG + Neo4j 方案 |
| 各向量資料庫廠商 | Pinecone / Weaviate / Milvus 等 | 傳統 RAG 基礎設施,可能面臨 GraphRAG 帶來的架構演進 |
投資邏輯
看多邏輯
- RAG 進化的必經之路:傳統 RAG 的天花板已被廣泛感知,GraphRAG 代表了”結構化知識增強 RAG”的重要方向
- 微軟深度背書:從論文到開源到 Azure 生態,微軟投入了實質性資源
- 企業知識管理萬億市場:GraphRAG 直擊企業最大痛點之一
- 開源生態快速膨脹:GitHub 社群活躍度高,生態建設加速
看空/風險邏輯
- 索引成本過高:全量預索引的 LLM token 消耗是商業落地的最大障礙,LazyGraphRAG 能否有效解決尚待驗證
- 長上下文視窗的替代威脅:隨著 LLM 上下文視窗不斷擴大(128K→1M+ tokens),“把所有文件塞進上下文”可能在某些場景下繞過 RAG 的需要,但視窗擴大不等於模型能有效利用長上下文中的全域性資訊
- 實體抽取質量瓶頸:LLM 抽取的實體/關係質量參差不齊,圖質量直接影響下游效果
- 增量更新困難:文件變更後可能需要大幅重建索引,生產環境中的維護成本高
常見誤讀糾偏
誤讀 1:“GraphRAG 可以替代傳統 RAG”
糾偏:GraphRAG 和傳統 RAG 不是替代關係,而是互補關係。
- 傳統 RAG 擅長:精確的事實檢索(“張三的職位是什麼?”)
- GraphRAG 擅長:全域性性綜合問題(“這批文件的核心主題和趨勢是什麼?”)
- 在實際系統中,Local Search 本身就融合了圖結構檢索和傳統 chunk 檢索,兩者是結合使用的
- GraphRAG 的獨特價值主要體現在 Global Search 能力上
誤讀 2:“GraphRAG 就是把知識圖譜和 RAG 簡單拼接”
糾偏:GraphRAG 的創新不在於”用知識圖譜”本身(這個想法早已有之),而在於:
- 用 LLM 做端到端的實體抽取,無需預定義 schema(傳統 KG 建置最痛苦的環節)
- 用 Leiden 社群檢測做自動主題聚類,不需要人工標註
- 用層級化社群摘要 + map-reduce 做全域性查詢,這是一個全新的檢索範式
- 圖譜建置、社群檢測、摘要生成、查詢策略是協同設計的整體方案
誤讀 3:“GraphRAG 的 Global Search 就是遍歷所有 chunk 做 RAG”
糾偏:Global Search 並不直接操作原始 chunk,而是操作社群摘要。這是關鍵區別:
- 社群摘要是 LLM 對實體/關係子圖的預先歸納
- Map-reduce 是在摘要層面做的,而不是在 chunk 層面
- 這使得 Global Search 的 token 消耗與 chunk 數量不是線性關係(而是與社群數量相關),但社群數量遠小於 chunk 數量
學習路徑
入門(1–2 小時)
- 閱讀微軟研究院的 GraphRAG 部落格文章(非論文,更易讀)
- 理解傳統 RAG 的侷限性,明確 GraphRAG 要解決的問題
- 在 GitHub 上瀏覽
microsoft/graphrag的 README 和快速入門
進階(3–5 小時)
- 閱讀原論文:“From Local to Global: A Graph RAG Approach to Query-Focused Summarization”(Darren Edge et al., 2024)
- 用一個小資料集(如幾篇新聞文章)跑通 GraphRAG 索引 + 查詢的完整流程
- 對比同一問題在傳統 RAG 和 GraphRAG 上的回答質量
深入(1–2 周)
- 研究 Leiden 演算法原理,理解社群檢測的數學基礎
- 閱讀 LazyGraphRAG 的設計思路,理解成本最佳化方向
- 在企業級資料上做 PoC,評估索引成本、查詢質量、增量維護的可行性
- 探索 GraphRAG 與其他技術的結合:GraphRAG + Agent、GraphRAG + 多模態等
一句話總結
GraphRAG 通過”LLM 抽取 → 知識圖譜 → 社群檢測 → 層級摘要 → Map-Reduce 全域性查詢”的全鏈路設計,首次系統性地解決了傳統 RAG 無法回答全域性性、綜合性問題的瓶頸,代價是顯著更高的索引成本。
延伸閱讀與來源
| 來源 | 說明 |
|---|---|
| 原論文 | Edge et al., “From Local to Global: A Graph RAG Approach to Query-Focused Summarization”, Microsoft Research, 2024 |
| 開源倉庫 | github.com/microsoft/graphrag |
| 微軟研究院部落格 | 搜尋 “GraphRAG Microsoft Research blog” |
| Leiden 演算法 | Traag, Waltman & van Eck, “From Louvain to Leiden: guaranteeing well-connected communities”, Scientific Reports, 2019 |
| LazyGraphRAG | 微軟研究院後續工作,關注索引成本最佳化 |
| LlamaIndex GraphRAG 文件 | LlamaIndex 官方文件中的 Graph RAG 整合說明 |
| Neo4j GenAI 生態 | Neo4j 官方關於 GraphRAG 的技術部落格和方案文件 |
免責宣告:本頁具體數字來源於公開論文與開源專案的定性認知,未標註精確數字的部分為定性表述。投資相關內容僅供研究參考,不構成任何投資建議。