第一章:基礎回顧 1.1 RAG (Retrieval-Augmented Generation) 簡介 傳統 RAG 流程 收集文本並建立索引(可能使用向量檢索或關鍵字索引)。 接收問題後從索引中檢索出最相關的文本片段。 最後由生成模型 (Generative Model) 根據檢索內容生成回答。 局限性:當問題需要跨多個文件或需要多跳推理時,傳統 RAG 容易缺少「實體關係」的全貌。 1.2 知識圖譜(Knowledge Graph)基礎 概念:由「實體 (Entities)」與「關係 (Relations/Edges)」組成的圖結構,用以表示資訊的網路關係。 優勢:對資料之間的邏輯關係能有更直觀的表現,例如人-地點-事件等的連結。 常見應用:搜尋引擎(如 Google Knowledge Graph)、企業資源管理、智慧客服等。 1.3 GraphRAG 與傳統 RAG 的差異 多跳推理:GraphRAG 更容易在圖結構中沿著多個關係節點做推理。 可解釋性:能在圖上直接追蹤為什麼會得到某個答案。 更精準上下文:傳統 RAG 容易被「相似度」誤導,而 GraphRAG 可以利用關係資訊進一步過濾。 第二章:GraphRAG 的核心原理 2.1 Multi-Hop Reasoning(多跳推理) 場景說明:例如要查詢某人在哪一年在哪個國家創辦了某公司;若文本分散在不同文件中,需要串聯多處信息才能回答。 如何實現:GraphRAG 透過圖上的邊,逐步沿著實體之間的連結找出完整資訊。 2.2 可解釋性的實現方式 可視化路徑:透過圖資料庫的視覺化工具 (如 Neo4j Bloom) 展示從問題到答案路徑上的所有實體與關係。 自動生成推理鏈:使用 LLM 或其他 NLP 方法,將推理過程用自然語言描述出來。 2.3 GraphRAG 對回答品質與上下文的影響 更豐富的上下文:不再僅依賴文字相似度,而是透過圖中「who, what, where, how」的關聯為基礎。 減少誤判:若某些文件內容互相矛盾或不相關,透過圖結構能快速剔除或標記。 圖片來源:https://neo4j.com/blog/graphrag-manifesto/ 第三章:GraphRAG 的資料處理與建構流程 3.1 前處理與索引 (Pre-processing and Indexing) 資料清理:移除重複內容、格式轉換 (如 PDF -> 文字檔)、基本斷詞等。 實體 & 關係擷取:使用 NLP 工具 (如 spaCy、Hugging Face Transformers) 或定制 LLM Prompt 來擷取。 索引與儲存:將文本片段進行向量化(矢量索引)或關鍵字索引;並記錄實體與關係對應的文本位置。 3.2 階層式群集 (Hierarchical Clustering) Leiden / Louvain 分群:依據實體之間的共同關係程度或文本相似度,形成群落 (Communities)。 應用:幫助理解哪些實體主題相關;有助於後續在回答不同領域或子領域時快速聚焦。 3.3 知識圖譜建構 (Knowledge Graph Generation) 節點與邊的落實:透過抽取出的實體(人名、地名、機構名…)作為節點,並將關係 (如「創立」、「屬於」、「發生於」) 作為邊。 圖資料庫選擇:最常見為 Neo4j,也可使用 AWS Neptune、Azure Cosmos DB (Gremlin API) 或其他開源圖資料庫。 結構維護:建議定期更新或在資料流入時動態更新。 3.4 答案生成 (Answer Generation) 的機制 圖結構檢索:依據問題分析所需實體與關係,從圖中找到候選路徑或相關節點。 文本檢索:同時從向量索引 (或全文檢索) 中找出相符段落,輔助 LLM 生成完整回答。 融合與總結:LLM 將檢索到的多重資訊組織成自然語言回答;可附帶解釋推論路徑 (Chain of Thought)。 圖片來源:https://gradientflow.substack.com/p/graphrag-design-patterns-challenges 第四章:GraphRAG 的效能評估與優化 4.1 準確率、召回率與 F1 Score 傳統問答衡量:若有標準答案,可用精確度(Precision) / 召回率(Recall) / F1。 開放式生成:可用 BLEU、ROUGE 等度量生成的文字與參考答案的相似度。 4.2 多跳推理的評估方法 Chain-of-thought 分析:檢查系統在推理過程中是否能正確串連實體關係。 人工審核:對多跳答案進行抽樣檢查。 4.3 細節優化:如何挑選關鍵節點 / 邊 社群 / 聚類分析:可優先挑選與問題上下文最密切的社群。 **信任度 (Confidence Score) **:設定若關係的抽取信度過低則忽略,以降低雜訊。 第五章:進階應用與案例分析 5.1 企業內部知識庫應用 痛點:文件分散、版本眾多、員工跨部門溝通困難。 GraphRAG 解法:搭建知識圖譜將組織結構、產品線、客戶資訊等串起,對複雜內部問題可多跳檢索。 5.2 醫療、法律與金融等領域的複雜查詢 醫療:將症狀、藥物、副作用等做知識圖譜,回答精準且可追蹤來源。 法律:根據條文之間的參照關係或判例關聯性,進行推理與解釋。 金融:跨多個報告、數據表,分析投資風險或交易關係。 5.3 多語言 / 跨文化整合 挑戰:同一家公司在中文、英文文件中的譯名不同。 對策:在圖結構中維護「同義實體」的映射關係;檢索時自動串接。 5.4 實際案例展示 案例:根據 Microsoft Research 或 Neo4j 提供的實際場景做介紹。 第六章:常見問題 實體歧義:同一名稱指不同事物(如「Apple」是公司還是水果?)。 關係抽取不完整:導致圖中重要的邊缺失。 Neo4j 連線或版本衝突:注意套件與資料庫版本的相容性。 生成答案不連貫:可能是 LLM model size / prompt 設計不足。 參考資源 Microsoft GraphRAG 介紹 Deepset — Graph RAG 實踐 Neo4j — What is GraphRAG? Microsoft Research — GraphRAG 用於私有數據檢索 Ontotext — Graph RAG 基礎 LinkedIn 技術分享 — Sparkbit GraphRAG 案例 spaCy Hugging Face Transformers Neo4j 官方文件