TL;DR | 面試情境模擬 #
👴 面試官:如果公司想導入 AI,應該用 RAG 還是 Fine-tuning?
🧑💻 你:這取決於需求。如果我們需要 AI 回答**「公司內部最新文件或私有知識」**,首選 RAG(檢索增強生成),因為資料更新快且具備溯源能力。如果我們需要 AI 「學會特定的說話語氣」或「遵循嚴格的輸出格式」(如 JSON),則應該選擇 Fine-tuning(微調)。
核心比喻:考試策略 #
要理解兩者的區別,最簡單的比喻就是**「怎麼準備考試」**:
- RAG (開卷考):你帶了一本參考書進考場。遇到問題時,先翻書找答案,然後寫下來。
- 優點:隨時可以換一本新書(更新知識快)。
- Fine-tuning (補習):你在考前把書背熟了,把知識內化成大腦的一部份。
- 優點:反應快,不需要翻書,而且你學會了特定的解題套路。
📚 RAG:檢索增強生成 (Retrieval-Augmented Generation) #
原理: 不改變模型本身,而是在「提示詞 (Prompt)」中夾帶外部搜尋到的知識。
📊 RAG 的數據流 #
- 資料處理 (Indexing):
- 把公司文件切碎 (Chunking)。
- 轉成向量 (Embedding) 存入 向量資料庫 (Vector DB)。
- 推理階段 (Inference):
- 使用者問:「公司差旅費規定是什麼?」
- 檢索 (Retrieval):去資料庫找出相關的規定片段。
- 生成 (Generation):把問題 + 找到的片段一起丟給 LLM 回答。
✅ 適用場景:
- 私有知識:法律文件、客服 SOP、技術手冊。
- 即時性:新聞、股價、庫存(因為不需要重新訓練)。
- 透明度:可以要求 AI 列出「參考來源」。
❌ 缺點:
- 如果資料庫找不到資料,AI 還是可能幻覺(雖然機率較低)。
- 回應速度較慢(多了搜尋資料庫的時間)。
🎓 Fine-tuning:模型微調 #
原理: 拿一堆高品質的「問答對 (Q&A pairs)」去餵模型,透過反向傳播修改模型內部的權重 (Weights),讓它「內化」這些知識或行為。
📊 Fine-tuning 的數據流 #
- 數據準備:收集幾千/幾萬筆「指令 -> 理想回答」的配對。
- 訓練 (Training):使用強大的 GPU 跑幾天,更新模型的參數。
- 推理 (Inference):發布一個新的「特化版」模型。問問題時不需要額外搜尋。
✅ 適用場景:
- 改變語氣:讓 AI 說話像海賊王、或是用很專業的醫學術語。
- 強制格式:嚴格要求每次回答都必須是 JSON 或 XML。
- 極低延遲:省去了搜尋資料庫的時間。
❌ 缺點:
- 知識過時:如果法規改了,你必須重新訓練模型,成本極高。
- 幻覺難控:模型可能會「一本正經地胡說八道」,因為它以為它學到了,但其實只是記住了模式。
💡 總結:該選哪一個? #
| 比較項目 | RAG (開卷考) | Fine-tuning (補習) |
|---|---|---|
| 主要目的 | 注入知識 (Knowledge) | 改變行為 (Behavior/Format) |
| 知識更新 | ⚡️ 即時 (更新資料庫即可) | 🐢 緩慢 (需重新訓練) |
| 準確度 | ⭐⭐⭐⭐⭐ (有事實依據) | ⭐⭐⭐ (取決於訓練數據) |
| 回答速度 | 中等 (需搜尋時間) | 🚀 極快 (直接生成) |
| 成本 | 低 (主要花在 Vector DB) | 高 (需大量 GPU 算力) |
🧑💻 面試一句話總結: #
「知識要新、要有來源」用 RAG;「格式要對、語氣要專」用 Fine-tuning。實務上最強的做法通常是兩者混合 (Fine-tune 一個模型,再掛上 RAG)。
💡 進階補充:常見追問 #
Q1:Fine-tuning 能讓模型變聰明嗎? #
不太行。 微調主要是在教模型「適應你的數據分佈」或「學會特定的風格」,而不是提升它原本的邏輯推理能力 (Reasoning)。想讓模型變聰明,通常是換更大的模型。
Q2:什麼是 Agentic RAG? #
當單純的 RAG 不夠準時,我們會引入 Agent (代理人)。
- 傳統 RAG:問 -> 查 -> 答。
- Agentic RAG:AI 會自己判斷「我是不是需要查資料?」、「我查的資料夠不夠?」。如果不夠,它會自己產生新的關鍵字再去查一次,直到它能回答為止。這是一個多步循環的過程。