乾貨!帶你瞭解 7 種檢索增強生成 -RAG- 技術

回顧 2023 年 RAG 技術的發展,檢索增強生成(Retrieval-Augmented Generation,RAG)技術徹底改變了人工智能模型的工作方式,它將生成式人工智能的優勢與檢索現實世界文檔的精確性相結合。通過從外部來源提取相關數據,RAG 使得人工智能能夠生成更準確且上下文更合適的答案。

隨着這項技術的不斷髮展,RAG 的多種變體應運而生,每種變體都在解決不同的挑戰並提升人工智能的整體性能。在本文中,我們將深入探討七種關鍵的 RAG 技術,重點介紹每種技術如何獨特地提升 AI 生成內容的質量。

1. 簡單 RAG(Simple RAG)

在簡單 RAG 中,大型語言模型(LLM)接收用戶查詢,在向量存儲庫中進行相似性搜索或在知識圖譜中進行關係搜索,然後基於檢索到的信息生成答案。

工作原理:

  1. 用戶查詢:用戶提供一個查詢或輸入,該查詢被輸入到系統的檢索部分。

  2. 搜索與檢索:模型在向量存儲庫或知識圖譜中搜索相關文檔或文本。檢索器根據相關性對文檔進行排名,並選擇最相關的 k 個(例如,前 5 個)段落。

  3. 生成答案:選定的文檔被傳遞給 LLM,LLM 使用這些文檔作爲上下文,生成一個結構良好且相關的答案。

2. 校正 RAG(Corrective RAG)

在校正 RAG 中,系統不僅檢索和生成答案,還會驗證並校正這些答案。工作原理:

  1. 搜索與檢索:與簡單 RAG 類似,系統根據查詢檢索相關文檔。

  2. 評分:將檢索到的上下文與可信數據集(如測試集或帶有預定義規則的提示)進行比較。此步驟的方法根據項目目標有所不同。

  3. 校正:如果在評分過程中發現任何不準確或不一致之處,模型將使用從查詢中提取的關鍵詞進行網絡搜索,以生成新的答案或優化之前的答案。

3. 自省 RAG(Self RAG)

自省 RAG 通過自我反思或自我批評來提高 RAG 結果的質量。

工作原理:

  1. 搜索與檢索:模型首先檢索相關信息並根據輸入查詢生成答案。

  2. 評分:爲了對文檔進行評分或反思,LLM 會對每個答案進行批評,判斷其是否與查詢相關。如果文檔不相關,則使用外部來源;如果相關,則檢查是否存在幻覺和準確性。

  3. 幻覺檢查:幻覺節點檢查答案是否由文檔支持。有時,AI 模型會 “幻覺”,即生成聽起來正確但實際上沒有任何真實數據或文檔支持的答案。幻覺節點通過確保模型的答案有文檔支持來防止這種情況,確保答案的準確性和可靠性。

  4. 回答問題:回答問題節點檢查生成的答案是否回答了問題。它查看生成的答案並檢查其是否相關且完整地回答了原始問題。如果沒有,模型可以改進或調整答案以確保其準確性。

  5. 輸出:通過每次迭代,模型生成更準確且上下文更相關的答案。迭代次數取決於項目規模和可用處理能力。

4. 推測 RAG(Speculative RAG)

推測 RAG 是一種爲給定查詢生成多個答案的方法,利用檢索模型提供相關信息。然後通過評分系統評估這些答案,選擇最準確且上下文最合適的答案。這種方法有助於處理模糊性或查詢可能有多種解釋的情況。

工作原理:

  1. 搜索與檢索:與簡單 RAG 類似,系統檢索與查詢相關的多個文檔。

  2. 推測:LLM 從檢索到的文檔中生成多個推測性答案,探索各種可能的輸出,而不僅僅是一個。

  3. 評分:評分機制根據相關性、連貫性、完整性和事實準確性等標準對每個答案進行評估和打分。這可能涉及將答案與更多檢索到的文檔進行比較或使用評分模型。與校正 RAG 類似,此步驟取決於項目目標和領域。

  4. 選擇與答案:模型對答案進行排名,並選擇得分最高的答案作爲最終輸出。

5. 融合 RAG(Fusion RAG)

融合 RAG 結合了來自多個檢索來源的信息,以生成一個全面的答案。

工作原理:

  1. 搜索與檢索多樣化文檔:系統檢索多個相關文檔,確保它們代表不同的觀點或解決查詢的不同方面。每個文檔都可以被視爲查詢的一個答案。

  2. 信息整合:LLM 不僅結合了多個來源一致的文檔,還考慮了不同文檔中的各種觀點或角度,旨在生成一個公平代表這些不同觀點的答案。然後,模型通過結合所有檢索到的文檔中的相關信息,生成一個連貫、統一的答案,基於證據呈現一個平衡的觀點。

  3. 衝突解決:當存在衝突時,模型使用額外的上下文或預定義規則來解決衝突,以確保最終答案的一致性。

6. 自主 RAG(Agentic RAG)

自主 RAG 涉及一個具有特定目標的 AI 系統,它使用檢索過程來自主做出決策並指導其行動。

工作原理:

  1. 查詢輸入:過程從用戶的明確目標或查詢開始,例如解釋一個概念、提供定製建議或解決複雜問題。此查詢作爲模型行動的基礎。

  2. 搜索與檢索:模型訪問知識庫或數據庫,該數據庫經過預處理階段以高效地構建信息以供後續使用。預處理後的數據存儲在向量存儲庫或知識圖譜中,以便於檢索。

  3. 問答檢查:生成初始答案後,模型檢查問題是否已得到充分回答。這是過程中的一個關鍵決策點。如果是,則繼續提供最終答案給用戶。如果否,則進入下一階段。

  4. 代理干預與行動:如果初始答案未能充分回答查詢,模型通過代理採取行動。代理可能會執行額外的任務,例如使用外部工具或調用進一步的操作以收集更多相關信息。LLM 自主決定檢索哪些信息以及採取哪些行動以實現目標。這可以通過在該步驟中爲 LLM 定義一個思維鏈提示來完成。

  5. 迭代過程與動態調整:該過程是動態且迭代的。代理持續評估模型的進展並實時調整行動,優化策略以獲得更好的結果。此步驟涉及評估中間結果並採取糾正措施,例如重新查詢或更改檢索方法。

  6. 目標完成:一旦模型確認已達到目標或解決了問題,它將生成最終輸出或答案,並交付給用戶。如果需要進一步調整,該過程可能會再次循環,直到查詢完全解決。

7. 圖 RAG(Graph RAG)

GraphRAG 是微軟公司內部廣受讚譽的一種結合了檢索增強生成(RAG)技術和知識圖譜的先進框架。它在傳統 RAG 框架的基礎上,進一步強化了實體、社區以及文本切塊(Chunking)之間的內在聯繫,並且巧妙地將現有知識圖譜(KG)中的知識融入其中。這一系列的改進措施,顯著提升了信息檢索的召回率與準確性,爲用戶帶來了更爲優質的信息檢索體驗。

GitHub: microsoft/graphrag
論文: From Local to Global: A Graph RAG Approach to Query-Focused Summarization
項目文檔: microsoft.github.io/graphrag/

GraphRAG 旨在通過利用外部結構化知識圖譜來增強大型語言模型(LLMs)的性能,有效解決模型可能出現的 “幻覺” 問題、領域知識缺失以及信息過時等問題。GraphRAG 的核心目的在於從數據庫中檢索最相關的知識,以增強下游任務的答案質量,提供更準確和豐富的生成結果。

工作原理 1. 索引建立階段
在 GraphRAG 的索引建立階段,主要目標是從提供的文檔集合中提取出知識圖譜,並構建索引以支持後續的快速檢索。這一階段是 GraphRAG 工作流程的基礎,其效率和準確性直接影響到後續檢索和生成的質量。

2. 查詢處理階段
查詢處理階段是 GraphRAG 工作流程的最終環節,它決定了如何利用已建立的索引來回答用戶的查詢。

在查詢處理階段,GraphRAG 展示了其在處理複雜查詢任務上的優勢,尤其是在需要全局理解和高層語義分析的場景中。通過結合知識圖譜的結構化信息和原始文檔的非結構化數據,GraphRAG 能夠提供更準確、更全面的答案。

GraphRAG 的成功也催生了一系列輕量級的優化版本,諸如 LightRAG 與 nano-GraphRAG 等。與此同時,還湧現出了一些別具一格的變體,如 KAG 框架。這些框架在傳統 RAG 框架的基礎上,進一步強化了實體、社區以及文本切塊(Chunking)之間的內在聯繫,並且巧妙地將現有知識圖譜(KG)中的知識融入其中。這一系列的改進措施,顯著提升了信息檢索的召回率與準確性,爲用戶帶來了更爲優質的信息檢索體驗。

示例針對新聞文章數據集的示例問題,Graph RAG(C2)和基礎 RAG 的表現顯示,GraphRAG 在處理複雜查詢任務上具有顯著優勢,尤其是在需要全局理解和高層語義分析的場景中。

參考資料

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/6VxttYwYok_YPUeA7CIorA