檢索增強生成RAG (Retrieval-Augmented Generation)
也常被稱為:RAG、檢索增強
一句話解釋
先檢索出相關資料,再讓模型根據這些資料生成答案的做法。
運作流程
切分
把文件切成一段一段。太大會夾帶無關內容,太小會失去脈絡,這一步的品質往往決定整體效果。
建立索引
把每段文字轉成 embedding 向量存起來,讓「語意相近」變成可以計算的距離。
檢索
使用者提問時,把問題也轉成向量,找出最接近的幾段。
生成
把檢索到的段落連同問題一起送給模型,要求它「只根據這些資料回答」。
為什麼需要它
模型不知道你的資料。 你公司的內部文件、產品規格、客戶紀錄,都不在訓練資料裡。
訓練資料有截止日期。 之後發生的事,模型不知道。
答案可以附出處。 因為知道每個答案是根據哪幾段生成的,可以直接標出來源。這對「錯了會有後果」的場景幾乎是必要條件。
改資料不用重新訓練。 文件更新,重建索引就好,成本和時間都低得多。
最常見的失敗點
切分切壞了。 一個完整的說明被從中間切開,兩半都不完整,檢索到任何一半都答不好。
檢索到不相關的內容。 向量相似不等於真正相關。混合關鍵字搜尋與向量搜尋,通常比單用其中一種穩。
資料本身就是錯的或過期的。 RAG 會忠實地根據你給的資料回答。垃圾進,垃圾出——而且因為附了出處,錯誤看起來更可信。
沒有「找不到」的處理。 檢索不到相關內容時,如果沒有明確要求模型說「資料中沒有提到」,它多半會自己編一個。
常見問題
- RAG 和微調(fine-tuning)該選哪個?
- 要讓模型「知道」特定資料,用 RAG;要讓模型「學會」特定風格或格式,用微調。RAG 的資料可以隨時更新且能附出處,微調則需要重新訓練。兩者不衝突,實務上也常一起用。
- RAG 可以完全消除幻覺嗎?
- 不行,但能大幅降低。模型仍可能誤讀檢索到的內容,或在資料不足時自行補完。RAG 真正的價值之一是答案可以附上來源片段,讓你能自己驗證——這比「相信它沒錯」可靠得多。
相關術語
更新於 .全部術語