RAG 範式、技術和趨勢

這裏分享同濟大學 Haofen Wang的關於檢索增強生成的報告:《Retrieval-Augmented Generation (RAG): Paradigms, Technologies, and Trends》 ,RAG 範式、技術和趨勢。

RAG 概述

爲什麼會有RAG, 主要是緣於LLM的一些不足:

  • 幻覺
  • 過時的信息
  • 參數化知識效率低
  • 缺乏專業領域的深入知識
  • 推理能力弱

對在企業裏的真實的應用,需要綜合考慮:

  • 領域支持的精準回答
  • 數據頻繁更新的需求
  • 生成內容需要可追溯可解釋
  • 可控的成本
  • 隱私數據保護

因此有了RAG(Retrieval-Augmented Generation 檢索增強生成),RAG的基本流程是,當回答問題時,首先從大量文檔中檢索到相關信息,然後基於這些信息,讓LLMs生成答案。這樣通過附加一個外部知識庫,無需爲每個特定任務重新訓練整個大型模型。

image.png

因此RAG模型特別適合於知識密集型任務。

RAG 還是 Fine-tuning

要優化大模型,可以通過提示詞優化(Prompt Engineering),RAG 和 Fine-tuning方法。 RAG 和 FT有什麼區別?根據對外部知識的依賴程度和模型調整的需求,他們都有適合自己的應用場景。

image.png

RAG就像是爲模型提供了一本定製的帶有信息檢索的教科書,非常適合特定領域的查詢。另一方面,FT就像是隨着時間的積累將知識內化的學生,因此更適合模仿特定的結構、風格或格式。FT可以通過增強基礎模型的知識、調整輸出和教授複雜指令來提高模型的性能和效率。然而,它不擅長整合新知識或快速迭代新的使用案例。RAG和FT並不是相互排斥的,它們是互補的,結合起來使用會產生更佳的效果。

RAG 應用

RAG 非常適合下面的場景:

  • 長尾數據
  • 頻繁更新的知識
  • 需要驗證和可追溯性的答案
  • 專業領域知識
  • 數據隱私保護

image.png

RAG 範式的演變

作者將RAG分爲Naive RAGAdvanced RAG,和Modular RAG三種範式。

Naive RAG 就是傳統的RAG 流程,先Indexing,然後Retrieval,最後GenerationNaive RAG在檢索、生成和增強方面面臨着許多挑戰,因此隨後提出了Advanced RAG範式,增加了預檢索檢索後處理中的額外處理。在檢索之前,可以使用query改寫routing路由query擴展等方法來對齊問題和文檔塊之間的語義差異。檢索後,對檢索到的doc進行一個rerank,可以避免“中間丟失”現象,也可以對上下文進行過濾壓縮,縮短窗口長度。

隨着RAG技術的進一步發展和進化,產生了模塊化RAG的概念。在結構上,它更自由、更靈活,引入了更具體的功能模塊,如查詢搜索引擎和多個答案的融合。在技術上,它將檢索與微調、強化學習和其他技術相結合。在流程方面,RAG模塊經過設計和編排,形成了各種RAG模式。

然而,模塊化RAG也不是突然出現的,三種方式存在繼承與發展的關係。可以這麼理解Advanced RAG是模塊化RAG的一個特例,而Naive RAGAdvanced RAG的特例。

image.png

RAG的三個關鍵問題

  • 檢索粒度 可以是token、短語,還是chunk,段落、實體或者知識圖譜
  • 什麼時候檢索
  • 如何利用檢索到的信息

image.png

關於檢索什麼層級的內容,我們可以從檢索粒度的粗細,以及數據結構化的高低來看業界研究結果。

image.png

X軸結構化從低到高,Y軸從精細到粗粒度。
三個代表:

  • Chunk級別,非結構化數據,搜索會召回大量信息,但是準確度低,會包含冗餘信息
  • 知識圖譜,豐富的語義和結構化數據,檢索效率低,效果嚴重依賴KG的質量
  • KNN-LMM 擅長處理長尾和跨域問題,計算效率高,但需要大量存儲

如何使用檢索到的內容

在推理過程中,將檢索到的信息集成到生成模型的不同層中

image.png

檢索的時機

按照檢索的頻率從低到高,有:

image.png

  • 一次檢索,只檢索一次,效率高,但可能導致檢索結果相關度低
  • 自適應檢索,平衡效率和檢索效果
  • 每N個token檢索1次,會導致檢索次數過多,並召回大量冗餘信息

RAG 技術發展樹

image.png

RAG 關鍵技術

數據索引優化

  • 核心是chunk的策略:
    • Small-2-Big 在sentense級別做embedding
    • Slidingwindow 滑動窗口,讓chunk覆蓋整個文本,避免語義歧義
    • Summary 通過摘要檢索文檔,然後從文檔中檢索文本塊。
  • 另外爲了提升效果,還可以添加一些額外的meta信息,例如page,時間,類型,文檔標題等。
  • 有了meta,就能進行過濾,或者增強信息量

image.png

Small 2 Big方法:

image.png

Abstract方法

image.png

僞metadata方法,也就是HyDE,y將用戶的原始查詢轉換爲一個或多個假設性文檔。這些文檔是針對查詢構建的文本片段,它們包含了可能回答查詢所需的信息,然後用這些文檔計算embedding,從真實文檔庫檢索真實的文檔,識別出與原始查詢最相關的文檔,檢索到的真實文檔被用作生成響應的上下文信息,可以輔助語言模型生成更準確、更相關的回答。

image.png

meta過濾方法:

image.png

核心就是數據很多,通過meta過濾,可以減少範圍,提高精度。

結構化檢索文檔庫

可以分層組織檢索文檔庫

  • Summary → Document方法, 用摘要檢索取代文檔檢索,不僅可以檢索最直接相關的節點,還可以探索與這些節點相關的其他節點。

image.png

  • Document → Embedded Objects 比如一個PDF文檔具有嵌入對象(如表、圖表),首先檢索實體引用對象,然後查詢底層對象,如文檔塊、數據庫、子節點

image.png

KG作爲召回數據源

GraphRAG 從用戶的輸入查詢中提取實體,然後構建子圖以形成上下文,並最終將其輸入到大模型中進行生成

  • 使用LLM 從問題中提取關鍵entity
  • 基於提取的到entity實體,檢索子圖,並深入到一定的深度,比如2跳或者更多
  • 利用獲得的上下文通過LLM生成答案

image.png

下面是一個具體的案例:
image.png

Query 優化

問題和答案並不總是具有很高的語義相似性,所以我們可以適當的調整query,以便獲得更佳的檢索效果,可以通過Query Rewriting改寫技術和Query Clarification 澄清技術。

  • Query 改寫: 將query改寫成一個或者多個search query,分別查詢,這樣可以得到更佳的召回效果,比如下面例子中,問兩個人的共同profession職業,那麼可以先分別查詢各自的,然後讓大模型去解決。

image.png

  • Query Clarification

image.png

Embedding 嵌入模型優化

  • 一方面,可以選擇一個合適的商用embedding 供應商,比如:

  • 另外一方面,可以自己微調embedding模型,現在業界有很多還不錯的embedding模型,比如BAAI的BGE模型

image.png

  • 微調的方法,可以通過領域數據和下游任務需要去微調

image.png

檢索流程優化

在檢索流程方面,可以有Iterative迭代式檢索,也可以Adaptive自適應檢索

image.png

Hybrid (RAG+Fine-tuning) 融合RAG和FT

既可以檢索FT,也可以生成FT,還可以進行檢索,生成聯合FT

image.png

相關研究總結

image.png

RAG 評估

  • 評測方法層面,可以檢索和生成獨立評測,也可以端到端進行評測
  • RAG 的評估辦法很豐富,主要包括三個質量分數:上下文相關度、答案忠實度、答案相關度
  • 評估涉及四項核心能力:魯棒性、拒識能力、信息整合能力和反事實解釋
  • 評估框架方面,有 RGB、RECALL 等基準指標,以及 RAGAS、ARES、TruLens 等自動化評估工具,可以較全面地衡量 RAG 模型的性能。

image.png

下面補充一些信息:

image.png

具體來說,評估方法主要圍繞其兩個關鍵組件:檢索(Retrieval)和生成(Generation)。評估這些組件的性能涉及到多個質量分數和能力,這些分數和能力共同反映了 RAG 模型在信息檢索和生成過程中的效率。

檢索質量評估指標:

  1. Hit Rate (HR):命中率,衡量檢索結果中相關文檔的比例。高命中率意味着檢索系統能夠更準確地找到用戶查詢相關的信息。
  2. Mean Reciprocal Rank (MRR):平均倒數排名,衡量檢索結果中相關文檔的平均排名的倒數。MRR 越高,表示檢索系統的性能越好。
  3. Normalized Discounted Cumulative Gain (NDCG):歸一化折扣累積增益,用於衡量檢索結果列表中相關文檔的排名質量。NDCG 考慮了文檔的相關性和排名位置。
  4. Precision:精確率,衡量檢索結果中被正確識別爲相關的文檔的比例。
  5. Recall:召回率,衡量檢索系統找到的相關文檔佔所有相關文檔的比例。
  6. R-Rate (Reappearance Rate):再次出現率,衡量檢索結果中信息在後續生成文本中的出現頻率。

生成質量評估指標:

  1. Context Relevance:上下文相關性,評估生成的文本與檢索到的上下文之間的相關性。
  2. Answer Faithfulness:答案忠實度,確保生成的答案忠實於檢索到的上下文,保持一致性。
  3. Answer Relevance:答案相關性,要求生成的答案直接相關於提出的問題,有效解決問題。
  4. Accuracy:準確性,衡量生成的信息的準確性。

RAG 技術棧與工業界實踐

當前有LangChain、LlamaIndex、AutoGen等流行的開發框架,可以方便開發RAG應用。

image.png

工業界也有很多RAG應用。

image.png

總結與展望

RAG 技術框架

image.png

RAG 的三個研究熱點

image.png

RAG 的挑戰

  • 長上下文
  • 與FT的協同
  • 如何應用好LLM,充分挖掘利用LLM
  • 提升魯棒性,比如如何處理錯誤的召回內容,如何過濾和驗證召回內容
  • RAG 是否也遵循Scaling Law
  • 最佳工程實踐,比如提升在大數據量下的檢索延遲,如何保障隱私的檢索內容不被LLM泄露

image.png

多模態擴展

將RAG從文本擴展到多模態

image.png

RAG 開發生態建設

擴展RAG下游任務,改善生態建設

image.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章