1. 背景
最近有一個很火的開源專案LightRAG,Github6.4K+星※,北郵和港大聯合出品,是一款微軟GraphRAG的優秀替代者,因此本qiang~得了空閒,讀讀論文、跑跑原始碼,遂有了這篇文章。
2. LightRAG框架
2.1 已有RAG系統的侷限性
1) 許多系統僅依賴於平面資料表示(如純文字),限制了根據文字中實體間複雜的關係來理解和檢索資訊的能力。
2) 許多系統缺乏各種實體及其關係之間保持一致所需的上下文意識,導致可能無法完全解決使用者的問題。
2.2 LightRAG的優勢
1) 引入圖結構:將圖結構引入文字索引及相關資訊檢索的環節中,圖結構可以有效表示實體及其關係,有利於上下文的連貫性與豐富性。
2) 綜合資訊檢索: 從所有文件中提取相互依賴的實體的完整上下文,以確保資訊檢索的綜合性。相對於傳統的RAG,可能只關注於Chunk後的區域性文字,缺乏全域性綜合資訊。
3) 增強檢索效率: 提高基於圖結構的知識檢索效率,以顯著減少響應時間。
4) 新資料的快速適配: 能夠快速適應新的資料更新,確保系統在動態環境中保持相關性。
5) 減少檢索開銷: 相對於GraphRAG以社群遍歷的方法,LightRAG專注於實體和關係的檢索,進而減少開銷。
2.3 LightRAG的框架
LightRAG將基於圖結構的文字索引(graph-based text indexing)無縫地整合到一個雙層檢索框架(dual-level retrieval framework)中,因此能夠提取實體間複雜的內部關係,提高響應的豐富性和連貫性。
雙層檢索策略包括低階檢索和高階檢索,其中低階檢索重點關注特定實體及其關係的準確資訊,高階檢索則包含了廣泛的主題資訊。
此外,透過將圖結構與向量表徵相結合,LightRAG促進了相關實體和關係的有效檢索,同時基於結構化的知識圖譜中相關的資訊,增強了結果的全面性。
LightRAG無需重複構建整個索引,降低了計算成本且加速了適配,而且其增量更新演算法保障了新資料的及時整合。
2.3.1 基於圖的文字索引
1) 實體及關係抽取:LightRAG先將大文字切分為小文字,然後利用LLM識別並抽取小文字中各種實體及其關係,此舉可便於建立綜合的知識圖譜,prompt示例如下:
2) 使用LLM效能分析功能生成鍵值對:使用LLM提供的效能分析函式,為每個實體及每條關係生成一個文字鍵值對(K, V),其中K是一個單詞或短語,便於高效檢索,V是一個文字段落,用於文字片段的總結
3) 去重以最佳化圖操作:透過去重函式識別併合並來自不同段落的相同實體和關係。有效地減少了與圖操作相關的開銷,透過最小化圖的大小,從而實現更高效的資料處理。
2.3.2 雙層檢索機制
1) 在細節層和抽象層分別生成查詢鍵:具體查詢以細節為導向,許精確檢索特點節點或邊相關資訊;抽象查詢更加概念化,涵蓋更廣泛的主題、摘要,其並非與特定實體關聯。
2) 雙層檢索機制:低階檢索聚焦於檢索特定實體及其屬性或關係資訊,旨在檢索圖譜中指定節點或邊的精確資訊;高階檢索處理更廣泛的主題,聚合多個相關實體和關係的資訊,為高階的概念及摘要提供洞察力。
3) 整合圖以及向量以便高效檢索:透過圖結構和向量表示,使得檢索演算法有效地利用區域性和全域性關鍵詞,簡化搜尋過程並提高結果的關聯性。具體分為如下步驟:
a. 查詢關鍵詞提取:針對給定的問題,LightRAG的檢索演算法首先分別提取區域性查詢關鍵詞和全部查詢關鍵詞
關鍵詞提取的prompt如下:
b. 關鍵詞匹配:檢索演算法使用向量資料庫來匹配區域性查詢關鍵詞與候選實體,以及全域性查詢關鍵詞與候選關係(與全域性關鍵詞關聯)
c. 增強高階關聯性: LightRAG進一步收集已檢索到的實體或關係的區域性子圖,如實體或關係的一跳鄰近節點
2.3.3 檢索增強回答生成
1) 使用已檢索資訊: 利用已檢索的資訊,包括實體名、實體描述、關係描述以及原文片段,LightRAG使用通用的LLM來生成回答。
2) 上下文整合及回答生成: 將查詢串與上下文進行整合,呼叫LLM生成答案。
2.3.4 整體過程示例
3. 實驗
3.1 資料來源
從UltraDomain基準中選取了4個資料集,分別包括農業、電腦科學、法律、混合集,每個資料集包含60W-500W個token。
3.2 問題生成
為了評估LightRAG的效能,首先透過LLM生成5個RAG使用者,且為每個使用者生成5個任務。每個使用者均具有描述資訊,詳細說明了他們的專業知識和特徵,以引發他們提出相關問題。每個使用者任務也具有描述資訊,強調其中一個使用者在於RAG互動時的潛在意圖。針對每個使用者任務的組合,LLM生成5個需要理解整個資料集的問題。因此,每個資料集共產生125個問題。
問題生成的prompt如下:
3.3 基線模型
選取的4個基線模型包括Naive RAG, RQ-RAG, HyDE, GraphRAG。
3.4評價維度及細節
實驗中,向量檢索採用nano 向量庫,LLM選擇GPT-4o-mini,每個資料集的分塊大小為1200,此外收集引數(gleaning parameter,目的在於僅透過1輪LLM無法完全提取對應的實體或關係,因此該引數旨在增加多次呼叫LLM)設定為1。
評價標準採用基於LLM的多維度比較方法,使用GPT-4o-mini針對LightRAG與每個基線的響應進行排名。主要包含如下4個維度:全面性(回答多大程度解決了問題的所有方面和細節)、多樣性(與問題相關的不同觀點,答案的多樣性和豐富性如何)、接受度(答案是否有效使讀者理解主題並做出明確判斷)、整體評價(評估前三個標準的累積評價)。
評價prompt如下:
3.5 實驗結果
3.5.1 與基線RAG方法比較
3.5.2 雙層檢索及基於圖結構的索引增強消融結果
3.5.3 具體示例研究
3.5.4 與GraphRAG的成本比較
4. 整體工作流
圖片建議放大,看的更清楚~
LightGraph的原始碼可讀性非常強,建議看官們可以基於上面這張流程圖,逐步除錯LightGraph,以瞭解其檢索和生成兩個模組的具體細節。
如果原始碼層面有問題的話,可以私信或評論進一步交流~
5.總結
一句話足矣~
本文針對開源的LightRAG論文研讀以及原理分析,包括核心模組、框架的整體工作流程等內容。
如果想免費獲取使用GPT-4o-mini的api介面,以及對原理或原始碼不清楚的看官,可私信或評論溝通。
6.參考
1) LightGraph論文地址: https://arxiv.org/pdf/2410.05779v1
2) LightGraph原始碼地址:https://github.com/HKUDS/LightRAG