機(jī)器之心編譯
作者:Han Fang、Karthik Abinav Sankararaman
機(jī)器之心編輯部
LLM 后訓(xùn)練最佳入門介紹。
在大模型時(shí)代,Scaling Law 一度是 AI 領(lǐng)域公認(rèn)的準(zhǔn)則:只要堆更多數(shù)據(jù)、參數(shù)、算力,模型能力就會(huì)持續(xù)增長(zhǎng)。GPT-3、PaLM 等的成功,幾乎都是這種策略的勝利。
然而,事情并沒有一直按這條曲線上漲。研究者發(fā)現(xiàn)當(dāng)模型的規(guī)模擴(kuò)展到百億、千億級(jí)之后,Scaling Law 帶來(lái)的邊際效益開始遞減。
于是,業(yè)界開始將目光從大力出奇跡的預(yù)訓(xùn)練,轉(zhuǎn)向收益更大的后訓(xùn)練(Post-training)階段。也正是在這個(gè)階段,我們看到了 RLHF、RLAIF、DPO、RLVR 等方法的爆發(fā)式創(chuàng)新。
一時(shí)間,「梭哈后訓(xùn)練」成了共識(shí):
OpenAI o 系列、DeepSeek R1、Google Gemini 等這些以推理為核心的模型,都通過強(qiáng)化學(xué)習(xí)后訓(xùn)練來(lái)提升模型的推理能力,后訓(xùn)練正在成為 LLM 走向高階智能的必經(jīng)之路。
既然后訓(xùn)練這么重要,那么作為初學(xué)者,應(yīng)該掌握哪些知識(shí)?大家不妨看看這篇博客《Post-training 101》,可以很好的入門 LLM 后訓(xùn)練相關(guān)知識(shí)。
博客作者有兩位,分別是 Meta 超級(jí)智能實(shí)驗(yàn)室研究科學(xué)家 Han Fang,他本科畢業(yè)于中山大學(xué);以及 Meta 在線算法、機(jī)器學(xué)習(xí)和 LLM 相關(guān)的研究者 Karthik Abinav Sankararaman。
原文鏈接:https://tokens-for-thoughts.notion.site/post-training-101
該指南涵蓋以下幾個(gè)核心部分:
- 從對(duì)下一個(gè) token 預(yù)測(cè)過渡到指令跟隨;
- 監(jiān)督微調(diào)(SFT) 基本原理,包括數(shù)據(jù)集構(gòu)建與損失函數(shù)設(shè)計(jì);
- 多種強(qiáng)化學(xué)習(xí)后訓(xùn)練技術(shù)(RLHF、RLAIF、RLVR),并詳細(xì)解釋獎(jiǎng)勵(lì)模型的工作機(jī)制;
- 用于評(píng)估模型質(zhì)量的各類評(píng)測(cè)方法。
從預(yù)訓(xùn)練到指令微調(diào)的演進(jìn)之路
基礎(chǔ)模型(或稱預(yù)訓(xùn)練模型)通常是通過在大規(guī)模文本和圖像數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練得到的。預(yù)訓(xùn)練的主要目標(biāo)是將關(guān)于世界(更準(zhǔn)確地說是關(guān)于互聯(lián)網(wǎng))的知識(shí)編碼進(jìn)模型中。其訓(xùn)練目標(biāo)非常直接:讓模型學(xué)習(xí)預(yù)測(cè)在給定前文序列的情況下,下一個(gè) token 是什么
然而,盡管基礎(chǔ)模型可能掌握了大量知識(shí),但由于下一個(gè) token 預(yù)測(cè)這一訓(xùn)練目標(biāo)本身的限制,使得它在大多數(shù)實(shí)際應(yīng)用場(chǎng)景中的效用并不理想。
下圖 1 可以幫助我們理解這兩類模型在行為上的區(qū)別。當(dāng)它們被輸入同一個(gè)提示語(yǔ):「What is the capital city of U.S」時(shí)(注意:這里的提示語(yǔ)末尾沒有問號(hào)),兩者的響應(yīng)會(huì)有所不同:
- 預(yù)訓(xùn)練模型(圖左)由于是基于下一個(gè) token 進(jìn)行訓(xùn)練的,它會(huì)先預(yù)測(cè)出問號(hào)(即?),然后再繼續(xù)生成后續(xù)文本;
- 指令微調(diào)模型則會(huì)直接回答「Washington, D.C.」,因?yàn)樗谟?xùn)練中通常被優(yōu)化為直接回答用戶的問題,而不是僅僅做續(xù)寫。
為了讓 LLM 在問答場(chǎng)景中真正發(fā)揮作用,我們通常會(huì)在基礎(chǔ)模型的基礎(chǔ)上進(jìn)行后訓(xùn)練(也稱為微調(diào))。與使用從互聯(lián)網(wǎng)抓取的大規(guī)模網(wǎng)頁(yè)語(yǔ)料不同,后訓(xùn)練所使用的數(shù)據(jù)規(guī)模通常更小,但質(zhì)量更高、內(nèi)容更精細(xì)。
后訓(xùn)練的核心目標(biāo)是對(duì)模型的行為進(jìn)行對(duì)齊(如誠(chéng)實(shí)、無(wú)害),并進(jìn)一步強(qiáng)化模型在預(yù)訓(xùn)練階段積累的能力。
目前,主流的后訓(xùn)練技術(shù)包括監(jiān)督微調(diào)(SFT)和基于人類反饋的強(qiáng)化學(xué)習(xí)(RLHF)等
自 DeepSeek R1 之后,又出現(xiàn)了基于可驗(yàn)證獎(jiǎng)勵(lì)的強(qiáng)化學(xué)習(xí)(RLVR)方法,它在提升模型推理能力和代碼能力方面表現(xiàn)尤為突出。
有時(shí)你可能還會(huì)聽到一些術(shù)語(yǔ),比如持續(xù)預(yù)訓(xùn)練(continued pre-training)或中間訓(xùn)練(mid-training)。這些術(shù)語(yǔ)并不十分正式,通常用來(lái)描述在基礎(chǔ)模型之上,對(duì)特定高質(zhì)量數(shù)據(jù)集或目標(biāo)語(yǔ)料進(jìn)行進(jìn)一步預(yù)訓(xùn)練的過程,目的是提升模型在某些特定領(lǐng)域的能力。
后訓(xùn)練的端到端生命周期
在高層次上,后訓(xùn)練是將基礎(chǔ)模型轉(zhuǎn)化為一個(gè)既有用又安全的指令微調(diào)模型的過程(見下圖 3)。后訓(xùn)練通常有兩大類訓(xùn)練技術(shù):監(jiān)督微調(diào)(SFT)和強(qiáng)化學(xué)習(xí)(RL)
在 InstructGPT(GPT-3.5 前身) 問世之初,OpenAI 引入了一個(gè)兩階段流程,即「SFT + RLHF」。到了 2024 年,DeepSeek 推出了 DeepSeek V3,該模型大量使用了 RLVR,其中 VR 代表可驗(yàn)證獎(jiǎng)勵(lì)(也稱規(guī)則獎(jiǎng)勵(lì)或準(zhǔn)確率獎(jiǎng)勵(lì))。此后,DeepSeek 又發(fā)布了 R1 模型。它描述了 R1-zero(在基礎(chǔ)模型上直接使用 RL)以及最終的 R1 模型,后者采用了一個(gè)兩階段 RL,其中第一階段是面向推理的 RL,第二階段是「全場(chǎng)景」RL(即與人類偏好對(duì)齊)。
目前,后訓(xùn)練研究仍在快速演進(jìn)中。因此,「最佳實(shí)踐」往往很快就會(huì)過時(shí),研究社區(qū)在這一領(lǐng)域不斷地取得新進(jìn)展。
圖 3:后訓(xùn)練的端到端生命周期。
在 SFT 和 RL 兩個(gè)階段中,絕大多數(shù)繁重的工作都集中在后訓(xùn)練數(shù)據(jù)的構(gòu)建與實(shí)驗(yàn)上。這些數(shù)據(jù)既可以來(lái)自數(shù)據(jù)供應(yīng)商(如數(shù)據(jù)標(biāo)注公司),也可以由其他模型合成生成??梢哉f,后訓(xùn)練中最重要的部分無(wú)疑是后訓(xùn)練數(shù)據(jù)的質(zhì)量。
如《Gemini 2.5 Pro》論文中特別強(qiáng)調(diào)地,「自從 Gemini 1.5 發(fā)布以來(lái),我們?cè)诤笥?xùn)練方法論上取得了顯著進(jìn)展,而這些進(jìn)展得益于我們?cè)?SFT、獎(jiǎng)勵(lì)建模(RM)和 RL 階段對(duì)數(shù)據(jù)質(zhì)量的關(guān)注」。下文將討論后訓(xùn)練數(shù)據(jù)質(zhì)量中一些提升最終模型質(zhì)量的重要因素。
貫穿整個(gè)后訓(xùn)練生命周期的是:每個(gè)階段得到的模型都會(huì)經(jīng)歷某種形式的評(píng)估,包括:自動(dòng)化評(píng)估(例如用于知識(shí)的 MMLU 和用于指令跟隨的 IFEval)被研究人員用來(lái)理解每個(gè)訓(xùn)練階段和模型變動(dòng)的效果,人工評(píng)估(即由人工與模型交互,并根據(jù)標(biāo)注準(zhǔn)則對(duì)輸出進(jìn)行打分)仍然是衡量有用性和對(duì)齊程度的關(guān)鍵方法。
什么是監(jiān)督微調(diào)(SFT)?
SFT 是這樣一個(gè)階段:它將一個(gè)在預(yù)訓(xùn)練過程中已經(jīng)獲得大量知識(shí)的模型,轉(zhuǎn)化為能夠遵循用戶指令并具有普遍實(shí)用性的模型。SFT 的實(shí)現(xiàn)方式是通過向模型提供我們期望的行為示例來(lái)完成,具體做法是收集包含指令–回答對(duì)的數(shù)據(jù)集(例如提示及其理想答案),然后在這一數(shù)據(jù)集上對(duì)預(yù)訓(xùn)練模型進(jìn)行微調(diào)。
最終得到的模型能做到:
- 學(xué)會(huì)遵循指令;
- 生成符合正確格式和語(yǔ)氣的輸出;
- 并可作為后續(xù)偏好優(yōu)化和強(qiáng)化學(xué)習(xí)的基礎(chǔ)。
SFT 數(shù)據(jù)集
從本質(zhì)上看,SFT 只是監(jiān)督學(xué)習(xí),其中模型被「教授」在一組輸入查詢下的正確輸出。學(xué)習(xí)過程要求模型在給定前綴的情況下生成后續(xù)的一組 token,然后通過目標(biāo) token 的交叉熵?fù)p失對(duì)其進(jìn)行優(yōu)化。這與訓(xùn)練一個(gè)多類別分類問題的方式完全相同。
因此,該數(shù)據(jù)集是由指令–回答對(duì) (x,y) 組成的集合,其中:
- x 是輸入的指令或提示;
- y 是目標(biāo)輸出(人工撰寫或高質(zhì)量模型生成)。
圖 4:SFT 數(shù)據(jù)示例。這里的回答通常被認(rèn)為是由人類專家或教師模型撰寫的「黃金回答」。
SFT 數(shù)據(jù)集的數(shù)據(jù)質(zhì)量
SFT 的效果取決于背后的數(shù)據(jù)集質(zhì)量。與預(yù)訓(xùn)練不同,預(yù)訓(xùn)練中龐大的規(guī)??梢栽谝欢ǔ潭壬涎谏w噪聲,而 SFT 數(shù)據(jù)集通常規(guī)模較?。s 1 萬(wàn)到 10 萬(wàn)個(gè)樣本),且經(jīng)過高度篩選。這使得它們對(duì)缺陷極為敏感:即便少量低質(zhì)量樣本也可能教會(huì)模型錯(cuò)誤的行為。這也是為什么近年來(lái)的開源實(shí)踐方案都強(qiáng)調(diào)嚴(yán)格的數(shù)據(jù)篩選與去污染。
尤其對(duì)于推理模型而言,粗糙的數(shù)據(jù)會(huì)導(dǎo)致不忠實(shí)或不一致的思維鏈。例如,模型生成的解釋并不真正反映其得出答案的推理過程。高質(zhì)量的 SFT 數(shù)據(jù)應(yīng)當(dāng)準(zhǔn)確、風(fēng)格一致、避免無(wú)關(guān)的枝節(jié),并且要與期望模型學(xué)習(xí)的能力相匹配。
SFT 數(shù)據(jù)集中最常見的問題可以分為三類:標(biāo)簽噪聲、分布不匹配和偽推理。
標(biāo)簽噪聲來(lái)自人工標(biāo)注者或模型生成的答案,這些答案可能是錯(cuò)誤的、不完整的或不一致的。分布不匹配則出現(xiàn)在數(shù)據(jù)集范圍過窄時(shí)(例如只包含數(shù)學(xué)題或簡(jiǎn)短回答),這會(huì)導(dǎo)致模型在真實(shí)世界場(chǎng)景中表現(xiàn)不佳。偽推理問題出現(xiàn)在看似逐步展開的推理軌跡中,實(shí)則包含邏輯漏洞、誤導(dǎo)性的捷徑,甚至是直接復(fù)制粘貼的模板。這些問題都會(huì)限制模型的泛化能力,并削弱后續(xù)基于 RL 的對(duì)齊效果。
為了減輕這些風(fēng)險(xiǎn),實(shí)踐者通常會(huì)結(jié)合使用過濾、驗(yàn)證和數(shù)據(jù)增強(qiáng)方法。
過濾技術(shù)包括自動(dòng)化(或人工審核)的質(zhì)量檢查,例如驗(yàn)證數(shù)學(xué)答案是否計(jì)算正確、代碼能否正常執(zhí)行以及推理鏈?zhǔn)欠裾嬲龑?dǎo)向所聲稱的最終答案。驗(yàn)證通常涉及保留一部分高質(zhì)量的黃金數(shù)據(jù)集,用于持續(xù)監(jiān)測(cè)模型漂移(即模型隨著時(shí)間或數(shù)據(jù)變化,其輸出行為或性能偏離預(yù)期目標(biāo)的現(xiàn)象)。數(shù)據(jù)增強(qiáng)則可以通過采樣更多樣化的任務(wù)來(lái)平衡分布,利用更高質(zhì)量的教師模型生成推理軌跡,或者將帶噪聲的樣本改寫為更清晰的格式。
在實(shí)踐中,最有效的方法是形成一個(gè)反饋循環(huán):收集數(shù)據(jù)、進(jìn)行質(zhì)量過濾、評(píng)估模型行為,并不斷迭代優(yōu)化數(shù)據(jù)集,直到 SFT 階段能夠?yàn)楹罄m(xù)的偏好優(yōu)化奠定堅(jiān)實(shí)基礎(chǔ)。
圖 5:數(shù)據(jù)質(zhì)量檢查 pipeline。
在這個(gè)循環(huán)過程中,通常會(huì)使用一個(gè)或多個(gè)強(qiáng)大的 LLM 作為「裁判」,來(lái)識(shí)別各種類型的問題。以下是一份 SFT 數(shù)據(jù)集中常見問題的檢查清單,這些問題都可以利用 LLM 裁判、代碼或外部工具,以及其他分類器的組合來(lái)進(jìn)行識(shí)別。
SFT 數(shù)據(jù)如何進(jìn)行批處理和填充
一旦我們收集好了用于 SFT 的指令–回答對(duì),下一個(gè)挑戰(zhàn)就是如何高效地將它們輸入 GPU。語(yǔ)言模型依賴固定形狀的張量:一個(gè)批次中的每個(gè)樣本必須具有相同的長(zhǎng)度。但是,真實(shí)文本的長(zhǎng)度差異很大,一個(gè)答案可能只有 12 個(gè) token,而另一個(gè)可能有 240 個(gè) token。
為了解決這一問題,我們會(huì)將數(shù)據(jù)打包成批次,并使用填充(padding)和固定的最大序列長(zhǎng)度 T;許多大規(guī)模訓(xùn)練方案還會(huì)把較短的樣本拼接在一起,然后再切分成固定長(zhǎng)度的序列,以減少填充的浪費(fèi)。
批處理(batching)指的是將多個(gè)樣本分組,以便它們可以并行處理。例如,批大小為 16 表示模型會(huì)同時(shí)看到 16 個(gè)提示與回答。這樣做能提升 GPU 利用率,并使梯度計(jì)算更加穩(wěn)定。但是,由于序列長(zhǎng)度不同,我們會(huì)以批次中最長(zhǎng)的樣本為基準(zhǔn),使其他所有序列都與它對(duì)齊。
這時(shí)就需要用到填充。填充 token 是一些特殊的「空」token(通常用 PAD 表示),它們會(huì)被附加到較短序列的末尾,使一個(gè)批次中的所有序列長(zhǎng)度一致。我們會(huì)使用注意力掩碼來(lái)告知模型忽略這些填充部分,因此它們不會(huì)影響損失計(jì)算。具體如下:
- 示例 1:[The, cat, sat] → 長(zhǎng)度 3
- 示例 2:[Dogs, bark, loudly, at, night] → 長(zhǎng)度 5
- 如果將它們放在同一個(gè)批次中,我們會(huì)把示例 1 填充到長(zhǎng)度 5: [The, cat, sat, PAD, PAD]
在訓(xùn)練過程中,注意力掩碼為 [1, 1, 1, 0, 0],因此損失只會(huì)在真實(shí) token 上計(jì)算。這樣既能保證梯度的正確性,又能讓張量保持矩形結(jié)構(gòu)。
在實(shí)踐中,批處理和填充策略會(huì)顯著影響吞吐量。
- 動(dòng)態(tài)批處理(分桶):將長(zhǎng)度相近的樣本分組,以減少填充需求。
- 序列打包:將多個(gè)較短的樣本拼接成一個(gè)長(zhǎng)序列,并用特殊 token 分隔,以減少空間浪費(fèi)。
- 掩碼機(jī)制:確保只有「真實(shí)」的 token 才會(huì)對(duì)梯度產(chǎn)生貢獻(xiàn)。
SFT 損失函數(shù) - 負(fù)對(duì)數(shù)似然函數(shù)
由于 SFT 本質(zhì)上就是一個(gè)多分類問題(number of classes = vocab_size),因此用于訓(xùn)練模型的損失函數(shù)就是在給定輸入 x 的條件下,生成正確序列 y 的負(fù)對(duì)數(shù)似然(NLL)。這一過程通常通過計(jì)算模型預(yù)測(cè)類別與數(shù)據(jù)集中真實(shí)類別之間的交叉熵來(lái)實(shí)現(xiàn)(在輸出序列的每個(gè) token 上進(jìn)行)。數(shù)學(xué)形式如下所示:
其中:
- θ 表示模型參數(shù)
- y_t 表示目標(biāo)回答中的第 t 個(gè) token
- y_
- p_θ(?) 表示模型給出的概率分布
在實(shí)踐中,這通常通過交叉熵函數(shù)來(lái)實(shí)現(xiàn)。在序列的第 t 步,設(shè) y_t^* 為正確的 token(來(lái)自真實(shí)數(shù)據(jù)集)。設(shè) p_θ(y_t^* | x,y_
為了保證數(shù)值穩(wěn)定性,這個(gè)函數(shù)通?;谧詈笠粚拥?logits 來(lái)實(shí)現(xiàn)(即 LLM 最后一層的輸出,在通過 softmax 函數(shù)之前的結(jié)果)。設(shè) V 為詞表大小,z_t ∈ R^V 表示序列中第 t 個(gè) token 在最后一層的 logits。針對(duì) y_t^* 的預(yù)測(cè)分布由以下公式給出:
因此,SFT 損失簡(jiǎn)化為:
第二項(xiàng)就是常見的「log-sum-exp」項(xiàng),它通常通過一種數(shù)值穩(wěn)定的方式計(jì)算(稱為「log-sum-exp 技巧」),如下所示。
由于 z_t,v - m ≤ 0,這可以確保 exp (z_t,v - m)≤ 1,因此不會(huì)出現(xiàn)整數(shù)溢出問題。整數(shù)下溢會(huì)被安全地舍入為 0,這正是預(yù)期的行為。將這些結(jié)合起來(lái),最終得到的 SFT 損失函數(shù)為:
接下來(lái)將深入探討后訓(xùn)練的主要階段之一 —— 強(qiáng)化學(xué)習(xí)(RL)。
RL 訓(xùn)練技巧有哪些?
在所有后訓(xùn)練方法中,強(qiáng)化學(xué)習(xí)或許是最復(fù)雜的一種,同時(shí)也是目前最有效的模型微調(diào)方式之一。
在傳統(tǒng)強(qiáng)化學(xué)習(xí)中,整體可以被看作一個(gè)循環(huán)過程:智能體根據(jù)環(huán)境狀態(tài)從策略(policy,即模型)中采樣動(dòng)作,以最大化某種獎(jiǎng)勵(lì)信號(hào)。
RL 獎(jiǎng)勵(lì)
獎(jiǎng)勵(lì)是一個(gè)標(biāo)量值,用于表示對(duì)某個(gè)動(dòng)作或狀態(tài)的期望程度。
上述公式旨在最大化期望獎(jiǎng)勵(lì),同時(shí)通過 KL 散度來(lái)進(jìn)行正則化約束。
在模型對(duì)齊與能力提升的過程中,有多種類型的獎(jiǎng)勵(lì)機(jī)制被證明是有效的:
- RLHF(基于人類反饋的強(qiáng)化學(xué)習(xí)) 借助從人類偏好中訓(xùn)練出的獎(jiǎng)勵(lì)模型(Reward Models, RMs),幫助模型在日常對(duì)話中表現(xiàn)更優(yōu),并對(duì)其安全性與語(yǔ)言風(fēng)格進(jìn)行對(duì)齊。
- RLAIF(基于 AI 反饋的強(qiáng)化學(xué)習(xí)),也被稱為 Constitutional AI(由 Anthropic 提出),通過將 LLM 與一份書面形式的規(guī)則結(jié)合,實(shí)現(xiàn)監(jiān)督信號(hào)的自主擴(kuò)展,生成偏好導(dǎo)向的獎(jiǎng)勵(lì)信號(hào)。
- RLVR(基于可驗(yàn)證信號(hào)的強(qiáng)化學(xué)習(xí)) 在提升數(shù)學(xué)推理與代碼能力方面表現(xiàn)突出,它使用真實(shí)答案、單元測(cè)試、代碼執(zhí)行結(jié)果等可驗(yàn)證信號(hào)作為精確的獎(jiǎng)勵(lì)來(lái)源。
- 過程監(jiān)督(Process Supervision) 的粒度比 RLVR 更細(xì),它通過過程獎(jiǎng)勵(lì)模型(Process Reward Model, PRM),對(duì)長(zhǎng)任務(wù)中的中間步驟進(jìn)行逐步評(píng)分。
- 最后,基于評(píng)分標(biāo)準(zhǔn)(rubrics)的獎(jiǎng)勵(lì)機(jī)制可以通過判斷模型輸出是否滿足一組明確的評(píng)分標(biāo)準(zhǔn)來(lái)生成獎(jiǎng)勵(lì) 。通常會(huì)使用多個(gè)評(píng)分標(biāo)準(zhǔn),因此最終獎(jiǎng)勵(lì)往往是各評(píng)分項(xiàng)得分的加權(quán)和或平均值。
在實(shí)際應(yīng)用中,后訓(xùn)練流程通常采用一種混合式、多階段的訓(xùn)練方案,在不同階段融合多種獎(jiǎng)勵(lì)類型(例如:SFT → 偏好優(yōu)化 → 帶有可驗(yàn)證 / 評(píng)分標(biāo)準(zhǔn)信號(hào)的 RL)。
獎(jiǎng)勵(lì)模型與人類偏好
在 RLHF 發(fā)展初期,InstructGPT 論文提出了一種方法:即通過人類偏好排序來(lái)訓(xùn)練獎(jiǎng)勵(lì)模型,這也成為了 RLHF 中的核心組件之一。
最常見的獎(jiǎng)勵(lì)模型任務(wù)是:預(yù)測(cè)某個(gè)候選回復(fù)在多大程度上符合人類對(duì)該提示語(yǔ)的偏好。這種能力是通過一批帶有人類偏好標(biāo)簽的「提示語(yǔ)–回復(fù)」數(shù)據(jù)集訓(xùn)練出來(lái)的。換句話說,獎(jiǎng)勵(lì)模型的目標(biāo)是估計(jì)在給定指引下,人類標(biāo)注者更傾向于哪一個(gè)輸出。
為收集偏好數(shù)據(jù),研究人員會(huì)針對(duì)一個(gè)提示語(yǔ)生成多個(gè)模型回復(fù),讓人工標(biāo)注者對(duì)這些回復(fù)按從最好到最差進(jìn)行排序。這些排序數(shù)據(jù)用于訓(xùn)練獎(jiǎng)勵(lì)模型,而訓(xùn)練好的獎(jiǎng)勵(lì)模型則在強(qiáng)化學(xué)習(xí)微調(diào)階段為模型輸出提供標(biāo)量獎(jiǎng)勵(lì)信號(hào)。
什么是偏好數(shù)據(jù)?
偏好數(shù)據(jù)的一般形式是:一個(gè)提示語(yǔ)配對(duì)兩個(gè)回復(fù),即成對(duì)比較(pairwise preference)。簡(jiǎn)單說就是一個(gè)模型生成兩個(gè)回復(fù)(回復(fù) A 和回復(fù) B)。標(biāo)注者判斷 A 是否比 B 更好,或反之。還可以讓標(biāo)注者對(duì)多個(gè)回復(fù)進(jìn)行整體排序,記錄任意兩個(gè)回復(fù)之間的比較。許多 RLHF 流程正是通過這種方式來(lái)構(gòu)建獎(jiǎng)勵(lì)模型所需的數(shù)據(jù)集。
數(shù)據(jù)示例如下:
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 提示和數(shù)據(jù)
接下來(lái),文章給出了一些不同獎(jiǎng)勵(lì)類型下的 RL 提示示例數(shù)據(jù)。
可驗(yàn)證獎(jiǎng)勵(lì)(Verifiable rewards):
- 適用場(chǎng)景:存在可靠的自動(dòng)化檢驗(yàn)器,可用于判斷結(jié)果是否正確或合規(guī)。
- 最佳應(yīng)用領(lǐng)域:數(shù)學(xué)、代碼生成、結(jié)構(gòu)化抽取 / 格式化、有標(biāo)準(zhǔn)答案的檢索任務(wù)、以及結(jié)果可檢驗(yàn)的工具調(diào)用。
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
},
],
偏好獎(jiǎng)勵(lì):
- 何時(shí)使用:在沒有嚴(yán)格檢查的情況下。
- 最佳適用領(lǐng)域:聊天、摘要、重寫、風(fēng)格、安全性。
RL 算法
下表給出了 LLM 后訓(xùn)練中常用的幾類強(qiáng)化學(xué)習(xí)算法。
最初,社區(qū)主要使用 PPO(近端策略優(yōu)化,Proximal Policy Optimization);但自 DeepSeek-V3 發(fā)布后,GRPO(組相對(duì)策略優(yōu)化,Group Relative Policy Optimization) 成為了更受歡迎的選擇。兩者的主要區(qū)別在于:GRPO 去掉了單獨(dú)的價(jià)值(critic)網(wǎng)絡(luò),而是通過組采樣來(lái)估計(jì)相對(duì)優(yōu)勢(shì),從而減少了內(nèi)存與計(jì)算成本。
另外,REINFORCE 是一種經(jīng)典的強(qiáng)化學(xué)習(xí)算法,它同樣不依賴 critic 網(wǎng)絡(luò),且實(shí)現(xiàn)非常簡(jiǎn)單。
最后,盡管從技術(shù)上來(lái)說 DPO(直接偏好優(yōu)化,Direct Preference Optimization) 并不是強(qiáng)化學(xué)習(xí)算法,但它因無(wú)需獎(jiǎng)勵(lì)模型而廣受關(guān)注;其訓(xùn)練成本低、穩(wěn)定性好,通常在固定的偏好數(shù)據(jù)上進(jìn)行離線訓(xùn)練。
如何評(píng)估后訓(xùn)練模型?
后訓(xùn)練評(píng)估形式多樣,需從多維度進(jìn)行評(píng)估。傳統(tǒng)指標(biāo)(如困惑度)無(wú)法捕捉有效性,而人工評(píng)估昂貴且主觀。因此,成功的評(píng)估需要融合多種方法,以覆蓋模型質(zhì)量的各個(gè)方面。
后訓(xùn)練評(píng)估方法可分為以下幾類:自動(dòng)評(píng)估、人工評(píng)估
自動(dòng)評(píng)估通常快速且廉價(jià),且無(wú)需昂貴的人工干預(yù)。一般包含基于標(biāo)準(zhǔn)答案的評(píng)估、基于大語(yǔ)言模型的評(píng)估等。
而人工評(píng)估是由人類評(píng)估員直接評(píng)判模型輸出,是評(píng)估模型主觀質(zhì)量的黃金標(biāo)準(zhǔn),尤其適用于自動(dòng)評(píng)估難以衡量的開放式或敏感任務(wù)(如評(píng)估禮貌性、創(chuàng)意性)。但此類方法成本高、耗時(shí)多,且結(jié)果易受標(biāo)注者偏見、文化背景等因素影響。
下面是人工評(píng)估中的單點(diǎn)評(píng)估和基于偏好的評(píng)估對(duì)比:
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.