成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

三大關鍵技術看RAG如何提升LLM的能力 精華

發布于 2024-4-1 15:37
瀏覽
0收藏

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

大語言模型表現出色,但是在處理幻覺、使用過時的知識、進行不透明推理等方面存在挑戰。檢索增強生成(RAG)作為一個新興的解決方案,通過整合外部知識庫的數據,提高了模型在知識密集型任務中的準確性和可信度,能夠實現知識持續更新和特定領域信息的集成,有效將LLM的內在知識與外部數據的巨大動態資源相結合。


本文主要是對綜述論文《Retrieval-Augmented Generation for Large Language Models: A Survey》的概括和解讀,同時也會整合一些其他來源的材料。后面主要探討RAG范式(包括Naive RAG、Advanced RAG、Modular RAG)的發展,同時會詳細介紹RAG的三大關鍵技術(檢索、生成、增強),然后會介紹RAG的評估指標及應用實踐。

大模型應用面臨的挑戰

大語言模型(如GPT系列、LLama系列、文心一言等),已經在自然語言領域的多項基準測試中取得突破性進展。然而,它們在處理特定領域或者一些高度專業化的場景時存在一些局限性。

  • 內容不真實:幻覺問題/領域知識匱乏
  • 時效性不強
  • 隱私&安全性

為了應對這些挑戰,主要有以下幾種類型的解決方案:

  • 參數化的方式:通過微調的手段將領域知識嵌入模型,更新模型參數。它的缺點是訓練成本較高、靈活性較差;優勢在于能夠輸出高質量的結果。
  • 非參數化方式:通過數據庫存儲相關的知識,檢索后直接使用。它的優勢在于成本低、靈活性強、可解釋性高;缺點在于少了生成的過程,檢索出的內容可能不能直接回答問題,有較高的理解成本。
  • 用非參數化的語料庫與參數化的模型集成,也就是RAG,同時具備參數化方式和非參數化方式的優點。

什么是RAG

顧名思義,RAG (Retrieval-Augmented Generation), 主要包括3個關鍵過程(Retrieval、Augmentation和Generation),它主要通過從外部知識庫中“檢索”最新信息作為外掛來“增強”LLM“生成”答案的效果。在回答問題或生成文本之前查詢外部數據源并合成一個內容更加豐富的Prompt,從而顯著提升輸出的準確性和相關性。目前,RAG已經成為LLM系統中最流行的架構之一,因其高實用性和低門檻的特點,許多對話產品都是基于RAG進行構建。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

RAG框架結構

從簡單到復雜可以分為三個層次的RAG,包括Naive RAG、Advanced RAG、Modular RAG,如下圖所示。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

從Naive RAG說起

最基本的RAG方式,分為Indexing、Retrieval、Generation這3個步驟,簡單而實用。

Naive RAG的一些局限性

Naive RAG的效果在檢索質量、結果生成質量和增強的過程方面都存在一定的挑戰。

  • 檢索質量方面
  • 準確率低,可能會導致幻覺
  • 召回率低,導致信息不完整
  • 過時或者冗余的信息導致檢索結果不準確
  • 結果生成質量方面
  • 幻覺問題,如果問題的答案未能被正確檢索,生成的結果仍然會產生幻覺
  • 答非所問,問題和答案未能正確匹配
  • 生成有害和偏見的答案
  • 增強過程(整合來自檢索的內容)的挑戰
  • 內容不連貫/脫節
  • 冗余和重復
  • 確定每段內容對于結果生成的重要性
  • 協調來自不同寫作風格/語氣的內容差異,從而保證輸出一致性
  • 生成結果可能過渡依賴增強信息,導致和增強信息相比沒有帶來額外的收益

Advanced RAG如何應對這些挑戰

和Naive RAG相比,Advanced RAG加入了Pre-Retrieval 和 Post-Retrieval模塊,同時對Retrieval模塊也進行了一些優化,從而改進輸出效果。

Pre-Retrieval

可以通過優化數據索引的方式來改進Pre-Retrieval階段的質量。大致有5種策略可以使用:

  • 增強數據粒度:主要是對數據內容進行修訂和簡化,確保數據源的正確性和可讀性。預索引優化的主要目的是提升文本的規范化、統一性,并確保信息的準確無誤和上下文的充分性,以此來保障 RAG 系統的表現。具體的方式包括刪除不相關信息、消除實體種的歧義和術語、確認事實準確性、維護上下文、更新過時文件。
  • 優化索引結構:包括調整chunk的大小來捕獲相關的上下文、跨多個索引路徑查詢、通過利用圖數據索引中節點之間的關系并結合圖結構中的信息來捕獲相關上下文。
  • 層級索引

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

  • 加入元數據信息:在RAG系統開發中,加入元數據如日期標簽可以提高檢索質量,特別是在處理時間敏感的數據如電子郵件查詢時,強調最新信息的相關性而不僅是內容相似性。LlamaIndex通過節點后處理器支持這種以時間排序的檢索策略,增強了系統的實用性和效率。
  • 對齊優化:這一策略主要針對文檔間的對齊問題和差異性問題。對齊處理包括設計假設性問題,可以理解為每一個 chunk 生成一個假設性提問,然后將這個問題本身也嵌合到 chunk 中。這種方法有助于解決文檔間的不一致和對齊問題。
  • 混合檢索

Retrieval

這一階段主要通過計算query和chunks的相似性來召回上下文,核心是embedding模型,Advanced RAG主要對embedding模型進行優化。

  • 微調Embedding模型:利用特定場景的預料去微調embedding模型,將知識嵌入到模型中。
  • Dynamic Embedding:相比于靜態嵌入(每個固定單詞的的向量固定),動態嵌入會根據不同的上下文對同一個單詞的嵌入進行調整。嵌入中包含上下文信息能夠產生更為可靠的結果。

Post-Retrieval

在完成chunks檢索并整合上下文提交給LLM生成最終結果前,可以通過ReRank和Prompt Compression的方式對文檔進行優化。

  • ReRank:前文提及的檢索召回階段一般直接對query和chunks的embedding向量進行相似性召回,無法捕捉query和chunk的復雜語義關系。Rerank階段可以設計更加復雜的模塊對召回的結果進行精細化的排序,從而提高召回的質量。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/node_postprocessor/CohereRerank.html
  • Prompt Compression:研究表明,檢索到的文檔中的噪聲會對 RAG 性能產生不利影響。在后期處理中,重點在于壓縮無關上下文、突出關鍵段落、減少整體上下文長度。Selective Context 和 LLMLingua 等方法利用小語言模型來計算即時互信息或困惑度,估計元素重要性。Recomp通過以不同粒度訓練壓縮器來解決這個問題,而 Long Context 和“Walking in the Memory Maze” 設計總結技術來增強法學碩士的關鍵信息感知,特別是在處理廣泛的背景方面。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/node_postprocessor/LongLLMLingua.html

Modular RAG

不同于Naive RAG和Advanced RAG,都有固定的一套流程,Modular RAG更多是增加了一些新的模塊,并可以根據具體的需求對各個單一的模塊進行組合得到新的架構模式。

新模塊

  • 搜索模塊:為特定場景定制,可以在額外的語料庫上進行直接搜索。
  • 記憶模塊:利用LLM記憶能力和增強檢索的生成器指導檢索過程,使用生成的輸出作為數據源。
  • 融合:通過LLM擴展用戶查詢,提高搜索的多樣性和深度,優化結果并與用戶意圖更緊密對齊。
  • 路由:RAG系統通過查詢路由功能,根據用戶的查詢內容選擇最合適的信息源和處理方式,包括總結性回應、特定數據庫搜索或合并不同信息源。這涉及多種數據存儲類型,如向量、圖形或關系數據庫,以及索引層級。查詢路由根據預置邏輯通過LLM執行,確保查詢高效準確地被處理。
  • 預測:通過LLM生成上下文來解決檢索內容中的冗余和噪聲,比直接檢索更有效。
  • 任務適配器:適用于不同下游任務,通過LLM生成查詢提示和任務特定檢索器,提高模型的泛用性和精確度。

新模式

Modular RAG是一個高度適應性的組織結構,它允許在RAG過程中替換或重新排列模塊以適應特定問題的需求。傳統的樸素RAG主要由“Retrieval”和“Read”模塊組成,而高級RAG在此基礎上增加了“Rewrite”和“Rerank”模塊。然而,模塊化RAG提供了更大的多樣性和靈活性。


目前的研究主要探索兩種組織模式:一種是增加或替換模塊,另一種是調整模塊之間的流程。通過這種靈活性,可以根據不同任務的需求定制RAG過程。


增加或替換模塊策略旨在保持Retrieval-Read的核心結構,同時通過集成額外的模塊來增強特定功能,如RRR模型中的Rewrite-Retrieval-Read過程。另一種方法是交換模塊,如將LLM生成模塊替換為檢索模塊,或者讓LLM記住特定任務信息并進行輸出,以處理知識密集型任務。


在調整模塊之間的流程方面,重點在于增強語言模型和檢索模型之間的交互。例如,DSP框架將上下文學習系統視為一個顯式程序來處理知識密集型任務,而ITER-RETGEN方法則通過生成內容指導檢索,并在檢索-閱讀的流程中迭代實施增強功能,顯示了模塊之間如何相互提升功能的創新方式。

優化RAG的pipeline

RAG系統中的檢索過程優化關注于提高信息檢索的效率和質量。通過集成多種搜索技術、改進檢索步驟、引入認知回溯、實現多樣化查詢策略和利用嵌入相似性,研究人員致力于在檢索效率和上下文信息的深度之間找到平衡點。

  • 混合搜索——結合關鍵詞搜索、語義搜索和向量搜索的技術以適應各種查詢需求,并確保檢索到相關且內容豐富的信息。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/retrievers/simple_fusion.html

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

  • 遞歸檢索和查詢引擎——逐步檢索,捕獲關鍵語義,在流程后期提供更多上下文信息,以提供效率和響應深度之間的平衡。
  • sentence window retrieval

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

  • Parent-child chunks retrieval

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

  • StepBack-prompt——通過后向提示鼓勵LLM圍繞更寬泛概念進行推理,以提高復雜推理任務的性能。
  • 子查詢——根據不同場景,采取不同的查詢策略,如利用查詢引擎、樹查詢、向量查詢或順序查詢。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

  • 假設性文檔嵌入(HyDE)——HyDE是一個系統,它通過使用大型語言模型來創建假設性答案,并將這些答案嵌入空間以檢索類似的真實文檔。這種方法更注重答案之間而非查詢與答案間的嵌入相似性。盡管這種方法有其創新之處,但在處理不熟悉的主題時,可能會產生不準確的結果。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/query_transformations/HyDEQueryTransformDemo.html

這些方法不僅增加了系統的靈活性,也可能提高RAG系統在處理知識密集型任務時的表現,但也需要注意,這些方法可能在模型對特定主題不夠熟悉時產生錯誤。

Retriever模塊

在 RAG 的背景下,從數據源中高效檢索相關文檔至關重要。然而,構建一個熟練的檢索器面臨著巨大的挑戰。本節探討了三個基本問題:1)我們如何實現準確的語義表示?2)什么方法可以對齊查詢和文檔的語義空間?3)檢索器的輸出如何與大語言模型的偏好保持一致?

如何得到準確的語義表征?

在 RAG 中,語義空間至關重要,因為它涉及查詢和文檔的多維映射。該語義空間中的檢索準確性會顯著影響 RAG 結果。本節將介紹兩種構建準確語義空間的方法。

  • Chunk 優化:優化文本塊(Chunk)涉及分析文檔特性(如長度和主題)、選擇適合的嵌入模型、考慮用戶問題的類型以及應用場景的特定需求。可以采用small2big技術針對不同查詢階段使用不同大小的文本塊,通過abstract embedding進行快速檢索,使用metadata filtering利用文檔的額外信息來精化搜索結果,以及通過graph indexing提升多步邏輯推理能力。需要靈活運用這些策略,根據大語言模型能處理的Token數量上限來調整分塊大小,實現更精確的查詢結果。
  • 微調Embedding模型:微調嵌入模型是必要的,因為盡管預訓練模型能捕捉豐富的語義信息,但它們可能無法充分理解特定領域的專業知識。通過微調,模型能夠更準確地捕捉特定任務或領域的細節,從而更好地理解用戶查詢并提高與相關內容的匹配度。未經微調的模型可能無法滿足特定任務的精確要求。主要有兩種微調的策略:
  • 領域知識微調 為了使嵌入模型能精確理解特定領域的信息,需要構建專有數據集進行細致微調。微調依賴于三個數據集部分:查詢、語料庫和相關文檔,以確保模型能根據查詢匹配相關文檔。LlamaIndex研究提供了關鍵類和函數,簡化了嵌入模型微調流程,使得能夠基于領域知識語料庫定制模型。
  • 針對下游任務進行微調 已有研究展示了使用大語言模型(LLM)進行微調的方法,如PROMPTAGATOR使用LLM生成少樣本查詢以創建任務特定的檢索器,解決數據匱乏問題。LLM-Embedder則結合硬數據和LLM的軟性獎勵進行雙重微調。這些方法引入領域知識進行任務特定微調,改善語義表達,但檢索器改進不一定直接有助于LLM,故有研究采用從LLM獲取反饋直接微調嵌入模型。

如何匹配query和文檔的語義空間?

在檢索增強型生成(RAG)應用的背景下,檢索器可能使用單一的嵌入模型來同時編碼查詢和文檔,或者為每個部分采用不同的模型。此外,用戶的原始查詢可能存在措辭不準確和缺乏語義信息的問題。因此,將用戶查詢的語義空間與文檔的語義空間對齊至關重要。本節介紹了兩種旨在實現這種對齊的基本技術。

  • 查詢改寫 查詢改寫是一種用于對齊查詢和文檔的語義的基本方法。
  • 例如Query2Doc和ITER-RETGEN等方法利用大語言模型(LLM)將原始查詢與額外指導信息相結合,創建一個偽文檔。
  • HyDE使用文本提示構造查詢向量,生成捕獲關鍵模式的“假設”文檔。
  • RRR提出了一個框架,顛倒了傳統的檢索和閱讀順序,專注于查詢改寫。
  • STEP-BACKPROMPTING使LLM能夠基于高層次概念進行抽象推理和檢索。
  • 此外,多查詢檢索方法利用LLM同時生成和執行多個搜索查詢,這對于解決具有多個子問題的復雜問題特別有利。

這些方法的詳細內容可以參考 如何利用查詢改寫技術改善RAG效果

  • 嵌入轉換 除了查詢改寫等寬泛策略外,還有為嵌入轉換專門設計的更細粒度技術。
  • LlamaIndex通過引入一個適配器模塊,該模塊可以在查詢編碼器之后集成,以便微調,從而優化查詢嵌入的表示,使之更緊密地與預定任務對齊。
  • SANTA解決了將查詢與結構化外部文檔對齊的挑戰,特別是在處理結構化和非結構化數據之間的不一致性時。它通過兩種預訓練策略增強檢索器對結構化信息的敏感性:首先,利用結構化與非結構化數據之間的內在對齊來指導對結構化感知的預訓練方案中的對比學習;其次,采用掩碼實體預測。后者采用以實體為中心的掩碼策略,促使語言模型預測并填補掩碼的實體,從而促進對結構化數據的更深入理解

如何對齊檢索結果和大模型的輸出偏好

在RAG(檢索增強型生成)流程中,雖然通過各種技術提高檢索命中率可能看起來有益,但這并不一定能改善最終結果,因為檢索到的文檔可能并不符合大型語言模型(LLM)的具體要求。因此,本節介紹了兩種旨在將檢索器輸出與大型語言模型的偏好對齊的方法

  • 微調檢索器 多項研究利用大型語言模型(LLM)的反饋信號來精煉檢索模型。例如,AAR通過使用編碼器-解碼器架構,通過FiD交叉注意力分數識別LM偏好的文檔,為預訓練的檢索器引入監督信號。隨后,檢索器通過硬負采樣和標準交叉熵損失進行微調。最終,改良后的檢索器可以直接應用于提高目標LLM在目標任務中的性能。還有研究表明LLM可能更傾向于關注可讀性高的文檔而非信息豐富的文檔。


REPLUG計算檢索到的文檔的概率分布,然后通過計算KL散度進行監督訓練。這種簡單有效的訓練方法利用LM作為監督信號提高檢索模型的表現,無需特定的交叉注意力機制。

UPRISE同樣使用固定的LLM微調提示檢索器。LLM和檢索器都以提示-輸入對作為輸入,并利用LLM提供的分數指導檢索器的訓練,有效地將LLM視為數據集標注器。


此外,Atlas提出了四種監督微調嵌入模型的方法:注意力蒸餾、EMDR2、困惑度蒸餾和LOOP,它們旨在提高檢索器和LLM之間的協同作用,提升檢索性能,并使對用戶查詢的回應更加精確。

  • Adapters 微調模型可能面臨挑戰,比如通過API集成功能或應對有限的本地計算資源帶來的限制。因此,一些方法選擇引入外部適配器以幫助對齊。
    PRCA通過上下文提取階段和獎勵驅動階段來訓練適配器,然后使用基于令牌的自回歸策略優化檢索器的輸出。令牌過濾方法使用交叉注意力分數高效過濾令牌,僅選擇得分最高的輸入令牌。
    RECOMP引入了用于生成摘要的提取式和生成式壓縮器。這些壓縮器要么選擇相關句子,要么合成文檔信息,創建針對多文檔查詢的定制摘要。
    此外,PKG引入了一種通過指令性微調將知識整合到白盒模型中的創新方法。在這種方法中,檢索器模塊被直接替換以根據查詢生成相關文檔。這種方法有助于解決微調過程中遇到的困難,并提高模型性能。

Generator模塊

RAG的核心是生成器,它結合檢索器提取的信息,生成準確、相關的連貫文本。輸入不僅限于上下文信息,還包含相關文本片段,使得回答更豐富、相關。生成器確保內容與信息的連貫性,并在生成階段對輸入數據進行精細調整,以適應大型模型。后續小節將探討檢索后處理和微調生成器。

如何通過Post-retrieval過程增強檢索結果

在大型語言模型(LLM)的應用中,研究者依賴于如GPT-4這類先進模型來綜合處理不同文檔的信息。但LLMs面臨上下文長度限制和對冗余信息處理的挑戰,為此,研究轉向了檢索后處理,以提升檢索結果質量和更好地滿足用戶需求。檢索后處理通常包括信息壓縮和結果重排序。

  • 信息壓縮 信息壓縮對于管理大量檢索信息、減少噪音、解決上下文長度限制和提升生成效果至關重要。PRCA和RECOMP通過訓練提取器和壓縮器來生成更簡潔的上下文。另一研究通過減少文檔數量來提高模型答案的準確性,提出了結合LLM和小型語言模型(SLM)的“Filter-Reranker”范式,顯示出在信息提取任務中的顯著改進。
  • 重排序 重排序模型通過優先排列最相關文檔,降低了性能下降問題,提升了檢索的效率和響應速度。重排序模型在整個檢索過程中充當優化器和精煉器的雙重角色,為語言模型處理提供了更有效和準確的輸入,同時通過上下文壓縮提供了更精確的檢索信息。

Fine-tuning LLM for RAG

在RAG模型中,生成器的優化是提高模型性能的關鍵。生成器負責將檢索的信息轉化為與用戶查詢相關的自然文本。RAG區別于標準LLM的地方在于,它結合了用戶的查詢及檢索器獲取的結構化/非結構化文檔作為輸入,這對小型模型的理解尤為重要。因此,針對查詢和檢索文檔的輸入微調模型至關重要,通常會在微調前對檢索到的文檔進行后處理。RAG的生成器微調方法與LLM的通用微調方法保持一致。接下來的部分將介紹涉及不同數據類型和優化功能的研究工作。

  • General Optimization Process 作為一般優化過程的一部分,訓練數據通常由輸入輸出對構成,目的是訓練模型根據輸入x產生輸出y。Self-Mem研究中,傳統的訓練方法被采用,在此方法中,模型給定輸入x并檢索相關文檔z(選擇最相關的一個),然后整合(x, z)生成輸出y。該研究采用了兩種微調范式:聯合編碼器和雙編碼器。聯合編碼器使用標準的編碼器-解碼器模型,編碼器編碼輸入,而解碼器通過注意力機制生成令牌。雙編碼器則設立兩個獨立編碼器分別編碼輸入和文檔,解碼器使用雙向交叉注意力處理這些輸出。這兩種架構都基于Transformer,并使用負對數似然損失來進行優化。
  • 利用對比學習 在語言模型訓練階段,通常創建輸入和輸出對,但這可能導致模型僅訓練于正確的輸出示例,即“曝光偏差”,限制其輸出范圍并可能過度擬合,影響泛化能力。為減少此偏差,SURGE使用圖文對比學習法以促使模型產生多樣化響應,減少過擬合并提升泛化。結構化數據檢索任務中的SANTA框架采用三階段訓練,通過對比學習精煉查詢和文檔嵌入,并強調實體語義在文本數據表示中的重要性,訓練模型重建掩碼實體,以增強對實體語義的理解。

Augmentation模塊

本節內容圍繞三個關鍵方面展開:增強階段、增強數據來源和增強過程。這些方面闡明了對RAG發展至關重要的關鍵技術。下圖展示了RAG核心組件的分類體系。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

在哪些階段進行增強?

預訓練階段

在預訓練階段加強開放領域問答的預訓練模型(PTM),研究者們探索了結合檢索策略的方法。例如,REALM模型在遮蔽語言模型(MLM)框架中實施了知識嵌入和檢索-預測流程。RETRO模型從零開始利用檢索增強進行大規模預訓練,減少了參數數量并在困惑度上超越了GPT模型。Atlas模型將檢索機制融合到T5架構的預訓練和微調階段,而COG模型通過模擬復制現有文本片段,展現了在問答和領域適應方面的出色性能。隨著模型參數的增長定律,研究者們正在預訓練更大的模型,如RETRO++模型。這些模型在文本生成質量、事實準確性、降低毒性以及下游任務熟練度方面取得了顯著進步,特別是在知識密集型任務如開放領域問答中。增強預訓練的模型在困惑度、文本生成質量和任務特定性能方面優于標準GPT模型,且使用的參數更少。這種方法還面臨一些挑戰,如大量預訓練數據集和資源的需求以及模型大小增加時更新頻率的下降。然而,這種方法提供了模型彈性方面的顯著優勢,訓練完成的增強檢索模型可以脫離外部庫獨立運行,提高了生成速度和運營效率,這使得它成為人工智能和機器學習領域持續研究和創新的熱門話題。

Fine-tuning階段

RAG和微調是提升大型語言模型(LLMs)性能的重要手段,可以針對具體場景進行優化。微調有助于檢索特定風格的文檔,改善語義表達,并協調查詢和文檔之間的差異。此外,微調還可用于調整生成器產出具有特定風格和目標的文本,并可優化檢索器與生成器間的協同作用。


微調檢索器旨在提升語義表征的質量,通過使用專門的語料庫直接微調嵌入模型來完成。此外,微調使檢索器的能力與LLMs的偏好更好地協調,并針對特定任務提高適應性,同時增強多任務場景中的通用性。


微調生成器可以產出更加風格化和定制的文本,使模型能夠適應不同的輸入數據格式,并通過指令性數據集生成特定格式的內容。例如,在自適應或迭代檢索場景中,LLMs可以被微調以產生推動下一步操作的內容。


協同微調檢索器和生成器可以增強模型的泛化能力并避免過擬合,但這也會增加資源消耗。RA-DIT提出了一個輕量級的雙指令調整框架,可有效地為LLMs增加檢索能力并避免不必要的信息。


盡管微調存在專門數據集和計算資源的需求局限性,但它允許模型針對特定需求和數據格式進行定制,潛在地減少資源使用量。因此,微調是RAG模型適應特定任務的關鍵環節,盡管面臨挑戰,但能夠提高模型的多功能性和適應性,是構建高效、有效檢索增強系統的重要組成部分。

推理階段

在RAG模型中,推理階段是整合大型語言模型的關鍵環節。傳統的Naive RAG在這個階段整合檢索內容指導生成過程。為克服其局限性,采用了在推理中引入更豐富上下文信息的高級技術。如DSP框架通過凍結的LMs與檢索模型交換自然語言文本,豐富上下文提升生成結果;PKG為LLMs加入知識引導模塊,使其檢索相關信息而不改變LM參數;CREAICL通過同步檢索跨語言知識增強上下文;而RECITE直接從LLMs采樣段落生成上下文。


針對需要多步推理的任務,ITRG迭代檢索信息以確定正確推理路徑,ITERRETGEN采用迭代策略循環合并檢索與生成,PGRA提出任務不可知檢索器和提示引導重排器的兩階段框架。IRCOT結合RAG和思維鏈方法,在問答任務中提高GPT-3性能。這些推理階段優化提供了輕量且經濟的選擇,利用預訓練模型的能力,無需額外訓練。它們的主要優勢是在不變更LLM參數的同時提供任務相關的上下文信息。不過,此方法需細致的數據處理優化,并受限于基礎模型的固有能力。為有效應對多任務需求,通常與分步推理、迭代檢索和自適應檢索等程序優化技術結合使用。

增強數據源

RAG模型的效果顯著受到數據源選擇的影響,這些數據源根據不同知識和維度的需求可分為非結構化數據、結構化數據和由大型語言模型生成的內容。技術樹展示了利用這些不同類型數據進行增強的代表性RAG研究,其中三種顏色的樹葉分別代表不同數據類型的應用。最初,RAG模型的增強主要依賴非結構化數據如文本,隨后演變為包括結構化數據如知識圖譜進行優化。近期研究動向更傾向于使用LLMs自我生成的內容來進行檢索和增強。

非結構化數據的增強

RAG模型在處理非結構化文本時,涵蓋了從單個詞匯到短語乃至文檔段落的不同檢索單元,以不同的粒度來平衡精確性與檢索復雜性。一些研究如FLARE采用主動檢索方法,由語言模型觸發,以生成低概率詞的句子為基礎進行文檔檢索,并結合檢索上下文優化生成結果。RETRO則利用塊級檢索邏輯,通過前一個塊的最近鄰居來指導下一個塊的生成,注意到為保持因果邏輯,生成過程需要確保僅使用前一個塊的信息。

結構化數據的增強

結構化數據,如知識圖譜(KGs),提供高質量的上下文并減少模型產生錯誤幻象。RET-LLMs 利用過去的對話構建知識圖譜記憶以供未來參考。SUGRE 采用圖神經網絡(GNNs)來編碼相關KG子圖,通過多模態對比學習確保檢索到的事實與生成文本之間的一致性。KnowledGPT 生成知識庫(KB)搜索查詢,并將知識存儲在個性化的基礎上,從而增強了RAG模型的知識豐富性和上下文性。

在RAG中利用LLMs生成的內容

在RAG模型的發展中,研究人員探索了從LLMs內部知識中獲取增強信息的方法,以克服外部輔助信息的局限。通過對問題進行分類和選擇性地應用檢索增強(SKR),替換傳統檢索器為LLM生成器以產生更準確上下文(GenRead),以及迭代建立無界記憶池以自我增強生成模型(Selfmem),這些創新做法極大地拓寬了數據源在RAG中的使用,目的是為了提升模型的整體性能和解決任務的有效性。

增強過程

在RAG領域的實踐中,一個單一的檢索步驟后接生成步驟可能導致“中間迷失”現象,即單次檢索可能帶來與關鍵信息不符的冗余內容,影響生成質量。對于需要多步推理的復雜問題,這樣的單一檢索往往信息有限。為此,研究提出了迭代檢索、遞歸檢索和自適應檢索等方法來優化檢索過程,使其能夠獲取更深入、更相關的信息,特別是在處理復雜或多步查詢時。自適應檢索則可以根據任務和上下文的特定需求動態調整檢索過程,提升了檢索的靈活性和有效性。

迭代檢索

在RAG模型的迭代檢索過程中,為了為LLMs提供更全面的知識庫,系統會根據初始查詢和已生成的文本多次收集文檔。這種方法能夠增強答案生成的穩固性,但它可能會因為依賴特定的詞匯序列來界定生成文本與檢索文檔的邊界而導致語義不連貫和不相關信息的積累。針對特定數據場景,研究者們采用了遞歸檢索和多跳檢索技術,遞歸檢索依賴于結構化索引來層次化處理數據,多跳檢索則深入圖結構化數據源提取關聯信息。此外,ITER-RETGEN等方法將檢索和生成融合在一起,通過檢索增強的生成和生成增強的檢索來處理特定任務,從而在后續的迭代中生成更好的回應。這些創新方法都在努力提升模型的性能和任務的有效性。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/evaluation/RetryQuery.html#retry-query-engine

遞歸檢索

遞歸檢索常用于信息檢索和NLP中,旨在通過迭代優化搜索查詢來加深搜索結果的相關性和深度。這一過程通過反饋循環逐步精確至最關鍵的信息,從而增強搜索體驗。例如,IRCoT利用思維鏈條來指導檢索,ToC創建澄清樹來優化查詢中的模糊部分。遞歸檢索對于初始用戶需求不明確或信息需求專業化、細致的復雜搜索場景特別有效。這種方法的遞歸本質促使其持續學習和適應用戶需求,經常能夠顯著提升用戶對搜索結果的滿意度。

自適應檢索

自適應檢索方法例如Flare和SelfRAG通過允許LLMs主動決定最佳的檢索時機和內容來改進RAG框架,增強了檢索信息的效率和相關性。這些方法都是LLMs在操作中主動判斷的更廣泛趨勢的一部分,如AutoGPT、Toolformer和Graph-Toolformer等模型代理所展示的。例如,Graph-Toolformer主動地使用檢索器、應用Self-Ask技術以及借助少量提示來啟動搜索查詢。WebGPT集成了強化學習框架以訓練GPT-3模型在文本生成時自主使用搜索引擎。Flare通過監控生成過程中生成術語的概率來自動化檢索時機。Self-RAG引入了“反思符號”,允許模型反思其輸出,并自主決定何時激活檢索,或由預定義閾值觸發。Self-RAG通過使用批評分數來更新分數,使模型的行為更加定制化,并優化了檢索決策過程。


LLM的優化因其日益增長的重要性而受到關注,提示工程、Fine-Tuning和RAG都有各自的特點,選擇使用哪種方法應基于特定場景的需求和每種方法的固有屬性。llamaindex案例:https://docs.llamaindex.ai/en/stable/examples/query_engine/flare_query_engine.html

RAG和Fine-Tuning的對比

RAG 類似于給模型一本教科書用于特定信息的檢索,非常適合處理具體的查詢。而 FT 類似于學生隨時間學習并內化知識,更適合重現特定的結構、風格或格式。FT 通過加強模型的基礎知識、調整輸出和傳授復雜指令來提高模型的表現和效率,但在融入新知識或快速迭代新使用場景方面相對較弱。


RAG 和 FT 并不互斥,實際上可以互補,有助于在不同層次上提升模型的能力。在某些案例中,結合使用 RAG 和 FT 可能能夠實現最優性能。然而,涉及 RAG 和 FT 的優化過程可能需要經過多次迭代才能取得滿意的成效。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

RAG效果評估

RAG的快速進步和在自然語言處理領域的廣泛應用使得RAG模型評估成為大型語言模型社區研究的一個重要領域。評估的核心目的是理解和優化RAG模型在各種應用場景中的性能。


過去,RAG模型的評估通常集中在它們在特定下游任務中的表現,并使用與任務相關的已建立評價指標,比如問答任務的EM和F1分數,事實核查任務的準確性指標。像RALLE這樣的工具也是基于這些特定任務的度量標準進行自動評估的。


然而,目前缺少專門評估RAG模型獨特特性的研究。接下來的部分將從特定任務的評估方法轉向基于RAG獨特屬性的文獻綜合。這包括探討RAG評估的目標、評估模型的不同方面,以及可用于這些評估的基準和工具。目標是提供一個關于RAG模型評估的全面概覽,并概述那些專門針對這些高級生成系統獨特方面的方法論。

評估對象

RAG模型的評估主要圍繞兩個關鍵組成部分展開:檢索模塊和生成模塊。這種劃分確保了對提供的上下文質量和產生的內容質量的徹底評價。

  • 檢索質量 評估檢索質量對于確定檢索組件獲取上下文的有效性至關重要。標準的來自搜索引擎、推薦系統和信息檢索系統領域的度量標準被用來衡量RAG檢索模塊的性能。常用的度量指標包括命中率(Hit Rate)、平均倒數排名(MRR)、歸一化折扣累積增益(NDCG)等。
  • 生成質量 生成質量的評估側重于生成器從檢索上下文中合成連貫且相關答案的能力。這種評估可以根據內容的目標分為兩類:未標記內容和標記內容。對于未標記內容,評估范圍包括生成答案的忠實度、相關性和無害性。相反,對于標記內容,重點是模型產生的信息的準確性。此外,檢索和生成質量評估都可以通過手動或自動評估方法進行。

Evaluation Aspects

現代RAG模型的評估實踐強調三個主要質量得分和四個基本能力,這些綜合信息共同構成了對RAG模型兩個主要目標——檢索和生成的評估。

Quality Scores

RAG模型的評估實踐關注三個主要的質量評分:上下文相關性、答案忠實度和答案相關性。這些評分標準從多個角度評價RAG模型在信息檢索和生成過程中的性能:

  • 上下文相關性評估檢索到的上下文的準確性和具體性,確保它與問題相關,從而減少處理不相關內容的開銷。
  • 答案忠實度確保生成的答案忠于檢索到的上下文,保持與原始信息的一致性,防止產生矛盾。
  • 答案相關性確保生成的答案直接關聯到提出的問題,有效地解答核心詢問。這些質量評分共同為評估RAG模型在處理和生成信息方面的有效性提供了全面的視角

需要的能力

RAG模型的評估覆蓋了指示其適應性和效率的四個重要能力:噪聲魯棒性、負面拒絕、信息整合和反事實魯棒性。這些能力對于評價模型在多樣化挑戰和復雜情境下的表現至關重要。

  • 噪聲魯棒性關注模型處理噪聲文檔的能力。
  • 負面拒絕評估模型在檢索文檔無法提供必要知識時拒絕回應的能力。
  • 信息整合考察模型綜合多個文檔信息以回答復雜問題的技能。
  • 反事實魯棒性測試模型識別并忽視文檔中已知錯誤的能力。

上下文相關性和噪聲魯棒性是評估檢索質量的重要指標,而答案忠實度、答案相關性、負面拒絕、信息整合和反事實魯棒性則是評估生成質量的關鍵。這些評估方面的具體度量標準在文獻中進行了總結,但目前這些度量還不是成熟或標準化的評估方法。盡管如此,一些研究也已經開發出針對RAG模型特性的定制度量指標。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

評估的Benchmarks和工具

這一部分介紹了RAG模型的評估框架,該框架包含基準測試和自動評估工具。這些工具提供用于衡量RAG模型性能的定量指標,并且幫助更好地理解模型在各個評估方面的能力。知名的基準測試如RGB和RECALL專注于評價RAG模型的關鍵能力,而最新的自動化工具如RAGAS、ARES和TruLens則利用大型語言模型來評定質量得分。這些工具和基準測試共同形成了一個為RAG模型提供系統評估的堅實框架,相關細節在下表中有所總結。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

展望

RAG面臨的挑戰

盡管RAG技術已經取得了重大進展,但仍有若干挑戰需要深入研究。其中包括如何處理LLMs的上下文窗口大小限制、提升RAG的魯棒性、探索結合RAG和微調(RAG+FT)的混合方法、擴展LLMs在RAG框架中的角色、研究規模法則在RAG中的適用性,以及實現生產就緒的RAG。特別地,需要在RAG模型中找到平衡上下文長度的方法,提高對抗性或反事實輸入的抵抗力,并確定RAG與微調的最佳整合方式。同時,需要確保RAG在生產環境中的實用性和數據安全,解決檢索效率和文檔召回率的問題。這些挑戰的探索和解決將推動RAG技術向前發展。

RAG的模態擴展

RAG技術已經發展到不僅限于文本問答,而是包含圖像、音頻、視頻和代碼等多種數據模態。這一擴展催生了在各個領域整合RAG概念的創新多模態模型。例如,RA-CM3作為一個多模態模型,能夠檢索和生成文本與圖像;BLIP-2利用圖像編碼器和LLMs進行視覺語言預訓練,實現圖像到文本的轉換;而"Visualize Before You Write"方法則展示了在開放式文本生成任務中的潛力。音頻和視頻方面的GSS方法和UEOP實現了數據的音頻翻譯和自動語音識別,而Vid2Seq通過引入時間標記幫助語言模型預測事件邊界和文本描述。在代碼領域,RBPS通過檢索與開發者目標一致的代碼示例擅長處理小規模學習任務,而CoK方法則通過整合知識圖譜中的事實來提高問答任務的性能。這些進展表明,RAG技術在多模態數據處理和應用方面具有巨大的潛力和研究價值。

RAG的生態

下游任務和評估

RAG技術在豐富語言模型處理復雜查詢和生成詳盡回答方面表現出極大潛力,它已經在開放式問題回答和事實驗證等多種下游任務中展現了優異的性能。RAG不但提升了回答的精準度和關聯性,還增強了回答的多樣性和深度。特別在醫學、法律和教育等專業領域,RAG可能會減少培訓成本,提升與傳統微調方法相比的性能。為了最大化RAG在各種任務中的效用,完善其評估框架至關重要,包括開發更加細致的評估指標和工具。同時,增強RAG模型的可解釋性是一個關鍵目標,以便用戶能更好理解模型生成回答的邏輯,促進RAG應用的信任度和透明度。

技術棧

RAG生態系統的發展顯著受到其技術棧進化的影響。隨著ChatGPT的興起,LangChain和LLamaIndex等關鍵工具因其提供的豐富RAG相關API而快速流行,成為LLMs領域的核心工具。即便新興技術棧在功能上不如它們,也通過專業化的服務來突顯差異化,例如Flowise AI通過低代碼途徑使用戶能夠輕松部署AI應用。同樣,HayStack、Meltano和Cohere Coral等技術因其獨到的貢獻而備受矚目。


傳統軟件和云服務提供商也在拓展服務以提供RAG為中心的解決方案,如Weaviate的Verba和亞馬遜的Kendra。RAG技術的演變呈現出不同的專業化方向,包括定制化、簡化和專業化,以更好地適應生產環境。RAG模型及其技術棧的共同成長表現在技術進步為基礎設施設定了新的標準,技術棧的增強又推動了RAG能力的進一步演化。RAG工具包正在成為企業應用的基礎技術棧,但一個完全集成的綜合平臺仍需要進一步創新和發展。

實踐

LlamaIndex實踐

本文中所提到的很多RAG的優化方案,都可以在LlamaIndex中找到對應的實現,LlamaIndex官方也出了一份官方的指南,詳細介紹了一些模塊的最佳實踐經驗。更多詳情可以參考A Cheat Sheet and Some Recipes For Building Advanced RAG。


下圖列舉了一些RAG技術在llamaindex中對應的代碼模塊,可以參考llamaindex文檔進一步嘗試。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

業界實踐

百川智能的RAG方案

百川智能的RAG方案流程包括以下幾個關鍵步驟:

  1. 提升上下文窗口容量:百川智能推出了Baichuan2-192K模型,它具有業界領先的192K超長上下文窗口,能一次處理高達35萬漢字的文本。
  2. 搜索增強知識庫:將向量數據庫升級為搜索增強知識庫,使得大模型在響應用戶查詢時能夠訪問到互聯網實時信息和企業的完整知識庫。
  3. 用戶意圖理解和搜索查詢優化:在用戶提出的Prompt(查詢)基礎上,使用自研大模型進行微調,將連續多輪、口語化的用戶查詢轉換為搜索引擎更容易理解的關鍵詞或語義結構。
  4. 復雜Prompt拆分與并行檢索:借鑒Meta的CoVe技術,將復雜的Prompt拆分為多個可以并行檢索的查詢,使大模型能針對每個查詢進行定向知識庫搜索。
  5. 進一步理解用戶意圖:使用TSF(Think Step-Further)技術來推斷用戶輸入背后的更深層問題,從而更全面地理解用戶意圖并引導模型提供更有價值的答案。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

6.向量檢索、稀疏檢索、Rerank的結合:為了提高知識獲取效率和準確性,百川智能結合使用了向量檢索與稀疏檢索,形成了一種混合檢索方式,以提高目標文檔的召回率。

7.大模型自省技術:在通用RAG基礎上,百川智能創新性地提出了Self-Critique技術,讓大模型能夠根據Prompt,對搜索回來的內容進行自省和篩選,以確保提供與用戶查詢最匹配、最優質的答案。

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

8.模型與搜索的深度融合:通過這些步驟,百川智能實現了大模型與搜索的緊密結合,為用戶提供定制化解決方案,有效降低成本、提升性能,并持續增值企業專有知識庫。

百川智能的RAG方案顯著地改善了大模型在行業垂直場景中的應用,通過提供一種更低成本、更高效的定制化大模型解決方案,提升了大模型技術的落地潛力,并有望引領大模型產業走向一個全新的階段。

OpenAI案例

??https://blog.langchain.dev/applying-openai-rag/??

??https://www.youtube.com/watch?v=ahnGLM-RC1Y??

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

OpenAI展示了一個使用檢索增強生成(RAG)技術來優化問題解答系統的案例。起初,系統僅僅通過基于余弦相似度的檢索方案達到45%的準確率。為了提高性能,嘗試了多種策略,如HyDE檢索,它通過生成虛擬答案并用其檢索相關段落,以及微調嵌入模型來調整嵌入空間。雖然這些方法提高了準確性,但由于成本和速度的問題,最終并未被采用。通過調整數據分片和嵌入,準確率提升至65%;進一步通過Rerank和分類不同類型的問題,準確率提升至85%。最后,通過prompt工程、引入工具使用和查詢擴展等方法,將準確率提高到了98%。在整個過程中,他們并沒有進行大模型的微調,并強調了解決問題的關鍵在于檢索系統能夠提供正確的上下文信息。

總結

三大關鍵技術看RAG如何提升LLM的能力-AI.x社區

RAG技術通過結合語言模型中的參數化知識和外部知識庫中的非參數化數據,顯著提升了大型語言模型(LLMs)的能力,特別是在處理復雜查詢和生成詳細響應方面。RAG技術經歷了從初級到高級再到模塊化的演進,其中高級RAG通過引入查詢重寫和塊重新排序等復雜架構元素,提升了性能和可解釋性。RAG與微調和強化學習等其他AI方法的整合,進一步擴展了其功能。在內容檢索方面,采用結構化和非結構化數據源的混合方法正成為趨勢。RAG的應用范圍正在擴展到多模態數據,如圖像、視頻和代碼,突出了其在AI部署方面的實際意義。


RAG生態系統的增長表現在以RAG為中心的AI應用的增加和支持工具的發展。隨著RAG應用領域的擴張,提煉評估方法以跟上其進化變得迫切必要,確保性能評估的準確性和代表性對于充分捕捉RAG在AI研究和開發中的貢獻至關重要。


本文轉自AI生成未來,作者:Meta


原文鏈接:??https://mp.weixin.qq.com/s/HQ6ooZrQQTkUzDkG5rUU6w??

標簽
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 婷婷综合色 | 麻豆a级片 | 妞干网视频 | 亚洲一区二区三区在线 | 免费的色网站 | 大久 | 久久久久久久久国产成人免费 | 羞羞视频免费在线 | av激情在线 | 免费精品久久久久久中文字幕 | 在线中文字幕亚洲 | 欧美精品网站 | 香蕉视频一区二区 | 久综合 | 中文字幕一区二区三区四区 | 国产免费视频 | 成人久久18免费 | 欧美精品在欧美一区二区 | 香蕉视频91| 色吊丝在线 | 国产精品视频免费看 | 国产精品久久国产精品 | 亚洲精品av在线 | 久久久久久免费毛片精品 | 男人天堂网站 | 精品一区久久 | 成人av在线大片 | 国产高清视频一区二区 | 国产精品成人一区二区三区 | 亚洲综合首页 | 亚洲午夜av久久乱码 | 亚洲一区二区在线播放 | 亚洲综合视频 | 久久国产精品-国产精品 | 久久久久久高潮国产精品视 | 国产精品99久久免费观看 | 一级黄片一级毛片 | 99精品视频在线 | 欧美日韩在线一区二区 | 精品国产黄a∨片高清在线 www.一级片 国产欧美日韩综合精品一区二区 | 一本色道久久综合亚洲精品高清 |