改進社區檢測和檢索策略大幅提升GraphRAG性能新框架-ArchRAG 原創
給定一個問題Q,基于圖的RAG的關鍵思想是從圖中檢索相關信息(例如,節點、子圖或文本信息),將其與Q一起作為提示,然后輸入到LLM中。如下圖:
因此,現有工作的工作流主要包括兩個階段:
(1) 離線索引:從給定語料庫D構建知識圖譜G(V,E),其中每個頂點代表一個實體,每條邊表示兩個實體之間的關系,并基于知識圖譜構建索引。
(2) 在線檢索:使用索引從知識圖譜中檢索相關信息(例如節點、子圖或文本信息),并將檢索到的信息提供給大型語言模型以提高響應的準確性。
基于KG的RAG代表性的工作有GraphRAG等,如下表總結:
基于KG的RAG代表性的工作
傳統的GraphRAG影響性能的主要因素歸結如下表:
問題 | 描述 |
社區質量低 | 使用Leiden算法檢測社區,僅依賴圖結構,忽略節點和邊的語義信息,導致社區包含不同主題,摘要質量差,影響性能。 |
兼容性有限 | 全局搜索和局部搜索策略僅在單一粒度上檢索圖元素,無法同時處理抽象和具體問題,限制現實世界場景適用性。 |
生成成本高 | 在抽象問題上表現良好,但分析大量社區耗時且資源密集。例如,在Multihop-RAG數據集檢測到2,984個社區,回答100個問題需約$650和1.06億個token。 |
實體識別不準確 | HippoRAG等方法在實體識別方面存在問題,5.0%的HotpotQA問題未能檢測到實體,15.8%的實體識別質量較低,導致不相關檢索結果。 |
檢索過程不準確 | 基于圖的RAG方法在搜索中常返回不相關內容,例如GraphRAG局部搜索時檢索結果不準確,導致性能下降。 |
因此,ArchRAG改進的方向主要可以集中在通過改進社區檢測和檢索策略來解決這些問題。下面來看看,僅供參考。
ArchRAG方法
同樣的,ArchRAG分為兩個階段:離線索引(重點)和在線檢索。如下圖:
ArchRAG框架
離線索引階段
- KG構建:與GraphRAG一樣,使用LLM從文本語料庫中提取實體和關系,形成子圖并合并成一個完整的知識圖譜(KG)。
- 層次化聚類:采用基于LLM的層次化聚類方法,檢測出高質量的屬性社區。這些社區不僅是節點密集連接的集合,還共享相似的語義主題。算法過程如下(重點看下該算法過程):
基于LLM的層次化聚類方法算法流程
- C-HNSW索引構建:構建一個層次化的索引結構,用于高效檢索不同層次的ACs和實體。
C-HNSW索引構建算法
C-HNSW索引構建算法流程
在線檢索階段
層次化搜索:在C-HNSW索引上進行高效的層次化搜索,檢索出與查詢相關的ACs和實體。
層次化搜索算法過程
- 自適應過濾生成:利用LLM的內在推理能力來提取和分析相關信息,從檢索到的信息中提取最相關的部分,生成最終的答案。
實驗性能
ArchRAG在特定QA任務上的表現優于現有的圖基RAG方法,特別是在準確性方面提高了10%。
ArchRAG在令牌使用上比GraphRAG節省了高達250倍,顯著提高了查詢效率。
通過結合KNN或CODICIL與加權Leiden算法,提高了社區檢測的質量。
回答示例:
參考文獻:paper:ArchRAG: Attributed Community-based Hierarchical Retrieval-Augmented Generation [Technical Report],https://arxiv.org/pdf/2502.09891v2
code:https://github.com/sam234990/ArchRAG
本文轉載自??大模型自然語言處理?? 作者:余俊暉
