北郵港大聯手!LightRAG:圖結構賦能的高效檢索增強生成新范式
現有 RAG 系統在處理復雜查詢時力不從心。一方面,它們依賴扁平的數據表示,無法有效捕捉實體間的復雜關系;另一方面,缺乏上下文感知能力,導致生成的回答碎片化,難以形成連貫的邏輯。例如,當用戶詢問 “電動汽車的興起如何影響城市空氣質量和公共交通基礎設施?”,傳統 RAG 可能只是分別檢索相關信息,卻無法將這些內容有機整合,給出全面且有邏輯的答案。
來自北京郵電大學和香港大學的團隊提出 LightRAG,通過引入基于圖結構的文本索引和雙層檢索范式,顯著提升 RAG 系統的性能。
項目地址:https://github.com/HKUDS/LightRAG
1、LightRAG
為了確保RAG系統的效率和效果,LightRAG主要關注以下三個方面:
- 全面的信息檢索:索引函數
必須擅長提取全局信息,這對于提高模型回答查詢的能力至關重要。
- 高效低成本的檢索:索引的數據結構
必須支持快速且成本效益高的檢索操作,以便能夠有效地處理大量查詢。
- 快速適應數據變化:系統應該有能力迅速調整其內部結構以包含新的信息,這保證了系統能夠在不斷變化的信息環境中保持最新和相關性。
基于上述目標,LightRAG通過引入圖結構和雙層檢索范式來增強檢索增強生成,框架圖如下所示:
下面來看看LightRAG的核心模塊:
基于圖的文本索引
LightRAG 的第一個關鍵創新是基于圖的文本索引機制,主要包括圖增強實體與關系抽取和快速適應增量知識庫:
1. 圖增強實體與關系抽取
LightRAG通過將文檔分割成更小、更易管理的部分來提升檢索系統的效率。這種方法允許快速定位和訪問相關信息而無需分析整個文檔。然后利用大語言模型(LLMs)識別并提取各種實體(如名稱、日期、地點和事件)及其之間的關系。這些信息用于創建一個全面的知識圖譜,它強調了跨所有文檔集合的連接和洞察。
具體實現:
- 實體和關系抽取:利用一個提示驅動的LLM從文本數據中識別出節點(實體)和邊(關系)。例如,給定句子 "心臟病學家評估癥狀以識別潛在的心臟問題",它可以提取“心臟病學家”和“心臟病”作為實體,以及兩者間的關系 "診斷"。
- LLM配置文件生成:利用LLM為每個實體節點和關系邊生成鍵值對,其中鍵是便于檢索的單詞或短語,值是總結相關片段的文本段落,有助于后續文本生成。
- 去重優化圖操作:最后一步是對來自不同文本片段的相同實體和關系進行合并,以減少圖操作的開銷,從而提高數據處理效率。
2. 快速適應增量知識庫
當有新的文檔加入時,LightRAG能夠通過增量更新算法高效地將其整合進現有的知識圖譜中,而無需重新處理整個數據庫。新文檔經過相同的圖基索引步驟后產生新的圖數據,然后將其與原圖數據結合,即取節點集以及邊集的并集。這種方法保證了新舊信息的一致性,并減少了計算資源的消耗。
基于圖的文本索引,LightRAG獲得了兩個主要的優勢:
- 全面的信息理解:構建的圖結構允許從多跳子圖中提取全局信息,增強了LightRAG處理涉及多個文檔片段的復雜查詢的能力。
- 增強的檢索性能:由圖衍生的關鍵字數據結構被優化用于快速且精確的檢索,提供了一個比現有方法(如嵌入匹配或塊遍歷技術)更為優越的選擇。
雙層檢索范式
傳統的檢索增強型生成(RAG)系統通常依賴于將文檔分割成小塊(chunks),并通過向量嵌入的方式檢索與用戶查詢最相似的文本塊。然而,這種方法存在局限性:
- 缺乏語義關聯性:無法有效捕捉實體之間的復雜關系。
- 難以處理復雜查詢:對于涉及多個實體和關系的查詢,難以提供連貫的答案。
為了解決這些問題,LightRAG提出了雙層檢索范式,通過結合低層次和高層次的檢索策略,同時滿足對具體信息和抽象概念的需求。
- 低層次檢索(Low-Level Retrieval)
低層次檢索專注于檢索與用戶查詢相關的具體實體及其屬性或關系。其目標是提供精確的信息,適用于以下類型的查詢:
低層次檢索的優勢在于能夠深入探索特定實體的細節,但可能缺乏對全局信息的把握,因此需要與高層次檢索相結合。
具體查詢:例如,“誰寫了《傲慢與偏見》?”這類查詢需要檢索特定的實體(如作者)及其相關屬性。
檢索方式:通過知識圖譜中的節點(實體)和邊(關系)進行精確匹配,提取與查詢直接相關的詳細信息。
- 高層次檢索(High-Level Retrieval)
高層次檢索則關注更廣泛的主題和概念,而不是具體的實體。它通過聚合多個相關實體和關系的信息,提供對更高層次概念和總結的理解。其目標是:
高層次檢索的優勢在于能夠提供更廣泛的視角,但可能缺乏對具體細節的深入分析,因此需要與低層次檢索互補。
處理抽象查詢:例如,“人工智能如何影響現代教育?”這類查詢需要從多個相關實體和關系中提取信息,以提供對主題的全面理解。
檢索方式:通過知識圖譜中的全局關鍵詞和主題進行檢索,提取與查詢相關的多個實體和關系的總結信息,而不是具體的細節。
雙層檢索的實現機制
為了實現雙層檢索,LightRAG采用了以下技術策略:
- 查詢關鍵詞提取:對于給定的查詢q,算法首先會從中抽取本地查詢關鍵詞
和全局查詢關鍵詞
。本地關鍵詞通常是描述具體實體的術語,而全局關鍵詞則涵蓋了更廣泛的上下文。
- 關鍵詞匹配:使用高效的向量數據庫來匹配本地查詢關鍵詞與候選實體,以及全局查詢關鍵詞與由全局關鍵詞鏈接的關系。這一步驟利用了預先構建的知識圖譜中的結構化信息,使得匹配過程更為準確。
- 融入高階相關性:為了增強查詢的高階相關性,LightRAG還會收集已檢索圖元素局部子圖內的鄰近節點。這意味著不僅考慮直接匹配的結果,還包括與之緊密相連的一級鄰居節點和邊,從而擴大了檢索范圍并增強了答案的深度和廣度。
通過上述機制,雙層檢索范式不僅實現了相關實體和關系的高效檢索,而且通過集成來自構建的知識圖譜的相關結構信息,大大提升了檢索結果的全面性和準確性。這種方法確保了無論面對具體還是抽象的查詢,LightRAG都能有效地為用戶提供所需的信息。
檢索增強答案生成
在檢索到相關信息后,LightRAG 利用通用的 LLM 生成答案。它將檢索到的實體和關系的拼接值作為輸入,生成與用戶查詢一致的答案。這種方法不僅簡化了回答生成的過程,還保持了上下文和查詢的一致性。
2、實驗結果
數據集
基于 UltraDomain 基準測試集中的四個數據集,這些數據集來源于428本大學教科書,涵蓋了18個不同的領域,包括農業、計算機科學(CS)、法律和混合內容。每個數據集包含60萬到500萬個標記。
評估
通過整合數據集文本、利用大語言模型生成問題:
將每個數據集所有文本整合為上下文,借助大語言模型生成 5 個虛擬用戶,每個用戶對應 5 個任務。針對每個用戶任務組合,由大語言模型生成 5 個需理解整個語料庫的問題,每個數據集最終產生 125 個問題。
評估分為四個維度:
- 完整性(Comprehensiveness):回答是否全面地解決了問題的所有方面和細節。
- 多樣性(Diversity):回答是否提供了不同視角和見解,豐富多樣。
- 賦能性(Empowerment):回答是否有效地幫助讀者理解話題并作出明智判斷。
- 總體表現(Overall):綜合前三個維度的表現,確定最佳的整體回答。
LightRAG與其他RAG方法的比較
- 圖增強RAG系統的優越性:在處理大規模數據集和復雜查詢時,基于圖的RAG系統(如LightRAG和GraphRAG)顯著優于基于文本塊的檢索方法(如Naive RAG、HyDE和RQ-RAG)。
- LightRAG在多樣性上的優勢:LightRAG在“多樣性”指標上表現出色,尤其是在法律數據集上。這歸功于其雙層檢索范式,能夠從低層次和高層次同時檢索信息,從而提供更豐富的回答。
- LightRAG優于GraphRAG:在農業、計算機科學和法律數據集上,LightRAG顯著優于GraphRAG。LightRAG在處理復雜語言環境時表現出更強的全面信息理解能力。
雙層檢索和圖基索引的效果
- 低層次檢索的影響:僅使用低層次檢索(去除高層次檢索)會導致性能顯著下降,尤其是在需要全面理解的復雜查詢上。低層次檢索更適合提供具體信息,但對于需要綜合多個實體和關系的查詢效果不佳。
- 高層次檢索的影響:僅使用高層次檢索(去除低層次檢索)能夠提供更廣泛的信息,但在細節上不夠深入。高層次檢索更適合處理抽象查詢,但在具體信息的深度上有所欠缺。
- 雙層檢索的綜合優勢:結合低層次和高層次檢索的完整LightRAG模型在所有維度上表現最佳。
- 基于圖的索引的有效性:即使不使用原始文本,僅依賴圖結構進行檢索,LightRAG的性能也沒有顯著下降。表明基于圖的索引能夠有效提取關鍵信息,減少噪聲。
案例分析
通過對不同場景的具體案例進行分析,可以發現LightRAG在處理復雜查詢時具有明顯的優勢。例如,在回答涉及多個領域交叉的問題時,LightRAG能夠更好地整合相關信息,給出更為全面的答案。
成本與適應性
- 檢索階段:GraphRAG需要處理約610,000個token,并且需要多次API調用。LightRAG僅需使用少于100個token進行檢索,且僅需一次API調用。LightRAG在檢索效率上顯著優于GraphRAG。
- 增量更新階段:GraphRAG需要重新構建整個社區結構,導致更新開銷約為1,399 × 2 × 5,000個token。LightRAG通過增量更新機制,僅需處理新數據,顯著減少了更新開銷。LightRAG在處理動態數據更新時表現出更高的效率和成本效益。
3、總結
LightRAG 通過引入基于圖的文本索引和雙層檢索范式,在處理復雜查詢和生成高質量答案方面展現了顯著優勢,尤其在捕捉文本塊間聯系和綜合信息生成連貫回答方面表現出色。然而,實際應用中暴露出運行速度慢、回答精度不穩定以及實驗評估方式局限等問題。未來可從優化運行效率、改進關鍵詞提取算法、引入語義匹配技術以及完善量化評估指標等方面入手,進一步提升 LightRAG 的性能和實用性,使其在自然語言處理領域發揮更大價值。