監督式微調 是什麼?

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),但有兩個重要差異:

  1. 訓練只對「回應」部分計算損失,對「指令」部分的損失通常被遮罩掉(masked),確保模型只學習如何生成高品質回應,而不是學習重複指令。
  2. 資料量遠小於預訓練(數千到數十萬條 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 訓練管線通常依序包含:

  1. 預訓練(Pre-training):大規模語料學習語言能力
  2. SFT:高品質示範資料學習指令遵循
  3. RLHF 或 RLVR:進一步對齊人類偏好或強化推理能力

SFT 是步驟 2,為步驟 3 提供一個已具備基本指令遵循能力的起始模型(稱為 SFT model 或 policy model)。部分研究(如 DeepSeek-R1-Zero)探索了跳過 SFT 直接從 base model 進行 RL 訓練,但通常訓練不穩定,最終效果不及先 SFT 再 RL 的管線。

常見問題