【RAG綜述系列】之 RAG 相關背景和基本原理

系列文章:

【RAG綜述系列】之 RAG 相關背景和基本原理

【RAG綜述系列】之 RAG 特點與挑戰以及方法與評估

【RAG綜述系列】之 RAG 先進方法與綜合評估

【RAG綜述系列】之 RAG 應用和未來方向


正文:

檢索增強生成(Retrieval-Augmented Generation, RAG) 近年來因其能夠結合大規模檢索系統與生成模型,提高自然語言理解和生成能力而受到了廣泛關注。RAG 充分利用外部知識源(如文檔、數據庫或結構化數據)來增強模型性能,使其生成更準確且上下文相關的輸出。

本綜述旨在提供對 RAG 的全面概述,深入分析其基本組件,包括檢索機制、生成過程及二者的融合方式。討論了 RAG 的關鍵特性,例如利用動態外部知識增強生成模型的能力,以及如何對齊檢索到的信息與生成目標所面臨的挑戰。此外,提出了一種RAG 方法的分類體系,涵蓋從基礎的檢索增強方法到結合多模態數據和推理能力的高級模型。

此外,還回顧了評估 RAG 系統的基準測試和常用數據集,并深入探討了其在問答(QA)、摘要(Summarization)和信息檢索(IR)等領域的應用。最后,總結了 RAG 領域的前沿研究方向和改進機會,包括提升檢索效率、增強模型可解釋性和優化特定領域的適應性。最終展望了 RAG 在應對真實世界挑戰中的潛力,以及它在推動自然語言處理(NLP)進一步發展方面的重要作用。

1. 引言

檢索增強生成(RAG)已成為一種關鍵方法,它將信息檢索與生成式模型相結合,以增強自然語言處理任務的能力。通過利用外部知識源,RAG 系統能夠生成更準確且上下文相關的輸出,從而解決諸如問答、摘要和開放領域對話等領域的復雜挑戰。近年來,各種 RAG 方法相繼被提出,這些方法涵蓋了從基本的檢索增強模型到更高級的架構,包括多跳推理 和 增強記憶技術。這些發展突顯了 RAG 在 NLP 領域的潛力,它能夠在一個統一的框架內動態地結合檢索和生成,以提升系統的整體表現。

RAG 模型通過在生成過程中引入外部知識源(如文檔、數據庫或結構化數據)來增強傳統的語言模型。與僅依賴預訓練參數的傳統模型不同,RAG 系統在生成時動態檢索相關信息,從而生成更加信息豐富且上下文準確的內容。這種方法克服了傳統語言模型的關鍵局限性,例如:

  • 無法訪問實時知識或特定領域知識,以及難以處理超出詞匯表(OOV)或罕見實體。
  • 在問答任務中,RAG 模型會從海量語料庫中檢索相關段落,以生成更精準且信息更豐富的答案;
  • 在文本摘要任務中,RAG 依賴外部文檔生成更具深度和完整性的摘要。

RAG 在早期的成功實踐已經顯著提升了多個 NLP 任務的效果,例如在開放域問答中,RAG 通過引入相關的外部上下文,超越了傳統的生成模型;在基于文檔的摘要任務中,它能夠生成更貼合原始材料細微差別的摘要。

RAG 的核心是一種以知識為中心的生成方式,即將外部知識作為提升語言生成能力的關鍵因素。通過結合相關、實時且結構化的信息,RAG 模型能夠顯著提高其生成上下文精準且事實準確的能力。這種知識驅動的生成方式有效解決了傳統語言模型的核心局限——傳統模型受限于其訓練數據,無法獲取動態知識或特定領域知識。RAG 通過集成外部知識,不僅能夠檢索并融合相關信息,還能在多條信息之間進行推理,從而生成更具細節和深度的輸出。這一向知識增強方向的轉變使得模型能夠處理更復雜的任務,例如:掌握專業領域知識,提高對話系統的回復相關性,以及生成高質量的摘要,使其更能體現原始文本的核心要點。通過將知識融入生成過程,RAG 為那些需要高精度和強上下文感知能力的應用打開了新的可能性。

盡管檢索增強生成已經取得了令人矚目的進展,但仍然存在多個挑戰,阻礙了該方法的充分發揮。

  • 知識選擇(knowledge selection)是主要問題之一,即模型必須從海量的外部資源中有效篩選出最相關的信息。這一任務極具挑戰性,主要因為現實世界的知識庫規模龐大、信息噪聲大且內容多樣。
  • 另一個關鍵挑戰是知識檢索(knowledge retrieval),即在生成時檢索到正確的信息,同時在檢索效率和相關性之間取得平衡。當前的檢索技術仍然難以精準匹配查詢與知識源,尤其是在高度專業化或存在歧義的場景下。
  • 此外,知識增強的上下文推理(knowledge-enhanced in-context reasoning) 也是一個重要難題,模型不僅要檢索到相關知識,還需要有效整合并推理,以確保生成內容的邏輯性和上下文適配性。

這些挑戰凸顯了 RAG 領域仍然需要更深入的研究,以及更優化的方法論。因此,對 RAG 進行全面的調研至關重要,這不僅有助于總結當前的局限性,也能為未來的發展方向提供指導。

本次調研的主要目標是從知識驅動的視角,全面梳理 RAG 的發展。通過聚焦外部知識與生成過程的融合,希望回顧RAG 領域的最新進展,包括模型、方法和技術。將介紹近年來涌現的關鍵 RAG 模型,以及用于檢索和生成的核心方法,并分析這些方法如何解決知識選擇、知識檢索和上下文推理的挑戰。此外,還希望挖掘當前研究的趨勢,并識別尚未深入探索的領域,例如:多模態知識整合和 特定領域應用。調研的獨特貢獻在于其以知識為核心的視角,提供了一個統一的框架來理解和推進 RAG 研究。本調研的目標讀者包括研究人員、工程師和行業從業者,他們希望探索 RAG 在各種 NLP 任務中的應用。隨著該領域的快速演進,本調研不僅是一個基礎資源,也將成為未來研究的指南,提供對當前挑戰和創新機會的深入分析。

2. RAG 背景概述

本節旨在為理解 RAG(檢索增強生成,Retrieval-Augmented Generation)提供必要的背景知識。我們首先回溯 RAG 的起源,梳理其從正式提出到逐步發展的演變歷程。隨后,我們對現有的相關綜述進行分析,歸納它們的研究重點與局限性,以此明確本綜述在當前研究格局中的定位與貢獻。

2.1 RAG 的起源

隨著語言模型的不斷演進,研究人員開始探索如何通過引入檢索機制來提升文本生成的質量。然而,在早期階段,這一方法尚未形成明確的術語定義。直到 2020 年,Facebook 正式提出 RAG 概念,并成功將其應用于知識密集型任務。RAG 通過引入外部知識檢索機制,顯著增強了生成模型的能力,在問答和文本理解等任務中展現出卓越的性能。同一時期,Google 也推出了 REALM,采用類似的檢索增強方法。REALM 在預訓練階段集成了隱式知識檢索模塊,在開放域問答任務上取得了顯著進展,并在當時達到了最先進水平。

自此,RAG 逐漸受到學術界的廣泛關注,并因其相較于傳統生成模型的獨特優勢,成為研究熱點。RAG 的核心機制在于結合檢索與生成,使得模型能夠在處理復雜推理任務時,動態訪問外部知識庫中的相關信息,從而提升生成內容的準確性與信息豐富度。這一范式的轉變,標志著自然語言處理(NLP)領域的一次重要革新——模型不再僅僅依賴內部參數,而是能夠高效利用海量的外部知識資源。如圖 1 所示,自 2020 年起,研究人員陸續探索了 RAG 在不同方向上的應用,而 2022 年底 ChatGPT 的發布,更是引發了該領域的指數級增長。大量研究紛紛涌現,致力于通過檢索增強策略進一步提升大型語言模型的能力。這些持續的研究進展,正在深刻塑造現代 NLP 的技術格局。

圖1:一個用于組織 RAG 研究工作的框架。時間軸從 2020 年至今,將與 RAG 相關的研究分為三個主要領域:基礎(包括 RAG 學習和 RAG 框架)、高級和評估。語言模型的關鍵里程碑(如 GPT-3、ChatGPT、GPT-4)也在時間軸上標注。

2.2 相關綜述

伴隨著生成式 AI,尤其是 RAG 技術的蓬勃發展,眾多綜述文章相繼問世。然而,這些綜述往往僅聚焦于 RAG 的特定方面。例如,它們要么專注于 RAG 的基礎概念,要么僅在有限場景下概述 RAG 的增強方法。大多數現有研究都圍繞文本生成任務,探討如何利用大型語言模型進行檢索增強,而對其他模態的 RAG 研究涉及較少。

《A Survey on Retrieval-Augmented Text Generation》這篇論文的綜述提供了 RAG 的基本概覽,并探討了其在文本生成任務中的具體應用。《A Survey on RAG Meeting LLMs: Towards Retrieval-Augmented Large Language Models》、《Retrieval-Augmented Generation for Large Language Models: A Survey》和《Less is More: Making Smaller Language Models Competent Subgraph Retrievers for Multi-hop KGQA》 幾篇論文則從大型語言模型的角度研究了 RAG,重點分析了面向查詢的 RAG 增強方法。《Retrieval-Augmented Generation for Natural Language Processing: A Survey》深入剖析了 RAG 在檢索技術中的關鍵發展,并介紹了其在自然語言處理任務中的廣泛應用。此外,一些研究嘗試從更廣義的角度探討 RAG。《Retrieving Multimodal Information for Augmented Generation: A Survey》和《Retrieval-Augmented Generation for AI-Generated Content: A Survey》的最新研究將 RAG 擴展至多模態場景,探索其在 AI 生成內容(AIGC)領域的技術和應用。《Graph Retrieval-Augmented Generation: A Survey》 的研究則利用圖結構信息優化 RAG 的檢索過程,以增強關系知識的獲取能力,并提升模型生成上下文感知的內容。

除了對 RAG 技術本身的研究,近年來學界也日益關注 RAG 系統的評估問題。《Evaluation of Retrieval-Augmented Generation: A Survey》 的綜述文章深入探討了 RAG 評估的挑戰,提出了一套綜合性的評估框架,并系統分析了現有基準測試的優勢與局限性。

盡管已有諸多綜述覆蓋了 RAG 的多個方面,但目前仍然缺乏一篇全面的綜述,能夠系統性地整合 RAG 的基礎理論、增強方法及其跨領域應用。此外,現有綜述普遍忽視了 RAG 的核心價值——知識的有效利用。為填補這一空白,本文從知識利用的視角出發,系統性地梳理和探討 RAG 技術的發展現狀與未來趨勢。

3. RAG 基本原理

檢索增強生成(Retrieval-Augmented Generation,RAG)作為一種強大的范式,結合了大型語言模型(LLMs)的內部知識與外部知識,以提升文本生成的質量。通過在生成流程中集成檢索機制,RAG 解決了傳統序列到序列(sequence-to-sequence)框架的局限性,尤其在需要豐富領域知識的任務場景中表現突出。本節將對 RAG 進行全面概述,并探討其核心組成部分:從外部知識源進行檢索、結合內部與外部知識進行生成,以及貫穿其中的關鍵知識融合過程。

圖2:RAG 框架,該框架由三個主要組成部分構成:(1) 由 LLM 利用其內部知識處理查詢;(2) 根據查詢檢索外部知識;(3) 通過知識融合,將內部知識與外部知識結合,以生成最終答案。

3.1 問題定義

大多數生成任務可以抽象為一個輸入序列?x?到輸出序列?y?的轉換過程,即:

y=f(x)

然而,這一基本框架可能因信息不足或上下文需求復雜而受到限制。RAG 通過引入檢索組件來彌補這一不足,使輸入信息能夠得到相關外部知識的補充。具體而言,檢索函數?g?從外部知識庫中提取相關信息?z?作為補充:

z=g(x)

隨后,生成函數?f?結合原始輸入序列?x?與檢索到的上下文信息?z?以生成最終輸出:

y=f(x,z)=f(x,g(x))

這一增強框架利用外部知識提升生成質量,尤其適用于需要復雜上下文理解的任務,如機器翻譯和視覺問答(VQA)。

3.2 檢索(Retrieval)

在大型語言模型(LLMs)背景下,RAG 的檢索過程旨在從外部來源提供有用的知識。這些知識可能涵蓋多種模態,包括文本、圖像、視頻、音頻、代碼、表格等。相應地,存儲格式也多種多樣,從簡單的文本文件到復雜的數據庫和搜索引擎不等。此外,知識結構具有異構性,可能以非結構化的純文本、半結構化的 HTML 數據或結構化的圖數據等形式存在。無論知識的模態、存儲格式或結構如何,所有從外部知識庫中獲取相關信息的過程都可視為檢索。

3.3 生成(Generation)

在生成過程中,生成模型結合內部和外部知識,將輸入轉換為連貫且相關的輸出。無論數據格式或具體任務如何,生成階段的核心在于 “去噪(Denoising)” 和 “推理(Reasoning)” 。

  • 去噪(Denoising) 側重于從檢索到的知識中篩除無關或相互矛盾的信息,確保僅有可靠且相關的知識影響生成過程。
  • 推理(Reasoning) 則使模型能夠有效整合來自多個來源的信息,建立邏輯聯系,并生成有據可依的輸出。

通過對檢索信息的有效 去噪,以及對多個知識來源的深入 推理,生成模型能夠在處理復雜任務的同時,保持輸出的準確性與連貫性。

3.4 知識融合(Knowledge Integration)

知識融合(Knowledge Integration),在 RAG 語境下通常稱為增強(Augmentation),是將 LLMs 的內部知識與檢索到的外部知識進行整合的關鍵過程。這種?神經-符號融合(Neural-Symbolic Integration) 主要可以通過以下三種方式實現:

  1. 輸入層融合(Input-Layer Integration):將檢索到的文檔直接與原始查詢拼接,然后輸入模型,使查詢與外部知識能夠同時被處理。
  2. 輸出層融合(Output-Layer Integration):在輸出 logits 層結合檢索到的知識,以調整模型的最終預測結果,特別適用于提高輸出準確性的任務。
  3. 中間層融合(Intermediate-Layer Integration):在生成過程中,將外部知識整合到模型的隱藏狀態中,從而實現內部知識與外部知識表示之間的更細粒度交互。

每種融合策略各具優勢,可根據具體任務需求和計算資源限制進行選擇。

總結

目前文章中回顧了 RAG 的基礎概念,并分析當前模型所面臨的關鍵挑戰,為理解外部知識與語言生成的融合奠定基礎。同時,深入探討 RAG 的核心原理,詳細介紹知識檢索、整合和生成的流程。后續會進一步探討前文提到的知識選擇、檢索效率及上下文推理等挑戰,并分析其復雜性。還有介紹 RAG 的各種方法,包括傳統的基于檢索的模型,以及更高級的多模態方法,這些方法引入了更強的推理能力和記憶機制。并分析評估 RAG 系統的標準和數據集,并批判性地回顧現有的評測方法與指標。

本文原文為論文《A Survey on Knowledge-Oriented Retrieval-Augmented Generation》的解讀。論文鏈接:A Survey on Knowledge-Oriented Retrieval-Augmented Generation

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73680.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73680.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73680.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CMake 構建的Qt 項目中的構建套件的配置

在Qt 框架中,使用CMake 構建工具時,需要自己給構建套件添加相關配置,否則已經添加的構建套件將不可選擇使用。 創建CMake 項目后,如果打開項目配置時,出現如下構建套件不可選的情況, 需要先確認是否安裝…

本地化智能運維助手:基于 LangChain 數據增強 和 DeepSeek-R1 的K8s運維文檔檢索與問答系統 Demo

寫在前面 博文內容為基于 LangChain 數據增強 和 Ollams 本地部署 DeepSeek-R1實現 K8s運維文檔檢索與問答系統 Demo通過 Demo 對 LEDVR 工作流, 語義檢索有基本認知理解不足小伙伴幫忙指正 😃,生活加油 我看遠山,遠山悲憫 持續分享技術干貨…

Kotlin when 表達式完全指南:從基礎到高級的12種實戰用法

掌握 when 的靈活運用,告別繁瑣的 if-else 鏈 以下是 Kotlin 中 when 表達式的 12種核心用法 的全面總結,涵蓋基礎到高級場景,并附帶實用示例: 一、基礎用法 1. 替代 Java 的 switch-case when (x) {1 -> println("一&qu…

新加坡 PSB 認證:安全標準、證書特點及申請注意事項

目錄 什么是PSB認證? 涉及產品范圍 強制性認證產品類別 自愿性認證產品 認證項目與測試標準 1. 安全測試 2. 電磁兼容性(EMC)測試 3. 能效測試(特定產品) 認證流程詳解 第一步:準備階段 第二步&a…

UE4學習筆記 FPS游戲制作26 UE中的UI

文章目錄 幾個概念創建一個UI藍圖添加UI獲取UI的引用 切換設計器和UI藍圖將UI添加到游戲場景錨點軸點slotSizeToContent三種UI數據更新方式函數綁定屬性綁定事件綁定 九宮格分割圖片 幾個概念 UMG:UE的UI編輯器 slate UI: UE的UI的編輯語言 創建一個UI藍圖 右鍵用…

HttpRunner v4.x 遠程調用實踐指南

一、基于 SSH 的遠程執行方案 1. 環境準備流程 在目標服務器部署 HttpRunner 運行時環境: # 遠程服務器執行(需 Golang 1.18 和 Python 3.8) curl -ksSL https://httprunner.com/script/install.sh | bash配置免密登錄(本地機器…

頭條項目的文章延遲發布功能

最近做的頭條項目其中有個功能是創作者發表的文章可以設置在未來某個時間發表,在實現這個功能的時候就在想該怎么實現呢?剛開始想的是利用Spring的定時任務定時的去數據庫中查詢,可以這個查詢頻率該怎么設置,每次從數據庫中需要查…

Celery 全面指南:Python 分布式任務隊列詳解

Celery 全面指南:Python 分布式任務隊列詳解 Celery 是一個強大的分布式任務隊列/異步任務隊列系統,基于分布式消息傳遞,專注于實時處理,同時也支持任務調度。本文將全面介紹 Celery 的核心功能、應用場景,并通過豐富…

OpenHarmony NativeC++應用開發speexdsp噪聲消除案例

隨著5.0的版本的迭代升級,筆者感受到了開源鴻蒙前所未有大的版本更替速度。5.0出現了越來越多的C API可以調用,極大的方便了native c應用的開發。筆者先將speexdsp噪聲消除的案例分享,老規矩,還是開源!!&am…

nuxt3 seo優化

在 Nuxt3 中,通過 nuxtjs/seo、nuxtjs/sitemap 和 nuxtjs/robots 模塊可以生成包含動態鏈接的站點地圖(sitemap.xml),但具體是“實時生成”還是“部署時生成”,取決于你的配置方式和數據更新頻率。以下是具體分析&…

es6的100個問題

基礎概念 解釋 let、const 和 var 的區別。什么是塊級作用域?ES6 如何實現它?箭頭函數和普通函數的主要區別是什么?解釋模板字符串(Template Literals)的用途,并舉例嵌套變量的寫法。解構賦值的語法是什么…

【機器學習】什么是決策樹?

什么是決策樹? 決策樹是一種用于分類和回歸問題的模型。它通過一系列的“決策”將數據逐步分裂,最終得出預測結果。可以把它看作是一個“樹”,每個節點表示一個特征的判斷,而每個分支代表了可能的判斷結果,最終的葉子…

Java面試黃金寶典15

1. 請找出增序排列中一個數字第一次和最后一次出現的數組下標 定義 由于數組是增序排列的,我們可以利用二分查找的特性來高效地定位目標數字。對于查找第一次出現的位置,當中間元素等于目標數字時,我們需要繼續向左搜索,以確保找…

CentOS 7安裝 mysql

CentOS 7安裝 mysql 1. yum 安裝 mysql 配置mysql源 yum -y install mysql57-community-release-el7-10.noarch.rpm安裝MySQL服務器 yum -y install mysql-community-server啟動MySQL systemctl start mysqld.service查看MySQL運行狀態,運行狀態如圖&#xff…

科軟25機試

題目: 2025科軟復試上機題&#xff08;回憶版&#xff09;題解_嗶哩嗶哩_bilibili 1. 字符串反轉 #include<bits/stdc.h> using namespace std;void solve(string& a, int CurN) {if (!(CurN % 2)) {int right a.size() - 1;int left 0;while (left < right)…

Oracle相關的面試題

以下是150道Oracle相關的面試題&#xff0c;涵蓋了Oracle的基礎概念、架構、SQL與PL/SQL、性能調優、高可用性、備份與恢復、安全、分區與索引、存儲與內存管理、網絡與連接、版本與升級等方面&#xff0c;希望對你有所幫助。 Oracle基礎概念 1. 什么是Oracle數據庫&#xff1…

docker安裝,鏡像,常用命令,Docker容器卷,Docker應用部署,自定義鏡像,Docker服務編排,創建私有倉庫

1.為什么使用docker 如果開發環境和測試環境的允許軟件版本不一致&#xff0c;可能會導致項目無法正常啟動 把環境和項目一起打包發送給測試環境 1.1docker的概念 開源的應用容器引擎&#xff0c;完全使用沙箱機制&#xff0c;相互隔離&#xff0c;容器性能開銷極低 一種容…

ES 字段的映射定義了字段的類型及其行為

在 Elasticsearch 中&#xff0c;字段的映射定義了字段的類型及其行為。你提供的 content_answer 字段映射如下&#xff1a; Json 深色版本 "content_answer": { "type": "text", "fields": { "keyword": { …

Manus的開源替代者之一:OpenManus通用AI智能體框架解析及產品試用

引言 在AI智能體領域&#xff0c;Monica團隊近期發布的Manus被譽為全球首個通用型AI智能體。該項目推出后迅速爆紅&#xff0c;邀請碼一號難求&#xff0c;隨之而來的是各路開發者快速構建了眾多類似的開源替代方案。其中&#xff0c;MetaGPT團隊的5位工程師僅用3小時就開發完…

Linux MariaDB部署

1&#xff1a;查看Linux系統版本 cat /etc/os-release#返回結果&#xff1a; NAME"CentOS Linux" VERSION"7 (Core)" ID"centos" ID_LIKE"rhel fedora" VERSION_ID"7" PRETTY_NAME"CentOS Linux 7 (Core)" ANSI…