檢索增強生成(Retrieval-augmented Generation),簡稱RAG,是當下熱門的大模型前沿技術之一。
檢索增強生成模型結合了語言模型和信息檢索技術。具體來說,當模型需要生成文本或者回答問題時,它會先從一個龐大的文檔集合中檢索出相關的信息,然後利用這些檢索到的信息來指導文本的生成,從而提高預測的質量和準確性。
基本介紹
- 中文名:檢索增強生成
- 外文名:Retrieval-augmented Generation
- 所屬學科:人工智慧
- 簡稱:RAG
歷史沿革,技術定義,工作流程,重要組成成分,生成器,檢索器,分類,基於查詢的 RAG,基於潛在表征的 RAG,基於 Logit 的 RAG,推測性 RAG,理論依據,套用場景,技術優勢,限制,檢索結果中的噪聲,額外開銷,檢索器和生成器之間的差距,系統複雜性增加,冗長的上下文,未來的潛在方向,靈活的 RAG 管道,融入長尾和實時知識,與其他技術相結合,多模態RAG,
歷史沿革
2020年,Facebook AI Research(FAIR)團隊發表名為《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》的論文,。該篇論文對RAG概念進行詳細介紹和解釋 。
起初,Naive RAG 遵循傳統過程 Indexing-Retrieval-Generation,也被稱為 “Retrieve-Read” 框架。
之後,Advanced RAG 提高檢索質量,採用了檢索前和檢索後策略(pre-retrieval and post-retrieval strategies)。為了解決索引問題,Advanced RAG 通過使用滑動視窗方法、細粒度分段和元數據的合併來改進其索引技術。
後來,Modular RAG 引入多個特定功能模組和替換現有模組, 總體上展示了更大的靈活性。其過程並不局限於順序檢索和生成,包括了疊代和自適應檢索等方法。
技術定義
檢索增強生成(Retrieval-Augmented Generation,RAG)是一種結合檢索和生成技術的模型。它通過引用外部知識庫的信息來生成答案或內容,具有較強的可解釋性和定製能力,適用於問答系統、文檔生成、智慧型助手等多個自然語言處理任務中。RAG模型的優勢在於通用性強、可實現即時的知識更新,以及通過端到端評估方法提供更高效和精準的信息服務。
工作流程
RAG的工作原理是通過檢索大規模文檔集合中的相關信息,然後利用這些信息來指導文本的生成,從而提高預測的質量和準確性。
RAG 包含三個主要過程:檢索、增強和生成。
- 檢索:根據用戶的查詢內容,從外部知識庫獲取相關信息。具體而言,將用戶的查詢通過嵌入模型轉換為向量,以便與向量資料庫中存儲的相關知識進行比對。通過相似性搜尋,找出與查詢最匹配的前 K 個數據。
- 增強:將用戶的查詢內容和檢索到的相關知識一起嵌入到一個預設的提示詞模板中。
- 生成:將經過檢索增強的提示詞內容輸入到大型語言模型中,以生成所需的輸出。
通過這一過程,RAG模型能夠在各種自然語言處理任務中發揮作用,如問答系統、文檔生成和自動摘要、智慧型助手和虛擬代理、信息檢索以及知識圖譜填充等。同時,RAG模型具有及時更新、解釋性強、高度定製能力、安全隱私管理以及減少訓練成本等優點。與微調相比,RAG是通用的,適用於多種任務,並且能夠實現即時的知識更新而無需重新訓練模型。
重要組成成分
整個 RAG 系統由兩個核心模組組成:檢索器和生成器。檢索器從數據存儲中搜尋相關信息,生成器生成所需內容。
生成器
生成式人工智慧在各種任務中的出色表現開啟了 AIGC(人工智慧生成內容)時代。生成模組在 RAG 系統中起著至關重要的作用。不同的生成模型適用於不同的場景,例如用於文本到文本任務的 Transformer 模型、用於圖像到文本任務的 VisualGPT、用於文本到圖像任務的 Stable Diffusion,以及用於文本到代碼任務的 Codex 等。
生成器的基礎技術包括 Transformer 模型、長短期記憶網路(LSTM)、擴散模型和生成對抗網路(GAN)。
Transformer模型是一種用於處理語言數據的神經網路模型,非常適合用於翻譯、文本生成和理解等任務。由自注意力機制、前饋網路、層規範化模組和殘差網路組成 。
長短期記憶網路(LSTM,Long Short-Term Memory)是一種時間循環神經網路,是為了解決一般的RNN(循環神經網路)存在的長期依賴問題而專門設計出來的,所有的RNN都具有一種重複神經網路模組的鏈式形式。
擴散模型是一類深度生成模型,可以創建真實且多樣化的數據樣本(包括圖像、文本、視頻等)。
生成對抗網路(GAN)是備受期待的深度學習模型,可以模擬和生成逼真的圖像、音頻和其他數據。
檢索器
檢索是在給定信息需求的情況下識別和獲取相關信息。具體來說,讓我們考慮可以概念化為鍵值存儲的信息資源,其中每個鍵對應一個值(鍵和值可以相同)。給定一個查詢,目標是使用相似度函式從資料庫中選取最相似的鍵,並得到配對的值。根據不同的相似度函式,現有的檢索方法可以分為稀疏檢索、密集檢索和其他方法。
稀疏檢索方法通常用於文檔檢索,其中鍵/值表示要搜尋的文檔。這些方法利用術語匹配指標,例如 TF-IDF,查詢可能性;BM2.5分析文本中的單詞統計數據並構建倒排索引以實現高效搜尋。
密集檢索方法使用密集嵌入向量表示查詢和鍵,並構建近似最近鄰 (ANN) 索引以加快搜尋速度。
分類
基於查詢的 RAG
基於查詢的 RAG 源於即時增強的理念,將用戶的查詢與從檢索到的信息中獲得的見解無縫集成,將其直接輸入到生成器輸入的初始階段。這種方法在 RAG 套用中很普遍。檢索後,獲取的內容與用戶的原始查詢合併以形成複合輸入,然後由生成器處理以創建回響。基於查詢的 RAG 廣泛套用於各種模態。
基於潛在表征的 RAG
在基於潛在表示的 RAG 框架中,檢索到的對象作為潛在表示被納入生成模型。這增強了模型的理解能力並提高了生成內容的質量。
基於 Logit 的 RAG
在基於 Logit 的 RAG 中,生成模型在解碼過程中通過 Logit 整合檢索信息。通常,通過簡單的求和或模型將 Logit 組合起來,以計算分步生成的機率。
推測性 RAG
推測性 RAG 尋求使用檢索而不是純生成的方式,從文檔中直接提取單詞或短語,以節省資源和加快回響速度。它將生成器和檢索器解耦,從而可以直接使用預訓練模型作為組件。在這個範式中,我們可以探索更廣泛的策略來有效利用檢索到的內容。
理論依據
RAG模型的理論依據主要圍繞在利用檢索、知識填充、智慧型助手、信息檢索、數據更新、定製能力、安全管理等方面,以提供準確、及時、解釋性強、高度定製、安全保障的服務。
基於檢索的知識填充和自動生成:RAG利用大規模文檔集合進行檢索,填充文本以生成準確的答案和內容。
智慧型助手和虛擬代理:RAG可用於構建智慧型助手或虛擬代理,通過結合聊天記錄回答用戶問題,提供信息和執行任務。
信息檢索和知識圖譜填充:RAG能改進信息檢索系統,使其更準確深刻,並用於填充知識圖譜中的實體關係,提高生成文本的可靠性。
數據更新及時性和解釋性回覆:RAG模型具備檢索庫的即時更新機制,回復具有強解釋性,由檢索庫直接提供答案,用戶可核實準確性。
高度定製能力和安全隱私管理:RAG可根據特定領域的知識庫和prompt定製,通過限制知識庫許可權實現安全控制。
減少訓練成本和通用性:RAG模型具有可拓展性,通過大量數據直接更新知識庫,不需重新訓練模型,適用於多種任務。
套用場景
1.問答系統(QA Systems):RAG可以用於構建強大的問答系統,能夠回答用戶提出的各種問題。它能夠通過檢索大規模文檔集合來提供準確的答案,無需針對每個問題進行特定訓練。
2.文檔生成和自動摘要(Document Generation and Automatic Summarization):RAG可用於自動生成文章段落、文檔或自動摘要,基於檢索的知識來填充文本,使得生成的內容更具信息價值。
3.智慧型助手和虛擬代理(Intelligent Assistants and Virtual Agents):RAG可以用於構建智慧型助手或虛擬代理,結合聊天記錄回答用戶的問題、提供信息和執行任務,無需進行特定任務微調。
4.信息檢索(Information Retrieval):RAG可以改進信息檢索系統,使其更準確深刻。用戶可以提出更具體的查詢,不再局限於關鍵字匹配。
5.知識圖譜填充(Knowledge Graph Population):RAG可以用於填充知識圖譜中的實體關係,通過檢索文檔來識別和添加新的知識點。
技術優勢
1.外部知識的利用:RAG模型可以有效地利用外部知識庫,它可以引用大量的信息,以提供更深入、準確且有價值的答案,這提高了生成文本的可靠性。
2.數據更新及時性:RAG模型具備檢索庫的更新機制,可以實現知識的即時更新,無需重新訓練模型。說明RAG模型可以提供與最新信息相關的回答,高度適配要求及時性的套用。
3.回復具有解釋性:由於RAG模型的答案直接來自檢索庫,它的回覆具有很強的可解釋性,減少大模型的幻覺。用戶可以核實答案的準確性,從信息來源中獲取支持。
4.高度定製能力:RAG模型可以根據特定領域的知識庫和prompt進行定製,使其快速具備該領域的能力。說明RAG模型廣泛適用於的領域和套用,比如虛擬伴侶、虛擬寵物等套用。
5.安全和隱私管理:RAG模型可以通過限制知識庫的許可權來實現安全控制,確保敏感信息不被泄露,提高了數據安全性。
6.減少訓練成本:RAG模型在數據上具有很強的可拓展性,可以將大量數據直接更新到知識庫,以實現模型的知識更新。這一過程的實現不需要重新訓練模型,更經濟實惠。
限制
檢索結果中的噪聲
信息檢索不可避免的噪聲(表現為不相關內容或誤導性信息)可能會在 RAG 系統中造成故障點。檢索噪聲的影響仍然不清楚,導致在實際使用中對度量選擇和檢索器-生成器互動產生混淆。
額外開銷
隨著檢索源規模的擴大,存儲和訪問複雜度也將增加。這樣的開銷阻礙了RAG在對延遲敏感的實時服務中的實用性。
檢索器和生成器之間的差距
由於檢索器和生成器的目標可能不一致,並且它們的潛在空間可能不同,因此設計它們的互動需要精心設計和最佳化。當前的方法要么將檢索和生成分開,要么在中間階段將它們集成在一起。雖然前者更加模組化,但後者可以從聯合訓練中受益,但會阻礙通用性。選擇一種經濟有效的互動方法來彌補差距是一項挑戰,需要在實踐中深思熟慮。
系統複雜性增加
引入檢索不可避免地會增加系統複雜性和需要調整的超參數數量。
冗長的上下文
RAG 的一個主要缺點,特別是基於查詢的 RAG,是它極大地延長了上下文,這使得它對於上下文長度有限的生成器來說是不可行的。此外,加長的上下文也會普遍減慢生成過程。
未來的潛在方向
靈活的 RAG 管道
RAG 系統正在逐步採用靈活的管道,例如遞歸、自適應和疊代 RAG。通過精確的調整和細緻的工程設計,檢索源、檢索器、生成器和 RAG 子系統的獨特組合有望解決複雜任務並提高整體性能。我們熱切期待開創性的探索,這將推動更具創新性的 RAG 系統的發展。
融入長尾和實時知識
雖然 RAG 的一個主要動機是利用實時和長尾知識,但很少有研究探索知識更新和擴展的管道。許多現有研究僅使用生成器的訓練數據作為檢索源,而忽略了檢索可以提供的動態和靈活信息。因此,越來越多的研究設計了具有不斷更新的知識和靈活來源的 RAG 系統。我們還希望 RAG 能更進一步,適應當今網路服務中的個性化信息。
與其他技術相結合
RAG 與其他旨在提高 AIGC 效率的技術(如微調、強化學習、思路鏈和基於代理的生成)相互關聯。這些方法的結合仍處於早期階段,需要進一步研究,通過新穎的算法設計充分發揮其潛力。
多模態RAG
RAG 已經超越了它最初基於文本的問答範圍,包含了各種各樣的模態數據。這種擴展催生了創新的多模態模型,將 RAG 概念整合到各個領域: 圖像、音視頻、Vid2Seq、code。 結語隨著 LLM 及 RAG 技術的不斷發展,Agent 的基礎能力愈發強大,如何將底層能力整合,產生一個現象級的產品是當下最直接的訴求。


