AI時代系列(2) 機器學習三部曲: 🔹 第二部:《深度學習 —— 神經網路的革命》
65/100 第七週:📌 語言模型與生成式 AI(BERT、GPT)🗣🔍
65.微調(Fine-tuning)技巧 🧑🔧 將通用知識轉為專用能力!
________________________________________
🎯 單元導讀:
預訓練語言模型(如 BERT、GPT、T5)就像一位學識淵博、經驗豐富的語言專家。但如果你要讓他處理特定任務(如客服、醫療問答、法律摘要),你需要再進行一步訓練——這就是「微調(Fine-tuning)」。
微調是讓模型從「語言通才」轉變為「任務專家」的關鍵技術。
________________________________________
🔄 一、什麼是微調(Fine-tuning)?
➤ 定義:
Fine-tuning 是將預訓練語言模型(PLM)接上任務層(task head),在目標任務的標註資料上繼續訓練,以適應特定應用場景。
🧠 類比:
預訓練像是通過全民英檢,微調則是進入專業口譯員訓練班。
________________________________________
🛠 二、微調步驟簡介(以 BERT 為例)
1. 載入預訓練模型(如 BERT-base)
2. 添加任務頭(task head)
o 分類任務:接一個 Linear + Softmax 層
o 問答任務:接兩個線性層預測 start 和 end token
o 生成任務(如 T5/GPT):Decoder 模型直接接續輸出
3. 使用任務資料(小量即可)訓練
4. 評估微調結果與泛化效果
________________________________________
⚙️ 三、常見微調技巧總覽
技巧名稱 功能說明
✅ 冻結部分權重 固定 Encoder 層不變,只訓練任務頭,減少過擬合
✅ 層別學習率 預訓練層用低 LR,任務層用高 LR,加快收斂
✅ Dropout / Early Stop 防止過擬合,提升泛化能力
✅ Label Smoothing 防止模型過度自信,提升預測穩定性
✅ Mixed Precision 使用 float16 計算加快訓練、節省記憶體(如 AMP 技術)
________________________________________
📊 四、微調 vs Prompt Tuning 簡易比較
微調(Fine-tuning)與提示微調(Prompt tuning)是兩種常見的模型調整方法。微調是針對整個模型或部分權重進行訓練,適用於如 BERT、GPT-2、T5 等中小型模型,優點是訓練過程穩定、效果可靠。而提示微調則僅調整輸入提示的嵌入向量(prompt embedding),大幅節省參數與運算資源,特別適合如 GPT-3、PaLM、LLaMA 等大型模型使用。兩者依據模型規模與資源限制選擇使用,各有其優勢。
________________________________________
🔍 五、微調任務實例
任務類型 常用模型 微調方式說明
文本分類 BERT, RoBERTa 使用 [CLS] 向量 → Linear → Softmax
問答任務 BERT, ALBERT 利用 token 表示 → 預測起始與結束位置
對話生成 GPT-2, GPT-3 在對話語料上進行自回歸訓練
摘要生成 T5, BART Encoder-Decoder 微調,目標為摘要內容
多語翻譯 mBART, T5 對 source + target pair 訓練 Encoder-Decoder
________________________________________
🧪 六、小結與學習啟示
✅ 微調是將預訓練語言模型成功應用於特定任務的關鍵橋樑
✅ 有效的微調策略能在小量資料下達到高準確率,減少成本
✅ 隨著大型模型崛起,也可考慮「提示微調」與「指令調整」等新技術
________________________________________
💬 問題挑戰與討論:
1️⃣ 若任務資料極少,應該選擇「微調」還是「提示學習」?為什麼?
如果資料非常少,建議使用「提示學習」。原因是:微調需要足夠的資料才能讓模型學到新任務的特性,否則容易過擬合。而提示學習則可以善用大型預訓練模型已經學到的知識,透過設計好的提示(prompt)就能引導模型完成任務,特別適合少量樣本、甚至零樣本的場景。尤其像 GPT 這類模型,本來就強在少樣本學習。
2️⃣ 金融文本分類的微調流程怎麼設計?
首先,先收集並標註好金融文本(例如新聞標題、報告摘要),將它們分為「利多」、「利空」或其他類別。接下來對文本做前處理,比如移除特殊符號、標點,視情況斷詞或保留原句。
選擇一個適合的模型,例如 BERT 或 FinBERT(這是針對金融文本預訓練過的模型)。把資料切成訓練集、驗證集與測試集,然後進行模型微調。設定損失函數(通常是交叉熵)、優化器(如 AdamW),根據驗證集的表現調整學習率與訓練週期,最後測試模型在新資料上的表現。
3️⃣ 微調後模型在新任務失敗,可能是哪個環節出了問題?
失敗原因很多,最常見的是資料問題,比如資料太少、標註錯誤、類別不平衡,或是資料根本就跟原來模型訓練時的領域差太多,模型學不到重點。
也可能是模型設定錯誤,例如學習率太高導致不穩定,或是訓練太久出現過擬合。還有一種可能是你微調的資料沒辦法代表新任務的真實分佈,導致模型雖然訓練得不錯,但在新資料上一敗塗地。