聽說,大家都在梭后訓練?最佳指南來了
在大模型時代,Scaling Law 一度是 AI 領域公認的準則:只要堆更多數據、參數、算力,模型能力就會持續增長。GPT-3、PaLM 等的成功,幾乎都是這種策略的勝利。
然而,事情并沒有一直按這條曲線上漲。研究者發現當模型的規模擴展到百億、千億級之后,Scaling Law 帶來的邊際效益開始遞減。
于是,業界開始將目光從大力出奇跡的預訓練,轉向收益更大的后訓練(Post-training)階段。也正是在這個階段,我們看到了 RLHF、RLAIF、DPO、RLVR 等方法的爆發式創新。
一時間,「梭哈后訓練」成了共識:

OpenAI o 系列、DeepSeek R1、Google Gemini 等這些以推理為核心的模型,都通過強化學習后訓練來提升模型的推理能力,后訓練正在成為 LLM 走向高階智能的必經之路。
既然后訓練這么重要,那么作為初學者,應該掌握哪些知識?大家不妨看看這篇博客《Post-training 101》,可以很好的入門 LLM 后訓練相關知識。
博客作者有兩位,分別是 Meta 超級智能實驗室研究科學家 Han Fang,他本科畢業于中山大學;以及 Meta 在線算法、機器學習和 LLM 相關的研究者 Karthik Abinav Sankararaman。

原文鏈接:https://tokens-for-thoughts.notion.site/post-training-101
該指南涵蓋以下幾個核心部分:
- 從對下一個 token 預測過渡到指令跟隨;
- 監督微調(SFT) 基本原理,包括數據集構建與損失函數設計;
- 多種強化學習后訓練技術(RLHF、RLAIF、RLVR),并詳細解釋獎勵模型的工作機制;
- 用于評估模型質量的各類評測方法。
從預訓練到指令微調的演進之路
基礎模型(或稱預訓練模型)通常是通過在大規模文本和圖像數據上進行預訓練得到的。預訓練的主要目標是將關于世界(更準確地說是關于互聯網)的知識編碼進模型中。其訓練目標非常直接:讓模型學習預測在給定前文序列的情況下,下一個 token 是什么。
然而,盡管基礎模型可能掌握了大量知識,但由于下一個 token 預測這一訓練目標本身的限制,使得它在大多數實際應用場景中的效用并不理想。
下圖 1 可以幫助我們理解這兩類模型在行為上的區別。當它們被輸入同一個提示語:「What is the capital city of U.S」時(注意:這里的提示語末尾沒有問號),兩者的響應會有所不同:
- 預訓練模型(圖左)由于是基于下一個 token 進行訓練的,它會先預測出問號(即?),然后再繼續生成后續文本;
- 指令微調模型則會直接回答「Washington, D.C.」,因為它在訓練中通常被優化為直接回答用戶的問題,而不是僅僅做續寫。

為了讓 LLM 在問答場景中真正發揮作用,我們通常會在基礎模型的基礎上進行后訓練(也稱為微調)。與使用從互聯網抓取的大規模網頁語料不同,后訓練所使用的數據規模通常更小,但質量更高、內容更精細。
后訓練的核心目標是對模型的行為進行對齊(如誠實、無害),并進一步強化模型在預訓練階段積累的能力。
目前,主流的后訓練技術包括監督微調(SFT)和基于人類反饋的強化學習(RLHF)等。
自 DeepSeek R1 之后,又出現了基于可驗證獎勵的強化學習(RLVR)方法,它在提升模型推理能力和代碼能力方面表現尤為突出。

有時你可能還會聽到一些術語,比如持續預訓練(continued pre-training)或中間訓練(mid-training)。這些術語并不十分正式,通常用來描述在基礎模型之上,對特定高質量數據集或目標語料進行進一步預訓練的過程,目的是提升模型在某些特定領域的能力。
后訓練的端到端生命周期
在高層次上,后訓練是將基礎模型轉化為一個既有用又安全的指令微調模型的過程(見下圖 3)。后訓練通常有兩大類訓練技術:監督微調(SFT)和強化學習(RL)。
在 InstructGPT(GPT-3.5 前身) 問世之初,OpenAI 引入了一個兩階段流程,即「SFT + RLHF」。到了 2024 年,DeepSeek 推出了 DeepSeek V3,該模型大量使用了 RLVR,其中 VR 代表可驗證獎勵(也稱規則獎勵或準確率獎勵)。此后,DeepSeek 又發布了 R1 模型。它描述了 R1-zero(在基礎模型上直接使用 RL)以及最終的 R1 模型,后者采用了一個兩階段 RL,其中第一階段是面向推理的 RL,第二階段是「全場景」RL(即與人類偏好對齊)。
目前,后訓練研究仍在快速演進中。因此,「最佳實踐」往往很快就會過時,研究社區在這一領域不斷地取得新進展。

圖 3:后訓練的端到端生命周期。
在 SFT 和 RL 兩個階段中,絕大多數繁重的工作都集中在后訓練數據的構建與實驗上。這些數據既可以來自數據供應商(如數據標注公司),也可以由其他模型合成生成。可以說,后訓練中最重要的部分無疑是后訓練數據的質量。
如《Gemini 2.5 Pro》論文中特別強調地,「自從 Gemini 1.5 發布以來,我們在后訓練方法論上取得了顯著進展,而這些進展得益于我們在 SFT、獎勵建模(RM)和 RL 階段對數據質量的關注」。下文將討論后訓練數據質量中一些提升最終模型質量的重要因素。
貫穿整個后訓練生命周期的是:每個階段得到的模型都會經歷某種形式的評估,包括:自動化評估(例如用于知識的 MMLU 和用于指令跟隨的 IFEval)被研究人員用來理解每個訓練階段和模型變動的效果,人工評估(即由人工與模型交互,并根據標注準則對輸出進行打分)仍然是衡量有用性和對齊程度的關鍵方法。
什么是監督微調(SFT)?
SFT 是這樣一個階段:它將一個在預訓練過程中已經獲得大量知識的模型,轉化為能夠遵循用戶指令并具有普遍實用性的模型。SFT 的實現方式是通過向模型提供我們期望的行為示例來完成,具體做法是收集包含指令–回答對的數據集(例如提示及其理想答案),然后在這一數據集上對預訓練模型進行微調。
最終得到的模型能做到:
- 學會遵循指令;
- 生成符合正確格式和語氣的輸出;
- 并可作為后續偏好優化和強化學習的基礎。
SFT 數據集
從本質上看,SFT 只是監督學習,其中模型被「教授」在一組輸入查詢下的正確輸出。學習過程要求模型在給定前綴的情況下生成后續的一組 token,然后通過目標 token 的交叉熵損失對其進行優化。這與訓練一個多類別分類問題的方式完全相同。
因此,該數據集是由指令–回答對 (x,y) 組成的集合,其中:
- x 是輸入的指令或提示;
- y 是目標輸出(人工撰寫或高質量模型生成)。

圖 4:SFT 數據示例。這里的回答通常被認為是由人類專家或教師模型撰寫的「黃金回答」。
SFT 數據集的數據質量
SFT 的效果取決于背后的數據集質量。與預訓練不同,預訓練中龐大的規模可以在一定程度上掩蓋噪聲,而 SFT 數據集通常規模較小(約 1 萬到 10 萬個樣本),且經過高度篩選。這使得它們對缺陷極為敏感:即便少量低質量樣本也可能教會模型錯誤的行為。這也是為什么近年來的開源實踐方案都強調嚴格的數據篩選與去污染。
尤其對于推理模型而言,粗糙的數據會導致不忠實或不一致的思維鏈。例如,模型生成的解釋并不真正反映其得出答案的推理過程。高質量的 SFT 數據應當準確、風格一致、避免無關的枝節,并且要與期望模型學習的能力相匹配。
SFT 數據集中最常見的問題可以分為三類:標簽噪聲、分布不匹配和偽推理。
標簽噪聲來自人工標注者或模型生成的答案,這些答案可能是錯誤的、不完整的或不一致的。分布不匹配則出現在數據集范圍過窄時(例如只包含數學題或簡短回答),這會導致模型在真實世界場景中表現不佳。偽推理問題出現在看似逐步展開的推理軌跡中,實則包含邏輯漏洞、誤導性的捷徑,甚至是直接復制粘貼的模板。這些問題都會限制模型的泛化能力,并削弱后續基于 RL 的對齊效果。
為了減輕這些風險,實踐者通常會結合使用過濾、驗證和數據增強方法。
過濾技術包括自動化(或人工審核)的質量檢查,例如驗證數學答案是否計算正確、代碼能否正常執行以及推理鏈是否真正導向所聲稱的最終答案。驗證通常涉及保留一部分高質量的黃金數據集,用于持續監測模型漂移(即模型隨著時間或數據變化,其輸出行為或性能偏離預期目標的現象)。數據增強則可以通過采樣更多樣化的任務來平衡分布,利用更高質量的教師模型生成推理軌跡,或者將帶噪聲的樣本改寫為更清晰的格式。
在實踐中,最有效的方法是形成一個反饋循環:收集數據、進行質量過濾、評估模型行為,并不斷迭代優化數據集,直到 SFT 階段能夠為后續的偏好優化奠定堅實基礎。

圖 5:數據質量檢查 pipeline。
在這個循環過程中,通常會使用一個或多個強大的 LLM 作為「裁判」,來識別各種類型的問題。以下是一份 SFT 數據集中常見問題的檢查清單,這些問題都可以利用 LLM 裁判、代碼或外部工具,以及其他分類器的組合來進行識別。

SFT 數據如何進行批處理和填充
一旦我們收集好了用于 SFT 的指令–回答對,下一個挑戰就是如何高效地將它們輸入 GPU。語言模型依賴固定形狀的張量:一個批次中的每個樣本必須具有相同的長度。但是,真實文本的長度差異很大,一個答案可能只有 12 個 token,而另一個可能有 240 個 token。
為了解決這一問題,我們會將數據打包成批次,并使用填充(padding)和固定的最大序列長度 T;許多大規模訓練方案還會把較短的樣本拼接在一起,然后再切分成固定長度的序列,以減少填充的浪費。
批處理(batching)指的是將多個樣本分組,以便它們可以并行處理。例如,批大小為 16 表示模型會同時看到 16 個提示與回答。這樣做能提升 GPU 利用率,并使梯度計算更加穩定。但是,由于序列長度不同,我們會以批次中最長的樣本為基準,使其他所有序列都與它對齊。
這時就需要用到填充。填充 token 是一些特殊的「空」token(通常用 PAD 表示),它們會被附加到較短序列的末尾,使一個批次中的所有序列長度一致。我們會使用注意力掩碼來告知模型忽略這些填充部分,因此它們不會影響損失計算。具體如下:
- 示例 1:[The, cat, sat] → 長度 3
- 示例 2:[Dogs, bark, loudly, at, night] → 長度 5
- 如果將它們放在同一個批次中,我們會把示例 1 填充到長度 5: [The, cat, sat, PAD, PAD]
在訓練過程中,注意力掩碼為 [1, 1, 1, 0, 0],因此損失只會在真實 token 上計算。這樣既能保證梯度的正確性,又能讓張量保持矩形結構。
在實踐中,批處理和填充策略會顯著影響吞吐量。
- 動態批處理(分桶):將長度相近的樣本分組,以減少填充需求。
- 序列打包:將多個較短的樣本拼接成一個長序列,并用特殊 token 分隔,以減少空間浪費。
- 掩碼機制:確保只有「真實」的 token 才會對梯度產生貢獻。
SFT 損失函數 - 負對數似然函數
由于 SFT 本質上就是一個多分類問題(number of classes = vocab_size),因此用于訓練模型的損失函數就是在給定輸入 x 的條件下,生成正確序列 y 的負對數似然(NLL)。這一過程通常通過計算模型預測類別與數據集中真實類別之間的交叉熵來實現(在輸出序列的每個 token 上進行)。數學形式如下所示:

其中:
- θ 表示模型參數
- y_t 表示目標回答中的第 t 個 token
- y_<t 表示前綴(即之前的 token)
- p_θ(?) 表示模型給出的概率分布
在實踐中,這通常通過交叉熵函數來實現。在序列的第 t 步,設 y_t^* 為正確的 token(來自真實數據集)。設 p_θ(y_t^* | x,y_<t) 為參數為 θ 的模型生成 token y_t^* 的對數概率。然后模型會優化以下函數:

為了保證數值穩定性,這個函數通常基于最后一層的 logits 來實現(即 LLM 最后一層的輸出,在通過 softmax 函數之前的結果)。設 V 為詞表大小,z_t ∈ R^V 表示序列中第 t 個 token 在最后一層的 logits。針對 y_t^* 的預測分布由以下公式給出:

因此,SFT 損失簡化為:

第二項就是常見的「log-sum-exp」項,它通常通過一種數值穩定的方式計算(稱為「log-sum-exp 技巧」),如下所示。

由于 z_t,v - m ≤ 0,這可以確保 exp (z_t,v - m)≤ 1,因此不會出現整數溢出問題。整數下溢會被安全地舍入為 0,這正是預期的行為。將這些結合起來,最終得到的 SFT 損失函數為:

接下來將深入探討后訓練的主要階段之一 —— 強化學習(RL)。
RL 訓練技巧有哪些?
在所有后訓練方法中,強化學習或許是最復雜的一種,同時也是目前最有效的模型微調方式之一。
在傳統強化學習中,整體可以被看作一個循環過程:智能體根據環境狀態從策略(policy,即模型)中采樣動作,以最大化某種獎勵信號。
RL 獎勵
獎勵是一個標量值,用于表示對某個動作或狀態的期望程度。

上述公式旨在最大化期望獎勵,同時通過 KL 散度來進行正則化約束。
在模型對齊與能力提升的過程中,有多種類型的獎勵機制被證明是有效的:
- RLHF(基于人類反饋的強化學習) 借助從人類偏好中訓練出的獎勵模型(Reward Models, RMs),幫助模型在日常對話中表現更優,并對其安全性與語言風格進行對齊。
- RLAIF(基于 AI 反饋的強化學習),也被稱為 Constitutional AI(由 Anthropic 提出),通過將 LLM 與一份書面形式的規則結合,實現監督信號的自主擴展,生成偏好導向的獎勵信號。
- RLVR(基于可驗證信號的強化學習) 在提升數學推理與代碼能力方面表現突出,它使用真實答案、單元測試、代碼執行結果等可驗證信號作為精確的獎勵來源。
- 過程監督(Process Supervision) 的粒度比 RLVR 更細,它通過過程獎勵模型(Process Reward Model, PRM),對長任務中的中間步驟進行逐步評分。
- 最后,基于評分標準(rubrics)的獎勵機制可以通過判斷模型輸出是否滿足一組明確的評分標準來生成獎勵 。通常會使用多個評分標準,因此最終獎勵往往是各評分項得分的加權和或平均值。
在實際應用中,后訓練流程通常采用一種混合式、多階段的訓練方案,在不同階段融合多種獎勵類型(例如:SFT → 偏好優化 → 帶有可驗證 / 評分標準信號的 RL)。

獎勵模型與人類偏好
在 RLHF 發展初期,InstructGPT 論文提出了一種方法:即通過人類偏好排序來訓練獎勵模型,這也成為了 RLHF 中的核心組件之一。
最常見的獎勵模型任務是:預測某個候選回復在多大程度上符合人類對該提示語的偏好。這種能力是通過一批帶有人類偏好標簽的「提示語–回復」數據集訓練出來的。換句話說,獎勵模型的目標是估計在給定指引下,人類標注者更傾向于哪一個輸出。
為收集偏好數據,研究人員會針對一個提示語生成多個模型回復,讓人工標注者對這些回復按從最好到最差進行排序。這些排序數據用于訓練獎勵模型,而訓練好的獎勵模型則在強化學習微調階段為模型輸出提供標量獎勵信號。

什么是偏好數據?
偏好數據的一般形式是:一個提示語配對兩個回復,即成對比較(pairwise preference)。簡單說就是一個模型生成兩個回復(回復 A 和回復 B)。標注者判斷 A 是否比 B 更好,或反之。還可以讓標注者對多個回復進行整體排序,記錄任意兩個回復之間的比較。許多 RLHF 流程正是通過這種方式來構建獎勵模型所需的數據集。
數據示例如下:

JSON 格式:
{
"prompt": [
{"system":"You are a helpful, honest assistant."},
{"role": "user", "content": "What color is the sky?"},
],
"chosen": [{"role": "assistant", "content": "Washington, D.C."}],
"rejected": [{"role": "assistant", "content": "? The capital of the United States is Washington, D.C."}],
}RL 提示和數據
接下來,文章給出了一些不同獎勵類型下的 RL 提示示例數據。
可驗證獎勵(Verifiable rewards):
- 適用場景:存在可靠的自動化檢驗器,可用于判斷結果是否正確或合規。
- 最佳應用領域:數學、代碼生成、結構化抽取 / 格式化、有標準答案的檢索任務、以及結果可檢驗的工具調用。

JSON 格式:
{
"prompt": [
{"system":"You are a helpful, honest assistant."},
{"role": "user", "content": "Solve: (3x - 2)(x + 5) = 0. Provide only the roots separated by commas in ascending order."},
],
"metadata": [
"ground truth response": "-5, 0.6666667",
"reward": 1.0,
"scorer:" math_grader],
}
JSON 格式:
{
"prompt": [
{"system":"You are a helpful, honest assistant."},
{"role": "user", "content": "Implement is_palindrome (s: str) -> bool. Ignore case and non-alphanumerics."},
],
"metadata": [
"scorer": code_grader,
"suite": {
"suite_id": "palindrome_001_v3",
"suite_hash": "sha256:e2b4...9d",
"entry_point": "is_palindrome",
"runtime": {"image": "python:3.11", "timeout_s": 4, "mem_mb": 1024},
"public_tests_count": 4,
"hidden_tests_count": 18
},
],
}偏好獎勵:
- 何時使用:在沒有嚴格檢查的情況下。
- 最佳適用領域:聊天、摘要、重寫、風格、安全性。

RL 算法
下表給出了 LLM 后訓練中常用的幾類強化學習算法。
最初,社區主要使用 PPO(近端策略優化,Proximal Policy Optimization);但自 DeepSeek-V3 發布后,GRPO(組相對策略優化,Group Relative Policy Optimization) 成為了更受歡迎的選擇。兩者的主要區別在于:GRPO 去掉了單獨的價值(critic)網絡,而是通過組采樣來估計相對優勢,從而減少了內存與計算成本。
另外,REINFORCE 是一種經典的強化學習算法,它同樣不依賴 critic 網絡,且實現非常簡單。
最后,盡管從技術上來說 DPO(直接偏好優化,Direct Preference Optimization) 并不是強化學習算法,但它因無需獎勵模型而廣受關注;其訓練成本低、穩定性好,通常在固定的偏好數據上進行離線訓練。

如何評估后訓練模型?
后訓練評估形式多樣,需從多維度進行評估。傳統指標(如困惑度)無法捕捉有效性,而人工評估昂貴且主觀。因此,成功的評估需要融合多種方法,以覆蓋模型質量的各個方面。
后訓練評估方法可分為以下幾類:自動評估、人工評估。
自動評估通常快速且廉價,且無需昂貴的人工干預。一般包含基于標準答案的評估、基于大語言模型的評估等。
而人工評估是由人類評估員直接評判模型輸出,是評估模型主觀質量的黃金標準,尤其適用于自動評估難以衡量的開放式或敏感任務(如評估禮貌性、創意性)。但此類方法成本高、耗時多,且結果易受標注者偏見、文化背景等因素影響。
下面是人工評估中的單點評估和基于偏好的評估對比:



































