回到頂部
Fine-tuning 模型微調 — 封面

Fine-tuning 模型微調

不用從頭訓練——LoRA、QLoRA 讓你用幾百筆資料就能客製化 LLM。完整教學:資料準備、訓練流程、部署上線一次搞定。

🎛️ 什麼是 Fine-tuning?

🎯 一句話理解 Fine-tuning = 把通才訓練成專家

GPT-5 像什麼都會的通才。Fine-tuning 讓他去讀醫學院——出來後,他在醫療領域就特別專業。 技術上是用你的專業數據進一步訓練深度學習模型的權重。


📋 什麼時候該用?

決策樹

需求方案理由
想讓 AI 回答更好先試 Prompt Engineering免費、即時、最簡單
需要讀取私有文件RAG不需要訓練
需要特定回答風格/格式Fine-tuning改變模型行為
專業術語 + 私有知識Fine-tuning + RAG最強組合

實際場景

  • 客服 Bot — 讓 AI 用你品牌的語氣回答,遵守你的 SOP
  • 法律助手 — 讓 AI 理解特定法律用語和文件格式
  • 醫療顧問 — 讓 AI 用正確的醫學術語回答病患問題
  • 程式碼助手 — 讓 AI 遵循你團隊的 Coding Style

⚡ LoRA / QLoRA — 低成本微調革命

🚀 為什麼是遊戲改變者

  • 🔷 LoRA(Low-Rank Adaptation)— 只訓練 <1% 參數,效果接近全量微調
  • 🔷 QLoRA(Quantized LoRA)— LoRA + 4-bit 量化,RTX 4090 就能微調 70B 模型

💡 比喻 全量微調 = 重新蓋一棟房子(昂貴、耗時) LoRA = 加裝幾個「聰明插件」(便宜、快速、效果接近)

📊 資源需求比較

方法GPU 需求成本訓練時間效果
全量微調 (7B)4× A100 (80GB)$$$數小時最好
LoRA (7B)1× A100 (40GB)$$1-2 小時接近全量
QLoRA (7B)1× RTX 4090 (24GB)$2-4 小時接近 LoRA
OpenAI API 微調不需 GPU按用量幾分鐘-幾小時

🔧 怎麼做?

☁️ API 方式(最簡單)

適合快速原型和非技術背景的團隊:

  1. 準備數據 — JSONL 格式,每行一組對話範例
  2. 上傳到 OpenAI — 通過 API 或 Dashboard
  3. 啟動訓練 — 設定 epochs 和 batch size
  4. 使用模型 — 得到一個專屬的模型 ID

✅ 不需 GPU ❌ 受限於 OpenAI 平台

🖥️ 本地方式(完全控制)

適合有 GPU 的技術團隊:

  1. 選擇基底模型 — LLaMA 3.1、Mistral、Qwen 等開源模型
  2. 準備數據 — 至少 100-500 筆高品質範例
  3. 設定 LoRA 參數 — rank、alpha、target_modules
  4. 開始訓練 — 使用 Unsloth、Axolotl 等框架
  5. 部署 — 用 Ollama 或 vLLM 部署

✅ 完全控制數據和模型 ❌ 需要 GPU 和技術能力


📊 數據準備指南

數據格式

{"messages": [
  {"role": "system", "content": "你是品牌 X 的客服,語氣親切專業"},
  {"role": "user", "content": "你們的退貨政策是什麼?"},
  {"role": "assistant", "content": "親愛的顧客你好!我們提供 7 天無條件退貨..."}
]}

數據量建議

場景最少數據量建議數據量
風格調整50 筆200+ 筆
專業知識100 筆500+ 筆
複雜任務500 筆1000+ 筆

💰 成本比較

方案適合成本使用時間
OpenAI API快速原型$50-500 / 次幾分鐘~
雲 GPU + LoRA中型專案$20-100 / 次數小時
本地 QLoRA長期使用幾美元電費數小時

🧪 Fine-tuning 實戰流程:從零到部署

理論講完了,來看看一個完整的 Fine-tuning 專案從頭到尾要經歷哪些步驟。

Step 1:定義目標與評估標準

在開始收集數據之前,先想清楚:「Fine-tuning 後的模型,要在什麼任務上表現更好?如何衡量『更好』?」例如:

  • 客服 Bot 的目標可能是「回覆準確率從 70% 提升到 90%」
  • 法律助手的目標可能是「使用正確法律用語的比例達 95%+」
  • 品牌文案助手的目標可能是「語氣評審通過率從 50% 提升到 85%」

沒有明確的評估標準,你就無法判斷 Fine-tuning 是否成功。建議準備 50–100 筆測試資料作為評估基準,這些資料不能出現在訓練集中。關於模型評估的更多方法,參考 LLM 評估指南

Step 2:數據收集與清洗

這是整個流程中最耗時但也最關鍵的步驟。數據品質直接決定模型品質。

常見的數據來源:

  • 人工標注(品質最高,成本也最高)
  • 從現有業務系統匯出(客服紀錄、Email 範本等)
  • 用強模型(如 GPT-5)生成合成數據,再由人工審核

數據清洗的重點:刪除矛盾的範例(同一個問題給了不同答案)、統一格式、確保覆蓋各種邊界情況。

Step 3:訓練與迭代

第一輪訓練通常不會完美。常見的問題和解法:

問題可能原因解法
模型「忘記」通用能力過度擬合 (Overfitting)減少 epochs,增加數據多樣性
特定類別效果差該類別的訓練數據不足補充更多該類別的範例
輸出格式不穩定訓練數據格式不一致回去統一所有範例的輸出格式

一般需要 2–4 輪迭代才能達到令人滿意的效果。每次迭代都用 Step 1 定義的測試集評估。


🔗 Fine-tuning 與其他技術的搭配

Fine-tuning 不是萬能的,但跟其他技術搭配使用時威力倍增:

  • Fine-tuning + RAG — 最強組合。Fine-tuning 讓模型懂你的語言風格和業務邏輯,RAG 讓模型能存取最新的知識庫。例如法律助手:Fine-tuning 讓它用正確的法律用語回答,RAG 讓它引用最新的法條修正。
  • Fine-tuning + Prompt Engineering — 即使做了 Fine-tuning,好的 Prompt 仍然重要。Fine-tuning 改變的是模型的「預設行為」,但具體任務的指令仍需要清晰的 Prompt。
  • Fine-tuning + Ollama 本地部署 — 對隱私要求高的場景(醫療、金融、法律),可以用開源模型做 Fine-tuning 後部署在本地,資料完全不出公司網路。

❓ FAQ

Fine-tuning 和 RAG 怎麼選?

RAG = 給 AI 新知識(「讀這份文件再回答」)。Fine-tuning = 改變 AI 的行為(「用這種語氣回答」)。80% 的場景 RAG 就夠了。需要改變模型行為時才用 Fine-tuning。兩者可以結合使用。

需要多少數據?

最少 50 筆,建議 200-500 筆高品質範例。重點是數據品質而非數量——100 筆精心標注的數據,比 10000 筆隨意收集的數據更有效。

沒有 GPU 也能微調嗎?

可以!OpenAI、Google 等平台都提供 API 微調服務,不需要自備 GPU。也可以用 Google Colab(免費版有 T4 GPU)或租用雲端 GPU($0.5-2/小時)。


⚖️ Fine-tuning vs RAG vs Prompt Engineering 全面對決

這三個技術都能「改進 AI 的回答」,但本質完全不同。用錯技術會花 10 倍成本得到一半效果。

三個技術的本質差異

維度Prompt EngineeringRAGFine-tuning
改變什麼輸入 AI 的指令AI 可查的資料AI 的內在權重
訓練需求無(只需向量資料庫)需要 50-5000 筆標注資料
成本近乎免費每月 $10-500 儲存費$50-5000 一次訓練
部署時間即時1-2 天1-7 天
更新知識速度即時即時(加文件就好)慢(要重新訓練)
適合場景改變指令與格式讓 AI 讀私有知識改變模型行為與風格
效果天花板高(知識類)高(風格 + 專業類)

決策流程圖

Step 1:你要解決什麼問題?

  • 「AI 回答得不夠精準」→ 先試 Prompt Engineering。80% 的「AI 不夠好」其實是 Prompt 寫得不夠清楚
  • 「AI 不知道我公司的內部資料」→ RAG。Fine-tuning 不是為了灌知識用的
  • 「AI 的語氣、格式、行為不對」→ Fine-tuning。這是改變模型「預設行為」的正確工具
  • 「AI 要做複雜多步驟任務」→ AI Agent 實作教學,而不是 Fine-tuning

常見誤區:Fine-tuning 能灌知識嗎?

不能,也不該。很多人以為「把公司的 500 份文件 Fine-tune 進模型」就能讓 AI 變成公司專家——這是災難性的錯誤。Fine-tuning 會讓模型「記得」這些文件的寫作風格,但具體的事實資訊會被壓縮、扭曲,甚至產生更多幻覺。RAG 才是正確答案。參考 RAG 深度解析


💻 OpenAI Fine-tuning API 實戰步驟

以 OpenAI 的 GPT-4o-mini fine-tuning 為例,這是目前最簡單的 Fine-tuning 入門路徑。

Step 1:準備 JSONL 訓練檔

每一行是一個 JSON 物件,代表一組「對話範例」:

{"messages": [{"role": "system", "content": "你是 X 品牌的客服"}, {"role": "user", "content": "請問退貨政策?"}, {"role": "assistant", "content": "親愛的顧客您好,我們提供 7 天鑑賞期..."}]}
{"messages": [{"role": "system", "content": "你是 X 品牌的客服"}, {"role": "user", "content": "運費怎麼算?"}, {"role": "assistant", "content": "您好!訂單滿 $1000 免運,未滿則收 $60..."}]}

重要system 訊息要在每筆資料都重複出現。最少需要 50 筆,建議 200-500 筆以上。

Step 2:上傳檔案並啟動訓練

用 OpenAI Python SDK:

from openai import OpenAI
client = OpenAI()

# 上傳訓練檔
file = client.files.create(
    file=open("training_data.jsonl", "rb"),
    purpose="fine-tune"
)

# 啟動訓練
job = client.fine_tuning.jobs.create(
    training_file=file.id,
    model="gpt-4o-mini-2024-07-18",
    hyperparameters={"n_epochs": 3}
)

Step 3:監控訓練進度

訓練時間依資料量而定:

  • 50-200 筆資料 → 10-30 分鐘
  • 500-1000 筆資料 → 1-2 小時
  • 2000+ 筆資料 → 3-6 小時

訓練完成後會收到 Email 通知,同時在 OpenAI Dashboard 看到專屬模型 ID(格式類似 ft:gpt-4o-mini-2024-07-18:personal::ABC123)。

Step 4:使用你的客製模型

response = client.chat.completions.create(
    model="ft:gpt-4o-mini:personal::ABC123",
    messages=[{"role": "user", "content": "請問退貨政策?"}]
)

成本估算(2026 年 3 月)

  • 訓練成本:每 1M Token 約 $3(100 萬 Token 約可訓 1000 筆簡短對話)
  • 推理成本:Fine-tuned 模型比原模型貴 2-3 倍(因為 OpenAI 要為你維護專屬模型實例)
  • 典型專案:200 筆訓練資料 → 訓練成本 $5-10,每月推理 $20-100

🧬 LoRA vs QLoRA 技術深度解析

對於需要本地部署或隱私敏感場景,LoRA / QLoRA 是 2024-2026 年最重要的技術突破。

LoRA 核心原理

傳統 Fine-tuning 要更新模型所有 70 億到 1 兆參數——這需要龐大 GPU 記憶體。LoRA 發現一個關鍵洞察:模型的「新能力」其實可以用很低維度的矩陣來表達

具體做法:凍結原模型權重,只訓練兩個很小的矩陣 A 和 B(rank 通常 8-64)。訓練結束後,這兩個小矩陣就是你的「客製化插件」——檔案只有 50-500 MB,原模型動輒幾十 GB。

QLoRA 的省資源魔法

QLoRA = LoRA + 4-bit 量化。傳統 LLaMA 70B 模型用 FP16 存需要 140 GB 記憶體,根本裝不進消費級 GPU。QLoRA 把模型量化到 4-bit(容量降到 35 GB),再加上 LoRA 只訓練 1% 參數,一張 RTX 4090(24GB)就能微調 70B 模型

實戰工具選擇

工具難度適合特色
Unsloth個人專案速度最快,RTX 4090 可跑
Axolotl⭐⭐中型團隊設定檔驅動,易團隊協作
Hugging Face TRL⭐⭐⭐研究用途最靈活但較複雜
LlamaFactory⭐⭐中文開發者中文文件完整

搭配 Ollama 本地部署 可以讓你的 LoRA 模型完全離線運作,資料隱私零風險。也可參考 多模態 AI 趨勢 了解最新模型生態。


⚠️ 什麼時候「不該」Fine-tune?

這一段可能是全文最重要的。80% 想做 Fine-tuning 的專案,其實不該做 Fine-tuning

不該 Fine-tune 的五個訊號

  1. 資料會經常變動 — 例如「最新的產品目錄」「每週更新的 FAQ」。Fine-tune 會讓這些資料「凍結」在模型裡,更新就要重訓。用 RAG。
  2. 知識量大於風格需求 — 目標是「讓 AI 懂 500 份文件」。Fine-tuning 會嚴重扭曲事實,用 RAG。
  3. 樣本數少於 50 筆 — 少於 50 筆的資料,Fine-tuning 通常會過擬合,效果比好的 Prompt 還差。
  4. Prompt Engineering 還沒試過 — 先花 2 天優化 Prompt,多數情況下就能達到目標。
  5. 預算有限 — Fine-tuning 除了訓練成本,推理成本也更高(2-3 倍)。小流量應用完全不划算。

該 Fine-tune 的四個訊號

  1. 需要特定輸出格式或語氣(品牌客服的特定口吻)
  2. Prompt 再怎麼調都達不到目標
  3. 資料穩定、不常變動(例如公司的標準 SOP)
  4. 月流量夠大(每月至少 100 萬 Token 以上才划算)

❓ 補充 FAQ

Fine-tune 後的模型會「忘記」原本的能力嗎?

這叫災難性遺忘(Catastrophic Forgetting),是真實存在的問題。如果你只用 200 筆客服對話訓練,模型可能會失去原本的常識推理能力。解法:在訓練資料中混入 10-20% 的通用能力範例(例如數學題、翻譯題),可以大幅緩解。LoRA 比全量微調更不容易遺忘,因為它只改變很小比例的參數。

Fine-tuning 和 DPO / RLHF 是同一回事嗎?

不是。Fine-tuning(SFT,Supervised Fine-Tuning)用「正確答案」訓練。DPO / RLHF 用「比較好的答案 vs 比較差的答案」訓練,讓模型學會「偏好」。兩者可以組合:先用 SFT 教基本行為,再用 DPO 調整偏好。消費級場景用 SFT 就夠,頂級對齊才需要 DPO。

多久需要重新 Fine-tune 一次?

依場景而定。風格類 Fine-tuning(如品牌客服語氣)通常一次訓練可以用 1-2 年。知識類別的相關 Fine-tuning(不建議,但如果你硬要做),每 3-6 個月就需要重訓一次。最穩的做法:風格用 Fine-tuning、知識用 RAG,兩者分工明確,維護成本最低。

📚 延伸閱讀