LightRAG開源了!輕巧、強大,GraphRAG的進化版
Hi,這里是Aitrainee,歡迎閱讀本期新文章。
我們以前介紹了HybridRAG、GraphRAG這些,今天我們將介紹一個嶄新的RAG項目:LightRAG。
現有的RAG系統老是搞不清復雜關系,答案經常被切碎,缺乏上下文,難以真正理解問題。而LightRAG就是來解決這些問題的,它把圖結構引入文本索引和檢索,采用雙層檢索系統,從低到高全面覆蓋信息。更酷的是,它還能快速更新數據,保持實時高效的響應,而且它已經開源了哦!
并且你現在可以通過簡單的API調用來實現多種檢索模式,包括本地、全局和混合檢索。
LightRAG 的工作流程分為三個核心部分:
1.圖基文本索引(Graph-Based Text Indexing)
2.雙層檢索范式(Dual-Level Retrieval Paradigm)
3.增量知識庫的快速適應
一、圖基文本索引
步驟 1:實體和關系提取
? 使用大型語言模型(LLM)分析文檔,自動識別出文本中的實體(如人名、地點、組織等)及其關系(如“屬于”或“位于”)。
? 文本被分割成多個較小的塊(chunks)來提升處理效率。
步驟 2:LLM Profiling 生成鍵值對
? 對每個識別出的實體和關系,LLM 生成鍵值對(Key-Value Pair)。其中,“鍵”(Key)是一個或多個關鍵詞,而“值”(Value)是與這些實體或關系相關的文本段落。
步驟 3:去重優化
? 合并不同文檔中的重復實體和關系,減少不必要的計算,提升處理速度。
二、雙層檢索范式
步驟 4:生成查詢關鍵詞
? 針對用戶查詢,系統自動提取局部關鍵詞(low-level)和全局關鍵詞(high-level)用于匹配檢索。
步驟 5:關鍵詞匹配
? 使用向量數據庫,局部關鍵詞會匹配相關的實體,全局關鍵詞會匹配到相應的實體關系。
步驟 6:整合高階相關性
? 為增強檢索的準確性,LightRAG 會收集檢索到的圖元素的鄰接節點,涉及檢索到的實體及其關系的上下文。
三、檢索增強的答案生成
步驟 7:使用檢索到的信息
? 檢索完成后,系統將提取到的實體和關系輸入LLM,并基于這些信息生成答案。
步驟 8:上下文整合與答案生成
? 系統將用戶查詢與多源檢索結果進行合并,生成符合查詢語境的答案。
四、增量知識庫的快速適應
步驟 9:增量更新知識庫
? 新文檔加入時,系統會按照之前的圖基索引步驟處理新文檔,將新生成的知識圖譜與現有圖譜數據合并,實現無縫更新。
步驟 10:減少計算開銷
? 為了提升效率,LightRAG 避免重建整個知識圖譜,僅更新新數據部分,從而減少計算開銷,提升系統響應速度。
通過這些步驟,LightRAG 實現了更精準、更高效、更具上下文關聯的知識檢索和答案生成,特別是對復雜問題的解決和大規模數據處理具有顯著優勢。
LightRAG 架構實例解釋
LightRAG 主要通過以下幾個步驟來讓信息檢索更準確、更智能:
1.從文本中提取信息:系統會讀取文檔,識別出重要的“實體”(比如人、地點、事物)和它們之間的“關系”(比如某人屬于某組織,某事物位于某地)。
? 比如,系統可能會識別出“Beekeeper(養蜂人)”這個實體,并且提取出它與“Bee(蜜蜂)”的關系。
2.去掉重復信息:系統會去除文檔中相同的實體和關系,避免不必要的重復。這樣可以減輕系統的負擔,提高效率。
? 比如,系統發現同一個文檔中多次提到了“Beekeeper”,但意思相同,就只保留一次。
3.把信息放入圖表:這些提取出來的實體和關系會被放入一個“圖”中。在這個圖里,實體是“節點”,關系是“邊”,所有的節點和邊相連形成了一個可以高效查詢的信息網絡。
? 比如,圖中可以顯示“Beekeeper”節點和“Bee”節點通過一條“管理(Manage)”的邊相連。
4.雙層檢索:當用戶提問時,系統會分兩步進行檢索。首先,它會尋找與問題直接相關的“局部關鍵詞”(如“Beekeeper”),然后它會尋找與這些關鍵詞關聯的“全局關鍵詞”(如“Bee”、“Hive(蜂巢)”等)。
? 例如,用戶問:“養蜂人如何管理蜂群?”系統會找到“Beekeeper”相關的信息,同時也找到了“Bee”和“Hive”的相關內容,給出更完整的答案。
5.生成答案:系統結合檢索到的信息,利用大語言模型(LLM)生成詳細的答案,并且確保答案邏輯連貫、信息準確。
6.知識更新:當有新的信息加入時,系統會把新信息無縫整合到已有的圖中,確保系統總是基于最新的知識進行檢索,而不會每次都重建整個系統。?
這張圖表可以理解為整個過程的可視化,它展示了從識別實體到檢索再到生成答案的完整流程。
面對問題“哪些指標最適合評估電影推薦系統?”時,LLM首先提取低層次和高層次的關鍵詞,用這些關鍵詞在生成的知識圖譜上檢索相關的實體和關系。檢索到的信息被組織成三個部分:實體、關系和相應的文本片段。然后,這些結構化的數據被送入LLM,幫助它生成一個全面的答案。
LightRAG在四個數據集/評估維度上都顯示出了顯著的改進,效果優于GraphRAG、NaiveRAG、RQ-RAG 、HyDE。
在四個數據集和四個評估維度下,基線與LightRAG的勝率(%)對比
LightRAG 的代碼結構基于nano-graphrag,一個更小、更快的GraphRAG。
LightRAG 論文:https://arxiv.org/abs/2410.05779
