跳轉到

重點摘要:GraphRAG:打造更好的 AI 系統(完整教學)

TL;DR

GraphRAG 用知識圖譜跨文件推理,解決標準 RAG 在規模化與全局性問題上的盲點。

核心問題

標準向量 RAG 把文件切成獨立 chunk,每塊彼此孤立,無法跨文件綜合或回答「整個資料集的主題是什麼」這類全局問題。且資料量越大,檢索準確度越掉。本文透過 AI 著作權爭議這個分散、複雜的主題,示範如何建構 GraphRAG。

關鍵發現 / 數據

  • 一項研究指出向量檢索準確度在約 10,000 頁 開始衰退,到 100,000 頁時準確度下降 12%
  • 資料量增加會使 embedding 空間重疊變多,更難檢索到正確 chunk。
  • 實作以 SerpAPI 抓取 Google News,過濾付費牆/反爬後僅成功取得 13 篇文章
  • 定義了 7 種實體類型、8 種關係類型(ORGANIZATION、LEGAL_CASE、DEFENDANT_IN 等)。
  • 採 Microsoft GraphRAG 法:社群偵測(hierarchical Leiden)+ 社群摘要,查詢時針對摘要而非原始圖譜。

方法亮點

  • 自訂 GraphRAGExtractor:相較內建 SchemaLLMPathExtractor 會丟棄描述,此版為每個實體/關係保留 description,使社群摘要更豐富。
  • Ontology 約束 + Pydantic Literal 型別:以 function calling 強制 LLM 只能回傳合法型別,避免實體類型氾濫不一致。
  • 雙模型分工gpt-4o-mini 做抽取/摘要(便宜快),gpt-4o 做最終合成(品質優先)。
  • 兩段式查詢:先讓每個社群摘要各自獨立作答並過濾不相關者,再聚合成單一答案。

對我的研究有用嗎?

ontology 先行 + 結構化輸出(Literal 型別約束)對 KG 抽取一致性是實用的工程經驗,值得借鏡。「保留 entity/relationship 描述以增強社群摘要」這點對提升 GraphRAG 答案品質有啟發。社群偵測 + map-reduce 式查詢正是 Microsoft GraphRAG 的核心,可作為實作對照範本。

評語

適合入門的工程教學,pipeline 完整清晰;但偏 how-to、缺對照實驗,13 篇資料規模小、無量化評估,所引「12%」數據來自廠商部落格需審慎看待。