檢索增強生成(Retrieval-Augmented Generation, RAG)已經成為提升大型語言模型(LLMs)能力的重要方法之一,透過整合外部知識,顯著改善了生成內容的質量和相關性。
RAG 的侷限性
傳統的 RAG 系統雖然表現優異,但其侷限性也不容忽視:
- 資料結構扁平化
傳統 RAG 系統往往依賴扁平化的資料結構,難以捕捉資訊之間的複雜關係。這種缺陷導致生成的答案片段化,缺乏上下文的一致性。 - 有限的上下文意識
系統在處理需要綜合多個資料點的複雜問題時表現不佳,生成的答案缺乏對資料間相互關聯的全面理解。
GraphRAG的侷限性
GraphRAG 透過使用** 知識圖譜** 對文字中的實體和關係進行結構化建模,從而能夠捕捉資訊間的複雜關聯。GraphRAG 首先在整個私有資料集上建立實體和關係的引用,隨後採用自底向上的聚類方法,將資料層次化地組織為語義簇。
然而,當資料集中加入新的知識時,GraphRAG 必須重新執行整個圖構建流程。這種方式對於動態更新的資料集來說效率低下且成本高昂。
- 資源需求高:需要大量 API 呼叫(通常依賴昂貴的模型如 GPT-4o)。
- 資料更新昂貴:每次更新資料時,必須重建整個圖譜。
LightRAG的創新點
相比之下,LightRAG 的增量更新機制大大簡化了流程。它透過簡單的 聯合操作(union operation),將新的圖節點和邊直接新增到現有圖譜中。這種方式避免了重複構建圖譜的高昂開銷,同時確保知識庫實時更新,適應動態資料需求。
LightRAG
LightRAG 的核心賣點在於 基於圖的索引 和 雙層檢索框架。以下是對這兩個關鍵功能的深入解析:
Graph-based Indexing
以下是 LightRAG 進行基於圖索引的步驟:
-
實體與關係(ER)提取
實體與關係提取由圖中的 R(.) 表示。此步驟確保從給定文件中首先提取簡單的實體。例如,在上圖的示例中,“蜜蜂”(bees)和“養蜂人”(beekeeper)是兩個實體,它們透過“觀察”(observe)關係相關聯,即養蜂人觀察蜜蜂。 -
使用 LLM 生成鍵值(KV)對
使用簡單的 LLM 生成鍵值對。LLM 的分析步驟為實體或關係提供了簡要的說明或解釋。例如,在所選示例中,LLM 解釋了“養蜂人”是誰。此步驟在圖中由 P(.) 表示。需要注意的是,此 LLM 不同於主 RAG 流程中使用的通用 LLM。 -
去重
鑑於文件內容與蜜蜂相關,實體“養蜂人”可能從多個文件或文字塊中被多次提取。因此,需要一個去重步驟,僅保留一個具有相同含義的實體,丟棄其他重複項。此步驟在圖中由 D(.) 表示。
Dual-level Retrieval
對 RAG 系統的查詢可以分為兩種型別——具體的或抽象的。在同樣的蜜蜂示例中,具體查詢可能是:“一個蜂巢中可以有多少隻蜂王?” 抽象查詢可能是:“氣候變化對蜜蜂有哪些影響?” 為了應對這種多樣性,LightRAG 採用了兩種檢索方式:
低層檢索:簡單地提取精確的實體及其關係,如蜜蜂(bees)、觀察(observe)和養蜂人(beekeepers)。
高層檢索:透過使用 LLM,LightRAG 聚合資訊並總結多個資訊來源。
架構意義
進行這些操作並切換到 LightRAG 的確能改進執行時間。在索引過程中,每個文字塊只需呼叫一次 LLM 來提取實體及其關係。
同樣,在使用者查詢時,僅使用與索引相同的 LLM 從文字塊中檢索實體和關係。這大大減少了檢索的開銷,從而降低了計算成本。因此,最終擁有了一個“輕量”的 RAG!
將新知識整合到現有圖譜中看起來是一個無縫的操作。與其在有新資訊時重新索引整個資料,可以簡單地將新知識附加到現有圖譜中。
評估
評估中,LightRAG 與 Naive RAG、RQ-RAG、HyDE 和 GraphRAG 進行了比較。為了保持比較的公平性,統一使用了 GPT-4o-mini 作為 LLM,並在所有資料集上採用固定的分塊大小(1200)。答案的評估標準包括全面性、多樣性以及回答使用者問題的有效性。
正如下劃線結果所示,LightRAG 超越了當前所有最先進的方法。
總體而言,得出了以下結論:
• 使用基於圖的方法(如 GraphRAG 或 LightRAG)相比基礎的 Naive RAG 有顯著改進。
• LightRAG 透過雙層檢索正規化生成了相當多樣化的答案。
• LightRAG 能夠更好地處理複雜查詢。
結論
儘管 RAG 是一種相對較新的技術,但這一領域正在快速發展。像 LightRAG 這樣的技術可以將 RAG 流程引入廉價的通用硬體,這是非常受歡迎的。儘管硬體領域不斷進步,但始終需要在計算受限的硬體上實時執行 LLM 和 RAG 流程。
本文由部落格一文多發平臺 OpenWrite 釋出!