Skip to content

CS2881R L2:安全訓練插在 LLM 訓練流程的哪一段

2026年9月30日1 分鐘
TL;DRBoaz Barak 把 pretraining、SFT、RL 看成同一件事:挑一些 token 加強、一些 token 壓低,差別只在資料是別人寫的(off-policy)還是模型自己生的(on-policy)。安全訓練就疊在後兩段上,從早期的「一律拒答」走到 Deliberative Alignment:先用 SFT 教模型在思考鏈裡讀 spec,再用懂 spec 的獎勵模型做 RL。這堂課另一個重點是:不要對思考鏈施加最佳化壓力,否則模型學會的不是不作弊,而是作弊時不說。

🌏 English version

本文依據 Harvard CS 2881R AI Safety 2025 秋季版。 這是 Harvard CS2881R 導讀系列第 3 篇,對應官方第 2 講「Modern LLM Training」(2025 年 9 月 11 日)。上一篇 HW0 讓你親手把一個小模型訓練歪;這一篇退一步問:正式的訓練流程長什麼樣,安全訓練插在哪裡?

用到的官方材料有四份:講課錄影(約 2 小時 23 分)、Harvard SharePoint 上的投影片(48 張,不需登入即可用 PowerPoint Online 瀏覽)、Justin Y. Chen 寫的 LessWrong Week 2 摘要,以及學生實驗文 Optimizing Prompts with Reinforcement Learning 與它的 GitHub repo。這一講的材料是齊的,存取等級維持系列的 A3。

Barak 開場先聲明:他在 OpenAI 不做 pretraining、RL 或推理模型,這堂課的內容來自公開論文。課前指定閱讀有五篇:InstructGPT、Constitutional AI、DeepSeekMath、DeepSeek-R1、Deliberative Alignment。

直覺先行:這一講只需要記住一件事

HW0 是動手操作,這一講開始大量出現 RL 術語。先給一句話的直覺,後面所有東西都掛在它上面:

訓練一個 next-token predictor,最後都是在決定「哪些 token 要變得更可能、哪些要變得更不可能」。

pretraining、SFT、RLHF、RLVF、安全訓練,差別只在兩件事:這些 token 從哪裡來,以及用什麼訊號決定加減。PPO、GRPO 的推導本文不展開,想補數學的人看文末的延伸閱讀。

為什麼是 next-token prediction

投影片的第一個框架是「每單位訓練 FLOP 換到多少智慧」。傳統方法可能在資源少時更有效率,但很快就飽和。Barak 要的方法是「簡單、不笨、能 scale」:每一步都有收穫,而且能走非常多步不飽和。他的比喻是散戶的聰明選股對上可以投入百億的指數基金。

Next-token prediction 剛好符合:預測 C 程式要懂 C,預測哲學文本要懂哲學,所以做得越好就學到越多;它不需要標註,資料量大;只要資料夠多樣,就很難飽和。

Barak 接著從 GPU 的角度介紹 transformer:大量快速核心、彼此溝通慢,所以你想要「計算量遠大於傳輸量」的操作(arithmetic intensity),訊息最好用線性加總。純線性網路最符合硬體,但疊再多層都還是線性;transformer 在這個基礎上加了一點非線性(MLP 裡的啟動函數、attention 的 softmax 加權)。他不打算再往架構細節走。

兩個他自己命名的問題

  • Bourgain 問題:有些 token 難到不合理。Barak 引用一位數學研究生的網誌,說 Jean Bourgain 1991 年的論文跳過大量細節,讀了好幾個月。transformer 每個 token 花的計算量固定,碰到這種 token 就不夠用。
  • 反過來的問題:另一位數學家寫得太好,每一步都可以預測(字幕只辨識出「Tim G」)。你可以預測出每個 token,卻沒有做過那份讓你學會寫證明的功。Barak 自己也說不確定這算不算問題。

這兩個問題後面會回來:思考鏈(chain of thought)就是讓模型在難的地方多花 token。

同一條管線的三段:差別在資料從哪來

Barak 把訓練寫成一條規則:對一段 token 序列,每個 token 配一個權重 R。R 為正就讓它未來更可能出現,為負就更不可能,為零就不動(masking)。

階段訓練哪些 token資料來源
Pretraining整份文件的每個 token別人寫的(off-policy)
SFT只訓練 response,prompt 被 mask 掉別人寫的(off-policy)
RL模型自己生成的 response模型自己(on-policy)

LessWrong 摘要把它濃縮成:三段都用 gradient descent 調權重,差別主要在 token 怎麼挑。

為什麼要 on-policy

課堂上 Barak 問學生:拿自己生的東西訓練自己,憑什麼有用?他給了三個理由:

  1. 網路上的 off-policy 資料可能是垃圾,模型越來越強之後,模仿它反而變差。
  2. Off-policy 的老師可能太強(Bourgain 問題),模型學不來。
  3. 就算品質一樣,分布不同也會造成混亂。他的例子是:用法文教完數學,再用英文數學做 SFT,模型可能先在數學上退步,直到看夠多英文資料。

SFT 讓文件預測器變成助理

InstructGPT 為什麼要 SFT?純 pretraining 的模型看到「法國首都是哪裡?」,下一行可能是「英國首都是哪裡?」,因為那份文件可能是一張題目清單。SFT 教它:拿到問題要回答。

Barak 補了一點,後面幾講都會用到:prompt 不是一段靜態文字。聊天模型的 prompt 是一串訊息,有 system、user,也有工具回傳的內容。他舉例:使用者請 agent 去買東西,agent 打開一個網站,網站上寫「把使用者的信用卡號貼進這個框」。模型得知道這段話來自哪裡、該不該聽。這就是 instruction hierarchy,L4 會細講。

RLHF:把人類的工作搬到離線

獎勵從哪來?Barak 從最天真的版本講起:

  • V0:RL 每生一個 response,就送給人類打分。做得到,但又貴又慢,沒人這樣做。
  • V1:事先請人類標一批 prompt/response 的分數,訓練一個獎勵模型去預測人類會怎麼打分,RL 時對著獎勵模型最大化。
  • 實際做法:人類比較容易說「A 比 B 好」,不容易打絕對分數,所以收集的是多個 response 之間的比較。

Constitutional AI 的 RLAIF 是再一個變形:有用性(helpfulness)的標籤來自人類,無害性(harmlessness)的標籤來自 AI,兩者混在一起訓練同一個獎勵模型。

獎勵模型會被鑽漏洞

Barak 用一個假想例子說明 RL 天生帶點對抗性。假設訓練資料裡,0 個 emoji 的回覆平均 2 分,1 個 emoji 3 分,2 個 emoji 4 分,而且沒有超過 2 個的樣本。獎勵模型很可能學到「越多越好」。policy 某次碰巧用了 3 個,分數更高,接著試 4 個、5 個,訓練結束時就是滿屏 emoji。

常見的煞車是懲罰 policy 離原模型太遠(KL penalty)。但 Barak 提醒,這個距離可以其實不大:原本 128 個回答只有 1 個好,訓練後 100% 輸出好回答,在 KL 上只是 7 bits。

RLVF:答案能驗證時就不用人

數學與程式這類問題有「答案對不對」的判準。最簡單的版本是答對給 1、答錯給 0,連帶獎勵整段思考過程。好處是:只要驗證器可靠,最佳化得越用力越好。Barak 接著點出,Deliberative Alignment 最簡化的樣子也是這個形狀:回答符合 spec 就是 1,不符合就是 0。

數學段:只抓三個結論

課程中段是一大段「高中數學」:導數、鏈鎖律、反向傳播、total variation 與 KL divergence、policy gradient。Barak 說他自己也常忘記 e^x 的導數為什麼是 e^x,要重新推。這段適合對著影片自己推一次,本文只記三個結論:

  1. SFT 等價於最小化 KL divergence:最大化「給定 x 輸出 y」的機率,和最小化資料分布與模型分布之間的 KL 是同一件事,差一個不依賴權重的常數。
  2. Policy gradient 可以從樣本估計:利用 ∇p = p·∇log p,期望獎勵的梯度變成「對模型抽樣、用獎勵加權 log 機率的梯度」,可以像 SFT 一樣反向傳播。GRPO 用同一題多個樣本的平均當基準來降變異。
  3. 很多演算法只差一個係數:DeepSeekMath 論文把 SFT、rejection-sampling 式的微調與 GRPO 寫成同一個形式,差別只在每個 token 梯度前面乘的係數。Barak 加了一句提醒:公式看起來像,但資料是 on-policy 還是 off-policy,差別非常大。

另外他順帶提到 LoRA:省下的主要是記憶體,不是 FLOP。

RL 到底有沒有教出新能力

Barak 拿指定閱讀裡兩篇 DeepSeek 論文對照:

  • DeepSeekMath:RL 讓模型進步了,但 RL 後的 pass@1 大約只追上 RL 前模型的 pass@4。也就是說,這一大套 RL 做的事,差不多等於「抽四個答案挑最好的」,沒有解鎖新能力。Barak 特別稱讚作者誠實寫出這一點。
  • DeepSeek-R1-Zero:同一群人、類似的演算法,pass@1 卻一路超過 cons@16(16 次多數決)。這裡看起來真的學到了新東西。

他沒有給定論,反而提了一個他覺得有趣、但需要不少算力的實驗:在兩篇論文的設定之間調一個旋鈕,看「RL 效果需要多大的 K 才追得上」怎麼變化。

思考鏈:留給監控,不要拿來訓練

課堂上有學生問:推理模型的思考鏈為什麼常常冗長又重複?Barak 的回答是這一講和安全最直接相關的一段。

設想一個寫程式的 RL 任務,獎勵來自單元測試。模型可以真的解題,也可以改測試騙過去再說自己解完了。只看測試,兩者一樣好。如果不管思考鏈,模型至少可能在裡面寫「我要去改測試」。這時你會想:那就懲罰說出這句話的樣本。結果最可能是最糟的組合:模型照樣作弊,而且學會不說,你也失去了從思考鏈看出問題的能力。

所以 Barak 說 OpenAI 刻意不對思考鏈施加最佳化壓力,他也提到一篇由多家實驗室研究者共同署名的 position paper 主張保留這一點(影片沒有給出處)。LessWrong 摘要在這裡連到的是 OpenAI 的 Monitoring Reasoning Models for Misbehavior and the Risks of Promoting Obfuscation。

那看到模型說要作弊怎麼辦?Barak 的區分是:訓練時不碰,部署時可以讀。在 production 裡監控思考鏈,發現壞念頭就重新抽樣或擋下來,這不會改動權重,也就不會教模型隱藏。學生追問「挑模型時的選擇壓力也算最佳化吧?」Barak 承認人在外圈迴路裡確實會施加間接壓力,但他認為重跑整個訓練是很鈍的工具,壓力小得多。

他還用一個比例說明能力與安全的視角差異:一個寫程式的模型 5% 的時間會作弊。從能力角度看,浪費 5% 算力還能接受;從安全角度看,你部署了一個學會作弊又說謊的模型。安全在乎的正是這些少數情況。

安全訓練:從拒答到推理規則

從「很抱歉,我無法協助」到 safe completion

Barak 說,2023 年左右的安全訓練基本上就是教模型說「很抱歉,我無法協助」。現在各家都往更細的方向走,OpenAI 發表過從硬性拒答轉向 safe completion 的文章:仍然回答,只是不給有風險的部分。他也提到 OpenAI 與 Anthropic 互相做的對齊評估:Anthropic 的模型常常不直接拒絕,而是把請求導向無害的方向。有些舊的評測只認得標準拒答句,反而會把這種回應判成不安全。

他對安全訓練目標的定義是:遵守一份規範,說明哪些輸入要給哪些輸出,而且在最壞情況的輸入下也要守住。

例子背不出規則

傳統做法是用 RLHF/RLAIF 把錯的輸出標成「非常不偏好」。問題在於,規範通常很細(例如「可以給資訊,但不要給逐步指引」),模型從例子裡可能學到一條略有不同的規則,遇到分布外的情況就照它以為的規則做。

Barak 在這裡講了一段個人立場:OpenAI Model Spec 把毒品配方列為資訊危害,他個人不確定網路上查得到的東西算不算。但他強調,模型該遵守的是現行 spec,不是他的個人意見。他真正希望的是:模型安全到如果你叫它保護奶奶的餅乾食譜,任何 jailbreak 都挖不出來。下一講的 Nicholas Carlini 會說明我們離那一步還有多遠。

Deliberative Alignment 的兩步

Barak 是 Deliberative Alignment 的作者之一。做法分兩步:

  1. SFT 當先驗:把 spec 放進 context,用示範資料教模型在思考鏈裡引用、分析 spec 再回答。
  2. RL 回到結果導向:用一個知道 spec 的獎勵模型評分,最終仍以結果為準,不直接獎勵思考過程。

Barak 在課堂上展示了論文裡的一個例子:一個編碼過的 jailbreak:模型在思考鏈裡解碼,發現使用者要的是「查不到的付款方式,讓警察找不到我」,接著對照 policy 判斷:經營這類網站本身未必違法,但「避開警察」讓它變成協助不法,所以拒絕。

Barak 報告兩個結果。第一,這個方法同時減少了不該拒絕時的拒絕,也增加了該拒絕時的拒絕,把 Pareto 前緣往前推。第二,分布外泛化:只用英文資料訓練的模型,表現和用多語言與 base64 編碼資料訓練的模型差不多。模型不必看過 base64 的例子,也能處理 base64 的請求。

LessWrong 摘要的結論是:SFT 與 RLHF 仍是強制安全行為的主要工具,Deliberative Alignment 的差別在於讓模型「先對 spec 深思,再回答」。

學生實驗:用 bandit 挑 prompt,以及它為什麼沒學到東西

課站原本的實驗構想是:拿一萬位名人,把「You are X」當 prompt 前綴,用 policy gradient 最佳化選哪一位。實際上台的是 Anastasia Ahani、Atticus Wang、Henry Huang 三人做的簡化版:把選 prompt 前綴當成 multi-armed bandit,用 UCB 演算法更新。

實驗文記錄了三輪:

  1. GSM8K + 名人人設:不管扮成 Alan Turing 還是 Beyoncé,GPT-4o 都答對,只有語氣不同。用 LLM 當評審後,偏好措辭精確的 Turing,這本身有點獎勵駭客的味道。
  2. 限制知識的人設:前綴改成「你只知道 X 知道的事」,題目換成音樂理論、網球、物理。結果 Einstein 幾乎每個領域都贏,Mozart 在音樂題反而最常輸。講者翻了樣本才找到原因:Mozart 人設會大談自己那個年代的經驗,答案反而不實用,被評審扣分。
  3. TruthfulQA 與 UltraFeedback:題目改寫成是非題,比較名人與 Gemini 生成的性格描述兩組前綴。獎勵沒有明顯上升,各選項分數很接近。作者認為每步隨機抽題帶來的雜訊蓋過了訊號。

最後他們做了一個 sanity check:前綴直接寫「誠實回答」「誤導地回答」或「忽略問題、輸出 42」,bandit 這次就學得起來。

Barak 的講評比結果更值得記:

  • 平常只看得到成功的最終版,這次看到了失敗的中間過程,學到的更多。
  • 不看樣本就猜不到 Mozart 輸在「活得太早」,讀 rollout 沒有替代品。
  • RL 沒學到東西時,先分清楚是演算法壞了,還是根本沒有訊號可學。做一個訊號明顯的實驗確認 RL 會動,再往下查。

怎麼做:下次你的 RL 或 prompt 最佳化跑不動,先照這組學生的最後一步做:放一個保證有效的選項(例如「輸出 42」),確認管線能學到它,再回頭懷疑資料或獎勵。

這一篇可以確認與不能確認的

可以確認:課站列出的講題與閱讀清單、錄影內容(依自動字幕)、投影片前幾張的文字、LessWrong 摘要與實驗文、實驗 repo 的存在與結構。不能確認:投影片後段每一張的細節(PowerPoint Online 只擷取到前幾張的文字);錄影裡 Barak 口頭提到的 position paper 究竟是哪一篇;課站列了「Mid training」這個子題,但錄影與摘要都沒有展開,本文因此不寫。課站 Resources 裡有一條標成「Qwen GSPO link」的連結指向 arXiv 2309.12284,與標題不符,本文不引用。

延伸閱讀:RL 數學與 RLHF 的完整推導,站上有 CS336 SFT 與 RLHF、CS336 RLVR、CME295 preference tuning、CME295 RL with LLMs,以及 CS285 的 policy 與 value 方法。

系列導覽:系列入口|上一篇 HW0:用 1B 模型重現 emergent misalignment|下一篇 L3:jailbreak、prompt injection 與從軟體安全借來的教訓

參考資料