RAG到底是什麼
單靠自己運作的語言模型,就像一場閉卷考試。它能告訴你的一切,在訓練結束的那一刻就已經固定下來,問它關於你的合約、你的程式碼庫,或是昨天的新聞,你得到的不是拒答,就是一個看似自信的瞎猜。為什麼AI會出錯深入探討了這個瞎猜問題。
RAG把這場閉卷考試變成了開卷考試。在模型寫出答案之前,系統會先搜尋一個知識來源,比如你上傳的檔案、公司知識庫,或是即時網路,抓出最相關的段落,再連同你的問題一起貼進提示詞裡。模型接著就從這些檢索到的文字回答,而不是單純憑記憶。
這就是整個概念的核心。名字聽起來很嚇人,機制其實就是「先查再答」。RAG工程裡剩下的一切,都是在想辦法讓這個查找步驟找到正確的段落。
為什麼模型需要一個檢索步驟
兩個硬性限制造就了這個需求。
訓練有截止日期。一個訓練到2026年初的模型,對之後發生的事一無所知,而重新訓練一個前沿模型是動輒數月、成本極高的工程。檢索讓AI產品能回答今天早上才發布的公告,而不需要任何人重新訓練任何東西。
訓練資料必須是公開的。你的發票、工單和內部文件從來不在裡面,再怎麼巧妙的提示詞也喚不回模型從未見過的資訊。檢索是通用模型唯一能從私有資料回答問題的方式。
還有一個更微妙的第三個理由:有憑有據(grounding)。當答案必須來自提供的段落時,模型就能引用來源,你也能去核對。單靠記憶生成的答案沒有任何東西可供查核,這正是讓幻覺變得危險的失敗模式。
RAG管線如何一步步運作
每一套RAG系統,從「跟PDF聊天」這類功能到企業級搜尋產品,都跑著同樣的五個步驟。
- 切塊(chunking)。來源文件被切成一段段的段落,通常每段幾百字,因為檢索是針對段落而不是整份檔案運作的。
- 索引(indexing)。每個文字塊都會被轉換成一個嵌入向量(embedding),也就是一串代表其語意的數字,再存進向量資料庫,讓意思相近的段落彼此靠近。
- 檢索(retrieval)。你的問題也用同樣的方式轉成嵌入向量,系統再抓出跟它距離最近的文字塊,通常是最相關的3到10段。
- 增強(augmentation)。這些段落會被插入提示詞裡,並包上像「只根據以下內容回答」這樣的指示。
- 生成(generation)。模型根據這個增強過的提示詞寫出答案,理想狀況下還會引用哪一段支持了哪個論點。
當你把一份長文件上傳到聊天工具並針對它提問時,跑的大致就是某種版本的這個流程。跟PDF聊天指南展示了這在Whizi裡實際的樣子。
RAG vs 長上下文 vs 微調
這三者常被搞混,因為三者都在「教模型認識你的資料」。只是做法完全不相容。
| 方法 | 運作方式 | 最適合 | 弱點 |
|---|---|---|---|
| RAG | 先搜尋,再從結果回答 | 大量或會變動的文件集,需要引用來源 | 答案品質取決於檢索品質 |
| 長上下文 | 把所有內容直接貼進提示詞 | 單一文件,需要深度交叉比對 | 成本和注意力上限 |
| 微調 | 用範例重新訓練模型 | 風格、格式和行為 | 不擅長事實;更新成本高 |
決定因素常常是經濟考量,而不是理論。像Gemini和GPT-5.6家族這類前沿模型現在提供的100萬token上下文視窗,大概能塞進1,500頁的內容,所以你確實可以直接貼上整本手冊。但以GPT-5.6 Terra每百萬輸入token收費$2來算,每個問題都附上30萬token的手冊內容,大約每個問題要花$0.60,而只檢索正確的2,000token卻花不到半分錢。問三個問題,長上下文的成本就是同樣答案的100倍。什麼是上下文視窗解釋了背後的限制。
微調是個異類:它改變的是模型的行為方式,不是它知道的內容。團隊通常拿它來調整語氣和輸出格式,事實部分還是得靠RAG補上。
你早就在不知不覺中用過RAG
聊天機器人裡的網路搜尋。當ChatGPT、Gemini或Perplexity搜尋網路並附上連結回答時,那就是把網際網路當成知識來源的RAG。
跟你的檔案聊天。上傳一份PDF並提問:切塊、嵌入和檢索都在背後為任何長到塞不進上下文的文件運作著。
客服機器人。那些能從真正的說明中心回答問題並引用文章的,就是RAG系統。那些自己編答案的則不是,而且看得出來。
回答時事的AI助理。任何關於模型訓練截止日期之後發生的事的正確答案,都是靠檢索而不是記憶得來的。
RAG會在哪裡失靈,怎麼看出來
RAG能減少幻覺,但不能完全消除,而且它還帶來了自己的失敗模式。
檢索沒抓對。如果搜尋步驟抓到錯誤的段落,模型就會流暢地根據不相關的內容回答。症狀:答案引用了你的文件,卻回應了一個略微不同的問題。
索引過時。向量資料庫只知道它最後一次建立索引時的文件狀態。一套建立在上個季度政策上的RAG系統,會給出自信滿滿卻已經過時的答案,還附上引用來源,這比單純的幻覺更有說服力,因此也更危險。
來源互相矛盾。當檢索到的段落彼此不一致時,模型往往會把它們揉合成一段流暢卻錯誤的段落,而不是指出這個矛盾。
實際的防範方式跟對付任何AI答案一樣:去檢查引用的那段內容,不是只看有沒有引用。一個答案的來源根本沒說出答案所宣稱的內容,是實際應用中最常見的嚴重失敗。
- 只要問題跟你的資料或時事有關,就用RAG類的工具(上傳檔案、開啟網路搜尋)
- 要深入詢問單一文件時偏好長上下文,面對大量或會變動的資料集時偏好檢索
- 別指望微調能增加事實知識,它改變的是行為,不是知識
- 務必打開引用的段落,確認它真的說出了答案所宣稱的內容
- 把一個沒附引用來源卻很有自信的答案,當成一個純憑記憶的猜測
常見問題
AI裡的RAG是什麼意思?
RAG是retrieval augmented generation(檢索增強生成)的縮寫。檢索(retrieval)指的是到知識來源裡搜尋相關段落,增強(augmented)指的是把這些段落加進提示詞裡,生成(generation)則是模型根據它們寫出答案。這項技術讓模型能從它從未被訓練過的文件和資料中回答問題。
RAG比微調更好嗎?
它們解決的是不同的問題。RAG在事實方面表現更好,因為更新知識只需要重新建立文件索引,不需要重新訓練,而且答案能引用來源。微調則在風格、語氣和輸出格式方面表現更好。實際應用中的系統通常兩者並用:微調負責行為,RAG負責知識。
上下文視窗變大,會不會讓RAG被淘汰?
不會,它只是改變了門檻。有了100萬token的視窗,你可以直接貼上大約1,500頁的內容,這確實在單一文件的工作場景中取代了RAG。但每個問題都貼上全部內容,每次都要花輸入token,以每百萬token收費$2、一份30萬token的手冊來算,大約每個問題要花$0.60,而檢索只需要送出幾千個token。對於龐大、會變動,或經常被查詢的資料集,檢索仍然是比較經濟的做法。
使用RAG需要自己動手建置嗎?
作為使用者不需要。把文件上傳到聊天工具,或打開網路搜尋,背後就已經在跑檢索了。只有當你在開發必須自動從私有文件集回答問題的軟體時,自己用向量資料庫建置一套管線才會派上用場。
RAG能阻止AI產生幻覺嗎?
透過讓答案有憑有據地根據檢索到的文字生成,它能大幅減少幻覺,但也帶來了自己的失敗模式:檢索到錯誤的段落、根據過時的索引回答,或是把互相矛盾的來源揉合在一起。可靠的習慣是檢查引用的段落是否真的支持這個論點,這是RAG才能做到的事,純粹憑記憶生成的答案做不到。