監督式微調 是什麼?
SFT (Supervised Fine-Tuning):監督式微調 的完整解釋
使用人工標注的高品質示範資料,對預訓練語言模型進行有監督訓練以使其遵循指令的技術。
監督式微調(Supervised Fine-Tuning,SFT)在大型語言模型的訓練管線中扮演承上啟下的關鍵角色:承接預訓練(pre-training)建立的語言能力基礎,啟動後續對齊(alignment)訓練的起點。
預訓練 vs. 微調的分工
預訓練語言模型(base model / pretrained model)在海量文字語料上學習了語言的結構與世界知識,但其訓練目標(預測下一個詞元)使其本質上是個「文字補全機器」,並不擅長遵循指令或進行有意義的對話。
舉例:若向 base model 提問「台灣的首都是哪裡?」,模型可能繼續補全「台灣的首都是哪裡?台灣的首都是哪裡?日本的首都是...」,因為它只是在模仿訓練語料的分布,不會「理解」這是個需要回答的問題。SFT 的目的,就是讓模型學會「問題-答案」這種結構化的交互模式。
SFT 資料的形式
SFT 資料通常是指令-回應對(instruction-response pairs),格式如:
- 指令(Instruction):使用者的問題或任務描述
- 輸入(Input,可選):任務的具體輸入內容
- 輸出(Output):高品質的期望回應
代表性的公開 SFT 資料集包含 Alpaca(Stanford,5.2 萬條)、FLAN 系列、ShareGPT(真實使用者對話)、OpenAssistant 等。
訓練過程
SFT 的訓練目標與預訓練相同,都是最小化交叉熵損失(cross-entropy loss),但有兩個重要差異:
- 訓練只對「回應」部分計算損失,對「指令」部分的損失通常被遮罩掉(masked),確保模型只學習如何生成高品質回應,而不是學習重複指令。
- 資料量遠小於預訓練(數千到數十萬條 vs. 數十億詞元),訓練輪次(epoch)也較少。
SFT 的主要效果
- 指令遵循(Instruction Following):模型學會根據使用者指令完成特定任務。
- 格式化輸出:模型學會以清晰、結構化的方式回應。
- 安全行為基礎:部分 SFT 資料包含安全示範(如拒絕有害請求),建立初步的安全行為。
- 對話格式適應:模型適應特定的對話模板(如 ChatML、Alpaca 格式)。
資料品質 vs. 資料數量的取捨 研究表明,SFT 的效果高度依賴資料品質而非單純的數量。Alpaca 論文最初使用 5.2 萬條 ChatGPT 生成的資料,後續研究(如 LIMA 論文)發現只需 1000 條精心挑選的高品質示範,即可達到相當的對話能力。過多低品質資料反而可能損害模型表現,因此現代 SFT 管線通常會包含嚴格的資料過濾與品質評估步驟。
參數高效微調(PEFT)
全量微調(full fine-tuning)需要更新所有模型參數,對於 70B 以上的大型模型,算力成本極高。參數高效微調(Parameter-Efficient Fine-Tuning,PEFT)方法只更新少量參數:
- LoRA(Low-Rank Adaptation):在模型的注意力層旁插入低秩矩陣,只訓練這些插入的矩陣,可在消費級 GPU 上微調數十億參數的模型。
- QLoRA:結合量化(quantization)與 LoRA,進一步降低顯存需求。
- Adapter:在 Transformer 層之間插入小型 adapter 網路。
SFT 在完整訓練管線中的位置 現代 LLM 訓練管線通常依序包含:
- 預訓練(Pre-training):大規模語料學習語言能力
- SFT:高品質示範資料學習指令遵循
- RLHF 或 RLVR:進一步對齊人類偏好或強化推理能力
SFT 是步驟 2,為步驟 3 提供一個已具備基本指令遵循能力的起始模型(稱為 SFT model 或 policy model)。部分研究(如 DeepSeek-R1-Zero)探索了跳過 SFT 直接從 base model 進行 RL 訓練,但通常訓練不穩定,最終效果不及先 SFT 再 RL 的管線。