1.4 RAG 對比微調:理解其差異
兩種都能讓模型更適合你的用途,但解決的是不同的問題。
想讓 LLM 更貼近自己的需求,最常被拿出來比較的兩種方法是 RAG 和微調(fine-tuning)。很多人覺得這兩個是同一類的東西,其實它們動手的地方不一樣,適合解決的問題也不一樣。
兩種做法的本質
- 微調:直接改模型。拿額外的資料繼續訓練,讓模型的參數產生變化,結果是模型本身變得不一樣了。
- RAG:不動模型。維持原本的模型,只是在回答的時候,多提供一份相關的參考資料。
打個比方:微調像是送員工去上課,他學會了新的做事方式,之後都會帶著這個能力。RAG 像是在員工回答問題時,遞給他一份相關的手冊讓他現場查。
逐項比較
| RAG | 微調 | |
|---|---|---|
| 改變的地方 | 提示詞(輸入) | 模型參數 |
| 更新知識 | 改資料庫就好,很快 | 要重新訓練 |
| 能不能標出處 | 可以,知道用了哪幾段資料 | 很難 |
| 擅長 | 補充事實、專業知識、即時資訊 | 調整風格、語氣、輸出格式、特定任務的行為 |
| 對幻覺的幫助 | 有資料可以對照,會減少 | 不保證 |
| 主要成本 | 建索引,加上每次檢索的時間 | 訓練的算力和高品質的訓練資料 |
| 資料保密 | 資料留在自己的資料庫,不進模型 | 資料會被「學進」模型參數裡 |
什麼時候用哪個
問題是「模型不知道這件事」,用 RAG
- 公司內部的規章、流程、產品文件
- 最新的新聞、剛更新的法規
- 你自己的筆記和論文
問題是「模型知道,但表達方式不對」,用微調
- 要求固定的輸出格式
- 要模仿特定的語氣、品牌口吻
- 專門領域裡特有的推理習慣和用語
另外兩個很實際的判斷:
- 資料常常在變,用 RAG,因為只要更新資料庫。
- 需要說明答案的出處,用 RAG,因為知道用了哪幾段。
兩者可以一起用
這不是二選一。常見的組合是:先微調,讓模型學會某種回答的格式或專業用語;再用 RAG 提供最新、最具體的內容。兩者各管一塊,互相補足。
一個常見的誤會
很多人以為:把公司文件拿去微調,模型就會「記得」這些文件的內容。實際上微調不太擅長讓模型精準記住大量事實,它記得很模糊,也容易記混,更沒辦法告訴你答案出自哪份文件。要讓模型根據某份資料回答,用 RAG 通常更可靠,也更容易維護。