一文讀懂大模型 RAG:檢索、增強與生成的技術詳解
大模型(Large Language Model,LLM)的浪潮已經(jīng)席卷了幾乎各行業(yè),但當涉及到專業(yè)場景或行業(yè)細分領域時,通用大模型往往面臨專業(yè)知識不足的問題。相對于成本昂貴的“Post-Training”或“Supervised Fine-Tuning”(監(jiān)督微調,SFT),基于RAG的技術方案成為了一種更優(yōu)選擇。
本文筆者將從RAG所解決的問題及模擬場景入手,詳細總結相關技術細節(jié),與大家分享~

一、初識:RAG所解決的問題及模擬場景
1. 大模型“幻覺”問題
在探討RAG技術的必要性之前,我們首先需要理解大模型中有名的“幻覺”問題。
所謂“幻覺”,是指大模型在試圖生成內容或回答問題時,輸出的結果并不完全正確,甚至會有錯誤,即通常所說的“一本正經(jīng)地胡說八道”。因此,「這種“幻覺”可以提現(xiàn)在對事實的錯誤陳述與編造、錯誤的復雜推理或在復雜語境下處理能力不足等?!?/p>
而產生這種“幻覺”的主要原因是:
- 訓練知識存在偏差:在訓練大模型時輸入的海量知識可能包含錯誤、過時,甚至帶有偏見的信息。這些信息在被大模型學習后,就可能在未來的輸出中被重現(xiàn)。
- 過度泛化地推理:大模型嘗試通過大量的語料來學習人類語言的普遍規(guī)律與模式,這可能導致“過度泛化”的現(xiàn)象,即把普通的模式推理用到某些特定場景,就會產生不準確的輸出。
- 理解存在局限性:大模型并沒有真正“理解”訓練知識的深層含義,也不具備人類普遍的常識與經(jīng)驗,因此可能會在一些需要深入理解與復雜推理的任務中出錯。
- 缺乏特定領域的知識:通用大模型雖然掌握了大量人類通用知識且具備超強的記憶與推理能力,但可能不是某個垂直領域的專家(比如醫(yī)學或者法律專家)。當面臨一些復雜度較高的領域性問題或私有知識相關的問題時(比如介紹企業(yè)的某個新產品),它就可能會編造信息并將其輸出。
除了“幻覺”問題,大模型還可能存在知識落后、輸出難以解釋、輸出不確定等問題。
這也決定了大模型在大規(guī)模商業(yè)生產應用中面臨著挑戰(zhàn):很多時候,我們不僅需要大模型具備理解力和創(chuàng)造力,還需要極高的準確性。例如,在金融風險評估、醫(yī)療診斷、法律咨詢等領域,任何錯誤的輸出都可能導致嚴重的后果。因此,解決“幻覺”問題是提升大模型實際應用價值的關鍵。
2. RAG如何解決“幻覺”問題?
RAG(Retrieval-Augmented Generation,檢索增強生成)技術正是為了盡可能解決大模型在實際應用中面臨的一些問題,特別是“幻覺”問題而誕生的。其基本思想可以簡單表述如下:
將傳統(tǒng)的生成式大模型與實時信息檢索技術相結合,為大模型補充來自外部的相關數(shù)據(jù)與上下文,以幫助大模型生成更豐富、更準確、更可靠的內容。這允許大模型在生成內容時可以依賴實時與個性化的數(shù)據(jù)與知識,而不只是依賴訓練知識。
換句話說,RAG給大模型增加了一個可以快速查找的知識外掛,使得它在面對特定問題時能夠參考最新的、權威的信息源,從而減少錯誤輸出和“幻覺”的發(fā)生。

為了更進一步幫助我們理解RAG的概念,舉個例子。
如果把大模型比喻成一個經(jīng)過大量醫(yī)學知識與治療技能訓練的優(yōu)秀學生,大模型響應的過程比喻成一場醫(yī)學考試,那么這個學生在考試時仍然可能會對某些最新的治療方法并不熟悉,他可能會根據(jù)自己的記憶和推理能力編造答案(即“幻覺”),導致錯誤。 而RAG會從最新的醫(yī)學文獻中檢索相關信息,并提供給學生作為參考。這樣,學生就可以基于最新的專業(yè)知識來回答問題,避免了“幻覺”,提高了答題的準確性和可靠性。
3. 模擬簡單的RAG場景
假如你需要開發(fā)一個在線的自助產品咨詢工具,允許客戶使用自然語言進行交互式的產品問答,比如“請介紹一下您公司這款產品與××產品的不同之處”。為了讓客戶有更好的體驗,你決定使用大模型來構造這樣的咨詢功能并將其嵌入公司的官方網(wǎng)站。如果你直接使用通用大模型,那么結果很可能如下所示。
用戶提問:
請介紹小麥公司的最新手機產品小麥Pro與iPhone有什么區(qū)別?
[引用]
不出意外,大模型顯然不具備貴公司的最新手機產品知識,因此無法回答客戶的問題(有時候可能會嘗試編造答案)?,F(xiàn)在,如果你使用RAG的思想,那么可以先從企業(yè)私有的知識庫中「檢索出下面一段相關的補充知識」:
小麥Pro手機參數(shù)簡覽:
- 系統(tǒng):安卓最新版本
- 處理器:高性能八核處理器
- 顯示屏:6.7英寸AMOLED全面屏,2K分辨率
- 后置攝像頭:主攝像頭6400萬像素,四攝系統(tǒng)
- 前置攝像頭:3200萬像素,AI美顏、HDR功能
- 內存與存儲:最高可選12GB運行內存,最高512GB存儲空間
- 電池:5000mAh大容量電池,支持快速充電
- 網(wǎng)絡:支持5G網(wǎng)絡,Wi-Fi6,藍牙5.2
其他特性:IP68防水防塵,面部識別和指紋識別解鎖 小麥Pro以其強大的性能、清晰的顯示效果、出色的攝像能力以及長久續(xù)航等特點,為用戶提供優(yōu)質的手機體驗。
你再把檢索出的補充知識組裝到提示詞中,將其輸入大模型,并要求大模型基于提供的知識來回答你的問題。大模型很聰明地“吸收”了補充的外部知識,并結合自己已經(jīng)掌握的知識,成功推理并給出了答案:
RAG增強后的回答:
小麥Pro手機與iPhone12之間的主要區(qū)別可以從以下幾個方面來比較:
操作系統(tǒng):
- 小麥Pro采用安卓最新版本作為操作系統(tǒng),而iPhone12運行的是蘋果自家的iOS操作系統(tǒng)。這意味著兩者的用戶界面、應用生態(tài)系統(tǒng)、功能和定制性可能會有所不同。 處理器性能:
- 小麥Pro配備了一款高性能的八核處理器,而iPhone12搭載了蘋果自家設計的A14仿生芯片。盡管具體的性能表現(xiàn)可能需要進行實際測試來比較,但兩者都應該能夠提供流暢的用戶體驗。 顯示屏:
- 小麥Pro采用了6.7英寸的AMOLED全面屏,分辨率達到了2K級別,而iPhone12則配備了6.1英寸的屏幕。 其他特性:
- 小麥Pro擁有更大的電池容量(5000mAh),支持更快的充電速度,并且具備更高的防水防塵等級(IP68)。
二、RAG基礎概念
1. 什么是RAG?
「RAG(Retrieval-Augmented Generation,檢索增強生成)」是一種結合了檢索和生成技術的自然語言處理(NLP)模型。該模型由Facebook AI提出,旨在提升生成式模型在處理開放域問答、對話生成等任務中的性能。
RAG模型通過引入外部知識庫,利用檢索模塊(Retriever)從大量文檔中提取相關信息,并將這些信息傳遞給生成模塊(Generator),從而生成更加準確和有用的回答或文本。
其核心思想是通過檢索和生成的有機結合,彌補生成模型(如GPT-3、BERT等)在處理知識密集型任務時的不足。在傳統(tǒng)的LLM(大語言模型)應用中,模型僅依賴訓練時學到的知識來回答問題,這導致了知識更新困難、回答可能過時或不準確等問題。而RAG系統(tǒng)通過在生成回答前主動檢索相關信息,將實時、準確的知識作為上下文提供給模型,從而顯著提升了回答的質量和可靠性。
RAG本質上是一種借助“外掛”的提示工程,但絕不僅限于此。它不僅僅是簡單地將外部知識拼接到提示詞中,而是通過一系列優(yōu)化手段,確保大模型能夠更好地理解和利用這些外部知識,從而提高輸出答案的質量。
2. RAG架構
RAG模型的技術架構可以分為兩個主要模塊:檢索模塊(Retriever)和生成模塊(Generator)。

- 檢索模塊:負責從大規(guī)模的知識庫或文檔集合中,使用預訓練的雙塔模型(dual-encoder)進行高效的向量化檢索,快速找到與查詢最相關的若干個文檔或段落。
- 生成模塊:根據(jù)檢索到的文檔和輸入查詢生成最終的回答或文本。并使用強大的生成模型(如T5、BART等)對輸入進行處理,確保生成的內容連貫、準確且信息豐富。
3. RAG工作流程
通過結合檢索增強技術,將用戶查詢與外部知識庫中的信息融合,利用大語言模型生成準確、可靠的回答。以下是RAG的完整工作流程:
(1) 知識準備
- 收集知識文檔:從企業(yè)內部文檔、公開數(shù)據(jù)集、專業(yè)數(shù)據(jù)庫等來源收集相關知識文檔。
- 預處理:對文檔進行清洗、去重、分段等操作,確保數(shù)據(jù)質量。
- 索引化:將處理后的文檔分割為適合檢索的單元(如段落或句子),并建立索引以便快速查找。
(2) 嵌入與索引
- 使用嵌入模型:利用預訓練的嵌入模型(如BERT、Sentence-BERT等)將文本轉換為高維向量表示。
- 存儲向量:將生成的向量存儲在向量數(shù)據(jù)庫(如FAISS、Elasticsearch、Pinecone等)中,構建高效的索引結構。
(3) 查詢檢索
- 用戶查詢向量化:將用戶的自然語言查詢通過嵌入模型轉換為向量表示。
- 相似度計算:在向量數(shù)據(jù)庫中計算查詢向量與存儲向量之間的相似度(通常使用余弦相似度或歐氏距離)。
- 檢索結果排序:根據(jù)相似度得分,選擇若干個最相關的文檔或段落作為檢索結果。
(4) 提示增強
組裝提示詞:將檢索到的相關文檔內容與原始用戶查詢組合成一個新的輸入序列。
優(yōu)化提示模板:根據(jù)任務需求設計提示模板,確保生成模塊能夠充分利用檢索到的信息。例如:
用戶查詢:請介紹小麥Pro手機與iPhone的區(qū)別。 檢索結果:小麥Pro采用安卓系統(tǒng),配備高性能八核處理器,6.7英寸AMOLED屏幕,5000mAh電池。 增強提示:基于以下信息回答問題:“小麥Pro采用安卓系統(tǒng),配備高性能八核處理器,6.7英寸AMOLED屏幕,5000mAh電池?!?/p>
(5) 生成回答
- 輸入增強提示:將增強提示模板輸入生成模塊(如T5、BART、GPT等)。
- 生成文本:生成模塊根據(jù)提示模板生成最終的回答,綜合考慮檢索到的知識和自身的訓練知識。
- 后處理:對生成的回答進行格式調整、語法檢查等后處理,確保輸出的質量和一致性。





































