No date
DFT | On the Generalization of SFT: A Reinforcement Learning Perspective with Reward Rectification
快速解釋
這篇論文要解決的核心問題是:為什麼標準 Supervised Fine-Tuning(SFT)通常比 RL 更容易過擬合、泛化也更差?作者的答案不是從經驗現象出發,而是直接把 SFT 的梯度重寫成 policy gradient 的形式,然後指出標準 SFT 其實隱含了一個很糟糕的 reward 結構。這個隱式 reward 既非常稀疏,又帶有對 expert token 機率的反比權重,因此當模型對正確 token 的機率很低時,梯度會變得非常大,導致高變異與病態優化。
基於這個觀察,作者提出 Dynamic Fine-Tuning(DFT)。它的改動非常小,本質上只是把標準 SFT loss 乘上一個 token probability,並用 stop-gradient 阻止梯度穿過這個權重。這樣做的效果是把原本隱含的反比加權抵消掉,讓每條 expert trajectory 對應到比較穩定、均勻的 reward。作者把這件事稱為 reward rectification。實驗上,這個一行程式碼級別的改動,卻在多個數學推理 benchmark 上明顯超過標準 SFT,也在探索性的 offline RL 設定裡優於多種 offline 與 online RL baseline。
問題設定
作者考慮的是大型語言模型的標準 SFT 設定。給定一個只包含正樣本 expert demonstrations 的資料集:
其中 是 prompt, 是對應的 expert response。標準 SFT 直接最小化句子層級的 cross-entropy:
其梯度為:
相對地,標準 RL 的 policy objective 寫成:
其 policy gradient 是:
這篇論文的問題意識是:雖然 SFT 和 RL 看起來是兩種不同訓練範式,但如果把 SFT 的梯度改寫成 RL 形式,也許就能更精確地理解 SFT 為什麼泛化較差。特別是,在只有正樣本、沒有負樣本、也沒有 reward model 的情況下,SFT 仍然是最常見的 post-training 方法,因此如果能從原理上改善 SFT,本身就具有很高價值。
核心想法
這篇方法最重要的貢獻,是把標準 SFT 精確地重寫成一個帶有隱式 reward 的 on-policy gradient,並指出真正的問題不在 supervised learning 本身,而在於這個隱式 reward 形式有明顯缺陷。
- SFT 可以被重寫成一種特殊的 policy gradient
作者對 SFT 梯度做 importance sampling 重寫,把原本在 expert data distribution 上的期望,轉成在當前 policy 分佈上的期望。做完這一步後,SFT 梯度可以寫成一個和 policy gradient 幾乎一樣的形式,只是 reward 被乘上了額外的 importance weight。
這件事的重要性在於:SFT 並不只是單純的 imitation learning loss,而是可以被看成一種特殊的 RL update。既然如此,就可以從 reward 結構與梯度變異的角度來分析它。
- 標準 SFT 的隱式 reward 非常稀疏,且帶有反機率加權
重寫後,作者得到 SFT 對應的 reward 結構本質上是:只有當模型 sample 出 expert response 時才有 reward,而且 reward 會再乘上一個 的反機率權重。這代表兩件事:
- reward 極度稀疏,因為只有 exact match 才會非零。
- 當 expert token 在當前模型下機率很低時,反機率權重會非常大。
因此,標準 SFT 的梯度雖然形式上穩定,但從 RL 角度看,其實對應到一個高變異、病態的 reward estimator。作者認為,這就是 SFT 容易過擬合、泛化較差的根本原因。
- DFT 用動態重加權把這個隱式 reward 修正掉
既然問題來自反機率權重,那最自然的修正就是把它抵消掉。作者的做法很簡單:將標準 SFT 梯度乘上 expert token 的模型機率,也就是乘上 ,並透過 stop-gradient 確保這個縮放只改變權重,不額外引入新的梯度路徑。
這樣做之後,原本的反機率項就被抵消,對應的 reward 變成對所有 expert trajectory 都是均勻的 1。從 RL 角度看,這等於把原本偏置且高變異的 reward estimator,修正成更穩定的 uniform reward estimator。
- token-level 版本是最終實作形式
實際上,若直接在整條 sequence 上做 importance weighting,數值上可能不穩,因此作者採用 token-level 的版本,類似 PPO 中常見的 token-level 處理方式。最終 DFT loss 是對每個 token 做動態加權,而不是對整條序列一次加權。
- DFT 的效果不是更用力擬合全部 token,而是更有選擇地更新 token 分佈
作者進一步分析 token probability distribution,發現標準 SFT 傾向把整體 token probability 一起往高處推,也就是對所有 token 做更緊的擬合;相反地,DFT 會產生更明顯的兩極化效果:一部分 token 被更強地提升,另一部分 token 反而被壓低。從結果看,DFT 不再一視同仁地把所有 token 當作同等重要,這也可能是它泛化較好的原因。
- 這個方法本質上是一個 loss-level 修正,而不是新模型架構
DFT 沒有引入 reward model、沒有 reference model、也不需要負樣本或偏好資料。它只改變標準 CE loss 的權重形式,因此在工程上非常輕量,但從理論上又是直接對準 SFT 的隱式 reward 問題。
關鍵公式
標準 SFT 目標為:
其梯度為:
論文接著把它改寫為 on-policy expectation。透過 importance sampling,可得:
若定義
則可把 SFT 梯度寫成:
這個式子直接揭露了問題所在:SFT 等價於一個 reward 非常稀疏、而且還被 放大的 policy gradient。
為了修正這個問題,DFT 對 SFT 梯度乘上一個 stop-gradient 的校正項:
其中 是 stop-gradient operator。這代表校正項只負責重加權,不參與反向傳播。
對應的 DFT loss 可以寫成:
但實作時作者採用 token-level 版本,得到最終 loss:
這個式子可以直接和標準 token-level cross-entropy 對照。標準 CE 是:
而 DFT 對應的是:
其中 。這也就是作者所說的「只改一行程式碼」的本質。
從 RL 角度來看,這個修正的意義是:原本 DFT 對應的 reward 會變成對所有 expert trajectory 一致的常數 1,不再帶有反機率放大,因此梯度更新更穩定,且不會過度聚焦在那些當前機率極低的 expert token 上。
模型結構
這篇方法沒有引入新的 backbone,模型本體仍然是標準的 autoregressive LLM。真正被改掉的是訓練目標與梯度加權方式。因此「模型結構」更精確地說,其實是訓練流程結構。
- 輸入與輸出形式不變
模型仍然接收 prompt ,自回歸地預測 response 的每個 token 機率:
因此 DFT 不需要改 tokenizer、不需要改 decoder、也不需要多一個 reward model 或 value model。
- loss 層替換標準 cross-entropy
在訓練時,對每個 expert token,先計算其當前模型機率,然後用這個機率作為 stop-gradient 權重,去重加權 token-level CE loss。也就是說,整個 pipeline 可以概括為:
- 前向計算 token probabilities。
- 取出 expert token 的 probability。
- 對每個 token 的 乘上 。
- 對 sequence 做 sum,再對 batch 取平均。
- 不需要額外 supervision
和 RLHF、DPO、PPO、GRPO 這些方法不同,DFT 不需要:
- reward model。
- 偏好資料或正負樣本對。
- 線上採樣與 rollout。
- reference model。
因此它特別適合只有正樣本 demonstrations 的純 SFT 場景。
- offline RL 的延伸版本仍然沿用同一個 loss 觀念
論文也做了探索性的 offline RL 實驗。那裡的做法是先用 rejection sampling 構造出正樣本資料,再把 DFT 套到這些帶 reward supervision 的樣本上。雖然這部分不是論文的主體,但結果顯示:同樣的 reward rectification 思想,並不只對純 SFT 有效,對離線 reward-supervised 設定也有幫助。
- 實作複雜度非常低
從工程角度看,DFT 的優勢非常明確:它是一個 loss-level patch,不是一個完整 RL pipeline。作者強調,它相較於 iw-SFT、DPO、PPO、GRPO 等方法更省資源、更少組件,卻仍然能在數學推理任務上得到競爭甚至更強的結果。
總結來說,DFT 的「模型結構」並不是新架構,而是把標準 autoregressive LLM 的 token-level cross-entropy,替換成一個帶 stop-gradient token probability 的動態重加權版本。它的關鍵不是增加模型複雜度,而是修正 SFT 從 RL 視角看所對應的隱式 reward。