RAG是什麼?檢索增強生成白話解釋
rag是什麼?一句話:RAG(Retrieval-Augmented Generation,檢索增強生成)就是讓大型語言模型回答問題之前,先去外部知識庫裡把相關資料查出來,連同問題一起交給模型,讓它「照著資料回答」,而不是只憑訓練時記住的東西。這套方法出自 Meta AI 2020 年的一篇論文,如今你見到的「文件問答」「企業知識庫機器人」、帶參考連結的 AI 搜尋,底下基本都是它。
如果你問過 AI 自己公司的規章制度,或者見過答案下面掛著引用來源的 AI 搜尋,那麼恭喜,你已經用過 RAG 了,只是之前不知道它的名字。
為什麼大型語言模型需要 RAG
一個「裸」的大型語言模型有三個天然短板,一旦拿它做正事就會撞上。
知識有截止日期。 模型只知道訓練資料裡的事,而訓練資料是有時間邊界的。上個月發布的政策、你公司內部的退款流程,它一概不知。AWS 官方有個比喻很傳神:沒有 RAG 的模型像一個過於熱情的新員工,從不主動了解新消息,但對每個問題都答得斬釘截鐵。以我的使用經驗,這個畫像相當準。
會一本正經地編。 模型不知道答案時不會閉嘴,而是按機率生成一段聽起來很合理的話。訓練資料裡沒有的東西,它就硬編。這是幻覺問題的根源。
你的私有資料它根本沒見過。 產品手冊、合約、內部 wiki 都不在公開網路上,任何公開模型都沒讀過;而多數公司也不可能把敏感文件交給第三方去訓練模型。
RAG 用一招同時對付這三件事:不指望模型「記住」什麼,回答前現場把對的資料查出來,擺在模型眼前。
RAG 是怎麼運作的
拿一個具體問題走一遍完整流程。員工提問:「我今年還剩幾天年假?」
在任何人提問之前,系統會先對文件庫做一次性的準備工作:
- 分塊(Chunking):把文件切成小段。原因很實際:嵌入模型有輸入長度限制,而且一段話算出來的向量,比二十頁紙的向量更能代表它的意思。塊切太大,餵給模型的是雜訊;切太小,上下文又被切丟了。
- 向量化(Embedding):用嵌入模型把每個文字塊變成一長串數字,也就是向量。效果是意思相近的文字,向量距離也近。「如何申請退款」和「退款流程是什麼」一個關鍵字都不重疊,向量卻挨在一起。
- 入庫:向量、原文、詮釋資料一起存進向量資料庫(Milvus、pgvector 這類)。
資料庫建好了。現在問題來了:
- 檢索:把問題也轉成向量,在庫裡找距離最近的幾個文字塊,一般用餘弦相似度來算,說白了就是比較兩個向量方向是否一致。這一步撈出來的,是年假制度那一段,加上這位員工自己的休假紀錄。
- 增強:把檢索到的資料和原問題拼進提示詞。
- 生成:模型看著眼前的資料作答,理想情況下還會附上制度文件出處。
全部訣竅在第 5 步:模型不是在「回憶」,而是在「照著念」。制度改版了怎麼辦?重新索引一遍文件就行,不用重新訓練,幾分鐘生效。
你其實天天在用 RAG
多數文章一上來就講企業架構,其實你早就和 RAG 打過照面:
- 帶引用的 AI 搜尋:先搜網頁、再寫答案、下面掛參考連結的工具,「先查再答」這個結構就是 RAG 的思路。
- 和 PDF 對話:上傳一份合約或論文,對著它提問,AI 按文件內容回答。這就是一個最小號的私有知識庫。
- 真懂產品的客服機器人:它能準確說出你的裝置上錯誤代碼 E-42 是什麼意思,多半是從手冊裡現查的,不是背下來的。
這三類東西有個共同的名字,叫 rag知識庫應用:資料放在庫裡,提問時現查現答。
識別特征永遠一樣:答案帶出處,而且它知道的事情,基礎模型從來沒學過。它「知道」的究竟是什麼?就是檢索現場查到的那幾頁資料。
RAG、微調、長上下文怎麼選
這是最讓人暈的一步。讓模型「多知道點事」有三條路,我發現一個比喻能撐起整個對比:考試。
什麼都不做就是閉卷考試,模型全憑背過的東西作答,背不到的就瞎編。RAG 是開卷考試:給它一櫃子資料,答題前先翻到相關頁,而且資料隨時能換新版。微調是提前把書背進腦子:花大功夫、更新慢,但知識變成了它自己的表達方式。長上下文則是允許把整本書攤在桌上答題。
| RAG | 微調 | |
|---|---|---|
| 知識更新 | 重新索引文件,分鐘級生效 | 重新準備資料再訓練,按天週算 |
| 成本構成 | 檢索 + 輸入 token + 向量庫 | 資料標註 + GPU 訓練 + 評測 |
| 資料安全 | 資料留在自己庫裡 | 資料進入訓練流程 |
| 溯源 | 答案能標出處 | 答案沒有可見來源 |
| 適合什麼 | 常變的知識、私有資料、要引用出處 | 固定的風格、格式、領域術語、任務習慣 |
我常用的判斷標準:問題是模型不知道某件事,用 RAG;問題是模型不按你要的方式說話做事,才是微調的地盤。兩者可以結合,先用微調讓它懂術語,再用 RAG 供即時知識,但那就意味著維護兩套系統。資源有限時,先把 RAG 做穩,是更務實的選擇。
順便回答一個常見疑問:上下文視窗都到百萬 token 了,RAG 會被淘汰嗎?不會。百萬上下文適合從頭到尾精讀一份長報告,但它裝不下百萬級文件的知識庫,塞得越多帳單越貴,而且研究發現「lost in the middle」現象:埋在長上下文中部的關鍵資訊,模型反而容易漏看。對規模大、權限敏感、頻繁更新的知識,檢索這條路不會消失。
RAG 能解決什麼,不能解決什麼
RAG 的流行有充分理由,但兩邊的帳都要算清楚。
它確實能給你:分鐘級更新的知識(不用重訓)、更少的編造(眼前有證據)、不出門的私有資料、可追溯到出處的答案。
另一邊也要如實說。檢索品質決定上限:嵌入模型理解錯了文字,或者分塊把關鍵句切成兩半,下游模型再強也救不回來。幻覺是減少,不是消失:檢索到錯誤段落、引用錯配、模型不聽指示,照樣會給出自信的錯誤答案。每次請求都要帶上檢索內容,輸入 token 的帳單比一般對話高。工程上也不輕鬆:向量庫維運、增量索引、權限過濾、效果評測,一個都少不了。
跑通一個 Demo 級 RAG,一個下午就夠了;從「能跑」到「好用」,中間隔著的大部分功夫都花在檢索品質上。
常見問題快答
RAG 全稱是什麼? Retrieval-Augmented Generation,檢索增強生成。三個詞正好對應流程:檢索相關資料,用它增強提示詞,生成最終回答。
rag和微調的差別一句話說清? RAG 管「模型不知道」,查資料現答;微調管「模型不按你的方式說話做事」,改的是模型本身。知識常變選 RAG,風格格式要固定才微調。
RAG 和 LangChain 這些框架是什麼關係? LangChain、LlamaIndex 是幫你把檢索、拼提示詞、呼叫模型這幾步串起來的開發框架,RAG 是它們實作的核心思路;框架可以換,思路不變。
RAG 就是向量資料庫嗎? 不是。向量資料庫是 RAG 裡負責儲存和檢索的那一層,RAG 是圍繞它組成的「先檢索、後生成」整套方案。
有了 RAG 就不會產生幻覺了嗎? 會減少,因為模型有了可依據的材料;但不會根除,前面說的檢索出錯、模型不遵循指示等情況仍會導致答錯。
RAG 是不是就是連網搜尋加 AI? 連網搜尋只是檢索來源之一。RAG 同樣覆蓋私有文件、資料庫、內部 wiki,任何值得檢索的資料都算。
下一步看什麼
rag是什麼,答案已經拆完了:先查資料、再回答。RAG 周圍還有一組概念值得單獨弄懂:向量資料庫(它的儲存層)、微調(它的替代方案)、AI 幻覺(它緩解的問題),這些都在本站 AI 專集裡陸續展開。想先見識一個能打的大型語言模型,可以從DeepSeek 是什麼讀起;打算動手搭應用的話,看看各家 Coding Plan 怎麼對比再選型不遲。