TL;DR RAG 和 Fine-tuning 解決的是不同問題。RAG 給模型新知識,Fine-tuning 改變模型的行為風格。大多數情況是兩者都用,而不是選一個。
「應該用 RAG 還是 Fine-tuning?」是 LLM 應用開發中最常見的問題之一。答案是:這是兩個不同問題的解法,通常需要同時用。
根本差異
RAG 解決的問題:給模型它不知道的知識。
LLM 的訓練資料有截止日期,也沒有你的私有資料(公司內部文件、特定社群的資訊)。RAG 在推理時把相關文件塞進 context,讓模型能「看到」這些知識。
Fine-tuning 解決的問題:改變模型的行為、風格、能力。
Fine-tuning 通過在特定資料上繼續訓練,讓模型學習:
- 特定的回答格式(如:總是用條列式、總是以「好的」開頭)
- 特定領域的推理方式(如:醫療診斷邏輯)
- 特定的語氣和風格(如:更像某個品牌的語氣)
- 更好地執行特定任務(如:更準確地提取結構化資訊)
Fine-tuning 不適合:
- 注入新知識(模型會「記住」知識,但不可靠,容易幻覺)
- 讓模型知道今天的新聞(需要持續重新訓練)
- 讓模型記住特定文件的內容(RAG 更合適)
成本比較
| RAG | Fine-tuning | |
|---|---|---|
| 初始成本 | 中(建索引) | 高(訓練費用) |
| 更新成本 | 低(更新索引) | 高(重新訓練) |
| 推理成本 | 中(context 較長) | 低(不需要額外 context) |
| 延遲 | 較高(搜尋時間) | 較低 |
| 知識更新頻率 | 即時 | 慢(需重新訓練) |
| 知識可解釋性 | 高(知道來源) | 低(黑盒) |
攀岩場景的判斷
應該用 RAG 的部分:
- 路線資訊(名稱、難度、描述):資料持續更新,需要精確來源
- 攀登記錄查詢:使用者私有資料,不能預訓練進模型
- 岩場最新狀況:可能每週更新,RAG 即時反映
應該用 Fine-tuning 的部分:
- 回答風格:讓模型更像「攀岩社群的語氣」,不那麼制式
- 攀岩術語理解:讓模型更準確地理解繁體中文攀岩術語
- 格式一致性:讓路線推薦總是按固定格式輸出
兩者都用的部分:
- Fine-tuning 讓模型理解攀岩領域的語境和術語
- RAG 提供最新的路線和社群資料
- 組合效果 > 單獨任何一個
組合策略
最常見的組合模式:
[Fine-tuned 模型]
→ 懂攀岩術語
→ 有合適的回答風格
→ 知道如何處理路線推薦
+
[RAG 系統]
→ 提供具體的路線資訊
→ 提供最新的岩場狀況
→ 提供使用者的個人記錄
Fine-tuning 提升模型的「基礎能力」,RAG 提供「當前知識」。
什麼時候先考慮 RAG
大多數應用應該先嘗試 RAG,原因:
- 更快迭代:更新索引比重新訓練快太多
- 更透明:能追蹤回答的知識來源
- 更低成本:Fine-tuning 需要收集和標記訓練資料
- 夠用:對「知識類」問題,RAG 的效果通常已經足夠
Fine-tuning 值得投入的情況:
- RAG 回答品質已經不錯,但風格/格式還不對
- 有足夠的標記資料(幾百到幾千個高品質 Q&A pair)
- 有固定的推理模式需要強化(不只是知識,而是推理邏輯)
一個常見的誤解
「Fine-tuning 讓模型記住知識,就不需要 RAG 了。」
這是最常見的誤解。Fine-tuning 讓模型「感覺上」知道某些事,但在知識密集的場景(需要精確的數字、名稱、最新資訊),Fine-tuning 的「記憶」是不可靠的,容易出現幻覺。RAG 的設計本質上更適合知識的注入和更新。
整體來說
RAG 和 Fine-tuning 是互補的工具,不是競爭關係。RAG 是「知識的延伸」,Fine-tuning 是「能力的塑造」。一個高品質的 LLM 應用,通常需要用基礎能力強的模型(或 fine-tuned 的模型),加上精心設計的 RAG 系統,而不是只選其中一個。
參考資料
- RAG vs Fine-tuning: Pipelines, Tradeoffs, and a Case Study on Agriculture (2024)
- Fine Tuning vs. Retrieval Augmented Generation for Less Popular Knowledge (2024)
- Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs (2023)
- Retrieval-Augmented Generation for Large Language Models: A Survey (2023)
- NobodyClimb 系統架構:Cloudflare 全端攀岩社群平台
- NobodyClimb AI 架構:20 節點 RAG Pipeline