🎯 什麼情境該想到我

當提示工程與 RAG 都試過還不夠,開始考慮「要不要微調一個模型」時。

⚙️ 怎麼用(先分清問題屬於哪一類)

  • 缺「知識/事實」 → 用 RAG(換文件即可更新,別微調)。
  • 缺「行為/風格/格式」(要固定語氣、特定輸出樣式、遵循領域慣例)→ 微調較合適。
  • 順序:提示工程 → RAG → 微調。越後面越貴、越慢、越難維護。
  • 微調前提:要有足量、高品質的標註資料 + 可靠的 工具-AI系統評估 來證明它真的更好。

★ 書中的一句話原則

《AI 工程》第 7 章:

「簡單說,微調是為了形式,RAG 是為了事實。」

  • RAG 給模型外部知識,讓答案更準確、更有資訊量,可以緩解幻覺。
  • 微調幫助模型理解並遵循語法與風格。書特別提醒:有足夠的高品質資料時,微調可能減少幻覺;但資料品質差時,反而會讓幻覺變嚴重。

★ 兩種問題都有時:先做 RAG

書的建議:模型同時有資訊問題和行為問題時,先從 RAG 開始。理由:

  1. RAG 比較容易——不需要整理訓練資料,也不需要託管微調後的模型。
  2. 做 RAG 時先從簡單的關鍵字檢索(如 BM25)開始,不要一開始就上向量資料庫。
  3. RAG 的效果提升可能比微調更大:書引用 Ovadia 等人(2024)的研究,在 MMLU 的幾乎所有題目類別中,RAG 對 Mistral 7B、Llama 2-7B、Orca 2-7B 三個模型的表現都優於微調。

★ 兩者可以疊加,但不保證有效

同一份研究中,在微調過的模型上再加 RAG,只有 43% 的情況比單用 RAG 更好;另外 57% 的情況沒有改善。所以「兩個都上」不是預設答案,要用評估集驗證。

★ 什麼問題適合微調:書中的例子

問題為什麼微調有用
輸出格式錯誤,例如產生的 HTML 無法編譯模型在訓練資料中看到的 HTML 不夠,微調可以讓它接觸更多
語意解析:把自然語言轉成結構化格式強大的現成模型處理 JSON、YAML、regex 這類常見語法沒問題,但對網路上範例很少的語法(小眾工具的 DSL、複雜語法)表現較差
輸出技術上正確,但缺少團隊需要的細節與風格用符合要求的範例微調,讓輸出更貼近需求

★ 決策流程

問題是「模型不知道某些事」?
├─ 是 → RAG(先從 BM25 開始)
└─ 否,是「模型不照我要的方式回答」?
    ├─ 先試提示工程(加範例、指定格式、結構化輸出)
    ├─ 還是不行,而且有 ≥ 數百筆高品質範例 → 微調(先試 LoRA 這類參數高效方法)
    └─ 沒有足夠資料 → 回頭改善提示,或先蒐集資料

微調的具體技術選擇 → LoRA 與 QLoRA、PEFT 方法比較;微調的副作用 → 災難性遺忘。

🧪 我實際套用的紀錄

  • 2026-07-15:(待填)

⚠️ 注意

  • 微調不會「教模型新事實」得可靠(仍會幻覺);事實類需求優先 RAG。微調也會綁死模型版本、增加維運負擔。

🔗 相關工具