思考RLHF的本質以及主流演算法思路

MLNLP社群是國內外知名的機器學習與自然語言處理社群,受眾覆蓋國內外NLP碩博生、高校老師以及企業研究人員。
社群的願景是促進國內外自然語言處理,機器學習學術界、產業界和廣大愛好者之間的交流和進步,特別是初學者同學們的進步。
來源 | 知乎
作者|紫氣東來
自 RLHF 提出以來,LLM+RL 的研究一直是熱點,從最開始的對齊人類偏好到後來的訓練複雜推理模型,RL 已儼然成為一個基礎步驟和必要環節。筆者之前的文章中也多次討論過相關內容,但主要側重於演算法原理和實現過程,但其中的很多根本性問題未做過多討論,因此本篇將從經典演算法到最新的演算法展開,主要討論以下問題:
  • • RLHF 的本質是什麼,及其與 RL 和有監督學習(SL)的關係
  • • 當前的各種最佳化方法的最佳化點是什麼,其立足角度和收益如何
  • • 使用 RL 訓練邏輯推理模型,有哪些經驗及注意事項

一、從 RL 角度再思考 Post-training

RLHF 是一種使用強化學習方法將 LLM 對齊人類的技術,並逐步延伸到複雜推理模型的訓練中,在發展過程中也出現多種演算法,包括 PPO,DPO,GRPO,RLOO,REINFORCE 及其衍生版本。在本節中,我們將試圖從最基礎的 PPO 演算法出發,結合 RL 理論,試圖從一個統一的視角來理解不同演算法的本質、取捨及效果。
首先我們不妨來回顧一下 RLHF (PPO) 的工作流程,這是我們接下來討論的框架和基礎:
1.首先使用經典的有監督方法訓練得到一個 SFT 模型,以作為 RL 訓練的初始模型(  )以及計算 KL 散度的參考模型(  );
2.使用人工標註的偏好資料集訓練獎勵模型  , 最場景的方式是 Bradley-Terry 模型,即透過有監督學習將人類有偏好的結果賦予更高的分數;
3.進行 PPO 強化學習訓練,該過程可分為2步:
取樣階段
  • • 對每個提示  ,用  生成回答  ,並計算獎勵  (包含KL懲罰項避免偏離SFT)。
  • • 計算優勢估計  (常見的是GAE)和回報值,並將以上結果存入 experience buffer。
最佳化階段
  • • 策略更新:最大化PPO-Clip目標函式:
同時加入熵正則項鼓勵探索。
  • • 價值函式更新:最小化價值函式損失
 擬合回報值, 其中  表示狀態  的實際回報值,可以估計為  。

1.1 RLHF 中的 RL 基礎概念

RL 中有一些必要的概念與構成,如環境、狀態、動作、獎勵等,下面我們將 RLHF 中的各環節對應起來。

狀態(State): 初始狀態即由使用者輸入 prompt 
動作(Action):對於語言模型來說,動作空間由模型詞彙表中的所有token組成,即大小為 vocab_size
獎勵(Reward):
  • • response level:策略  根據當前上下文生成 token,逐步構建的回答  , 在評估時,通常以最後一個 token EOS 的分數代替(這是最常見的做法,上圖顯示就是這種)。
  • • token level: 該方式基於一種認識:每一個 token 是一個 action,生成的完整 completion 構成一個決策序列,這種方式事實上與自然語言的特點並不相容,即人類通常不會逐字去評估一段話,而是看完一整句或整段後進行評估,因此這種方式採用的也比較少。
序列決策:經典 RL 處理的都是序列決策問題,即一次探索由多個互動(動作)構成。而在 RLHF 中,如果我們將 response 看做 action,那麼 RLHF 實際上就是一種單步的、即時獎勵的 RL。
環境(Environment): 在經典 online RL 中,環境是客觀的、能夠提供即時反饋,從而幫助模型進行更新;而在 RLHF 中環境實際上由策略模型和獎勵模型本身構成,而獎勵模型還是預先訓練好的、靜態的,從這個角度來說,RLHF 更類似於offline RL 或監督學習,而不是online RL。
策略(Policy): 在 RLHF 中,策略即 LLM 本身
概念
經典 RL
RLHF
狀態空間
物理狀態(如畫素、座標)
文字上下文(token序列)
動作空間
離散/連續控制(如按鍵)
生成下一個 token(詞彙表分佈)
獎勵
環境反饋(如得分)
獎勵模型或規則
可觀測性
通常完全觀測
完全觀測(文字歷史已知)

1.2 基於策略梯度的更新方法

RLHF 中的演算法都是基於策略梯度的 RL 演算法,即透過深度學習模型為策略建模,輸入某個狀態,然後輸出動作的機率分佈,目標是尋找一個最優策略並最大化該策略在環境中的期望回報。
依據訓練資料產生的方式,主流的 RLHF 方法可以大致分為兩大類:
  • • On-Policy: 在訓練過程中,模型主動生成自己的資料樣本,進而根據模型當前狀態持續探索和更新,這種方式的瓶頸主要在資料生成過程(耗費計算資源和時間),典型方法的如 PPO
  • • Off-Policy: 訓練依賴於預先收集的資料(或由另一個策略生成的資料),無需即時生成,這種方式樣本效率高,典型方法如 DPO
接下來以 On-Policy 的 PPO 演算法為例來回顧 RLHF 中策略更新的核心過程,一個典型的 PPO 演算法包括以下組成:
  • • Actor: 即策略模型,用以生成輸出,並根據反饋進行更新
  • • Critic: 扮演教練的角色,為每個生成的輸出提供即時反饋,並隨著模型能力的提升與 Actor 模型同步更新
  • • Reward Model: 作為裁判,分配最終得分或偏好評估,預先由偏好資料訓練得到,在PPO訓練過程中保持不變
  • • Reference Model: 作為策略模型的參考,防止演員模型偏離原始預訓練分佈太遠
接下來簡要回顧策略最佳化的過程,強化學習中的目標是最佳化策略以最大化期望回報
策略的回報定義在所有可能的軌跡上
軌跡  的機率可以表示為
其中軌跡總回報被定義為
在深度學習中,我們通常透過最小化損失函式並使用隨機梯度下降來更新引數。然而,由於我們的目標是最大化回報,我們使用隨機梯度上升來更新策略
關於  的推導可以參考 深度強化學習(五):策略梯度的方法[1] 在此直接給出結果
其中  可以有以下多種形式:
(1)  :軌跡的總回報
(2)  : 動作  之後的回報,無偏但方差較大
(3) : 增加偏置項的改進版本,以減小方差
(4) :動作價值函式
(5) : 優勢函式,把狀態價值函式  作為基線,從  函式減去這個  函式則得到了  函式,RLHF 的主要採用形式,且PPO, GRPO, RLOO等不同演算法的差異也主要體現在這裡
(6):時序差分殘差,利用  公式即可得到
以上幾種方式更加深入的討論和區別,及其在不同演算法上的使用,將在第二節進行深入討論。

1.3 重要性取樣與梯度裁剪

在策略梯度中,除了  外,另一個關鍵的部分即  取樣,如果按照這種方式進行更新,則在每次更新引數後都需要重新取樣軌跡,而不能進行多步迭代後,因此樣本效率比較低,那麼該如何提高樣本效率呢? 答案是重要性取樣 (Importance Sampling) 。
重要性取樣將已知分佈的樣本轉換為未知分佈的樣本,如下所示 p(x) 為未知分佈,而  為已知分佈:
這樣就將 on-policy 的形式轉化成了 off-policy 的形式,則策略梯度可改寫為
這樣就從  取樣變成了從  取樣。

現在我們嘗試基於以上過程推匯出損失函式。假設當前策略為 ,引數為。我們考慮如何藉助當前的找到一個更優的引數,使得。具體來說,由於初始狀態的分佈和策略無關,因此上述策略下的最佳化目標可以寫成在新策略 的期望形式:
則新舊策略的目標函式之間的差距為:
只要我們能找到一個新策略,使得
就能保證策略效能單調遞增,即實現策略更新。由於上式是透過  進行取樣的,同樣可以採用重要性取樣,這樣就可以得到替代的最佳化目標:
在 PPO 中,可以進一步簡化最佳化目標,即
根據拉格朗日乘子法將 KL 散度以懲罰項的形式放到目標函式中,使之變成一個無約束的最佳化問題
PPO 的另一種截斷的形式更加直接,它在目標函式中進行限制,以保證新的引數和舊的引數的差距不會太大 (這也是最常見的形式),即:

二、主流演算法的思路及其比較

在第一節中,我們簡要回顧了 RL 在 Post-traing 中的核心過程,但是在 1.2 小節中留下了  未做深入討論,事實上這也是當前 REINFORCE, ReMax, RLOO, PPO, GRPO, Dr.GRPO 的差異所在。在進行比較之前,我們需要確定幾個概念,弄清了這幾個關鍵概念的計算過程,也就理解了不同演算法的差別。
Return (回報):從時間步數  開始的回報  為軌跡的總(折現)獎勵  由此還可以得到其遞推關係  。
狀態值函式定義為在策略  下的當前狀態期望回報$$V_\pi(s)=\mathbb{E}_\pi\left[G_t \mid s_t=s\right]$$
動作值函式被定義為在策略  下的當前狀態下動作的期望回報
以上二者的關係為,在使用策略  中,狀態  的價值等於在該狀態下基於策略  採取所有動作的機率與相應的價值相乘再求和的結果: 
使用策略 sa$ 的價值等於即時獎勵加上經過衰減後的所有可能的下一個狀態的狀態轉移機率與相應的價值的乘積:
Advantage(優勢) 表示相對於基線的差異,通常把狀態價值函式  作為基線,從  函式減去這個  函式則得到了  函式,即

2.1 PPO 與 VC-PPO

優勢函式A很難精確計算,對於如何估計優勢函式,目前比較常用的一種方法為廣義優勢估計(Generalized Advantage Estimation,GAE),接下來我們簡單介紹一下 GAE 的做法。
首先,用  表示時序差分誤差,其中 V 是一個已經學習的狀態價值函式。於是,根據多步時序差分的思想,有:
然後,GAE 將這些不同步數的優勢估計進行指數加權平均:
其中,  是在 GAE 中額外引入的一個超引數,
  • • 當  時,  ,也即是僅僅只看一步差分得到的優勢;
  • • 當  時,  ,則是看每一步差分得到優勢的完全平均值。
這樣就得到了完整版本的 PPO 損失函式的公式,即
下面透過一個例子來說明主要元素的計算過程

可以看到,PPO 是 token-level 的動作,而其獎勵確實 response-level(只在 EOS 位置有獎勵值),這種方式實際上會導致獎勵非常稀疏。
主流框架的實現可參考:
  • • trl/ppo_trainer[2]
  • • OpenRLHF/get_advantages_and_returns[3]
  • • verl/compute_gae_advantage_return[4]
標準的 PPO 演算法直接來源於經典 RL ,對語言序列的特點考慮的有限,特別是在長文字上,對此 VC-PPO 做了一些特異性修正,下面理解一下其核心點:長序列中的值模型偏差及其消除
在 PPO 中,VM 是由 RM 初始化的,而由於 reward 是 response-level 的,即取的是 <EOS> 位置的分數,而分配給靠前token 的分數較低;而 value 是 token-level 的,在給定策略下估計所有在之前的 token 的預期累積獎勵。在早期訓練階段,由於 GAE 的反向計算,每個時間步 t 都會存在正偏差,並沿著軌跡累積。
在 GAE 計算過程中,分配給 token 的獎勵在傳播到前面的標記時以  (通常為0.95)的速率衰減。傳播到  位置token 的獎勵訊號是  。當  很大時,產生的獎勵訊號基本上為零。而如果設定  則不會出現這種衰減。
在經典 RL,每一步的 action 都能得到獎勵值,累積獎勵具有高方差,導致收斂速度慢,因此使用 GAE 與 λ=0.95 ,即認為當前的步驟更加重要,未來的步驟折現需要打一個折扣。而在 RLHF 中,一個獎勵模型或基於規則的評分機制提供軌跡級別的反饋,這些反饋是非累積的且定義明確的值。
為了平衡以上問題,VC-PPO 提出了一種長度自適應更新策略,確保 TD 誤差在短序列和長序列上分佈更加均勻,即
這種方式可以更加靈活有效地處理不同長度的序列。

2.2 RLOO

RLOO核心實現細節在於,它使用批次中其他樣本的平均獎勵來計算基線,而不是平均所有獎勵。具體來說,在每個時間步  ,我們從  取樣  個輸出樣本,因此對於一個 prompt 來說,其基線可以定義如下:
在此情況下,其優勢函式為:
下面透過一個例子來說明主要元素的計算過程

可以看到 RLOO 與 PPO 的計算過程明顯不同,主要體現在:
  • • PPO 的計算過程是 token-level 的(即將 token 看做 action),而 RLOO 的計算過程是 response-level 的(即將 response 看做 action)
  • • RLOO 沒有 PPO 中的 value model(critic) ,而需要對每個 prompt 產生多個輸出,即視訊記憶體佔用變少而產生樣本變多;
  • • PPO 使用 GAE 的方式計算 A 函式,而 RLOO 透過與基線的差值來計算 A 函式
當然,RLOO 也可以透過 token-level 的方式進行計算,更多實現可參考:
  • • trl/rloo_trainer (token-level & response-level)[5]
  • • OpenRLHF (token-level)[6]
  • • verl/compute_rloo_outcome_advantage (response-level)[7]

2.3 GRPO 與 Dr,GRPO

DeepSeek提出的 GRPO 基本上結合了 PPO 與 RLOO 的多采樣技巧, 其透過簡化值估計並將相同的價值分配給每個 token(即在提示的完成中,每個 token 都分配相同的價值,而不是標準值函式中的折扣獎勵)來實現這一點,然後通過蒙特卡洛估計優勢或基線。
具體來說,對於給定的prompt s 的一組多個相應  其損失函式可寫成
同樣可將其拓展為 token-level 的損失函式
其中第  個response 的優勢計算方式如下:
直觀地說,GRPO 的更新是在批次內比較單個問題與多個答案,這是一種非常簡單的方式來計算優勢,即特定動作相對於給定狀態的平均動作有多好。相對於 PPO,GRPO 通常使用每個提示的樣本數量要高得多。
GRPO 的優勢計算存在偏差權衡。透過標準差進行歸一化會獎勵那些在批次中答案正確性變化較小的提問。對於幾乎全部正確或全部錯誤的答案,標準差會較低,優勢會較高。

Dr. GRPO 提出在這種情況下移除標準差項,但這會以降低那些全部錯誤但有少數正確答案的提問的權重為代價,這可能會被視為有價值的訊號。
Dr. GRPO 移除了標準差歸一化項。這解決了對低獎勵方差問題(即幾乎所有答案都是正確或錯誤的)的偏差,在常數縮放因子下等同於 RLOO 估計
回顧一下 RLOO 的優勢估計
則有以下縮放等價性
關於 GRPO 還有一個細節是關於 KL 散度的,即在通常的 GRPO 實現中,KL 並不直接作用為 reward 的懲罰項,而是通常直接作用到損失函式中 (DAPO 與 Dr. GRPO 證明KL並非必須項),即
下面通用透過一個例子來說明其主要元素的計算過程

主流框架的實現可參考:
  • • trl/grpo_trainer[8]
  • • OpenRLHF/grpo & dr_grpo[9]
  • • verl/compute_grpo_outcome_advantage[10]
  • • Dr_GRPO/compute_advantages[11]

2.4 REINFORCE 與 ReMax

前邊介紹的方法都一定程度使用了一些假設條件,同時由於訓練成本高昂,很難同時訓練多種方法進行比較選擇,那麼使用是否有一種 baseline 作為參照呢?REINFORCE 就是這樣一種大道至簡的方法。
事實上,REINFORCE 的 A 函式計算方式與 Dr.GRPO 完全一致(也不需要 value 模型),即
另一方面,reward 的計算方法(使用 KL 懲罰項)即重要性取樣與clip 又與 PPO 保持一致,因此這是一種非常理想的基線方法。
在 PPO 中,計算 GAE 需要狀態值函式,這在LLM訓練後難以準確獲得,並且儲存時佔用視訊記憶體,訓練時計算量大。ReMax 透過在每個時間步  即時取樣貪婪軌跡的回報來消除對  的需求。ReMax使用貪婪生成的回答(greedy response)的獎勵作為基準值(baseline value)來構建梯度估計器,具體方式如下:

2.5 DAPO 與 VAPO

DAPO 與 VAPO 都是近期位元組 seed 團隊提出的 SOTA 的 RL 方法,針對現有方法及特定場景提出了很多有價值的技術點,下邊我們來一看究竟。
DAPO 對 GRPO 進行了 4 項修改,以更好地適應需要長序列和增加新、未充分利用的標記機率的推理語言模型,其修改後的損失函式為
其中
接下來分別簡要介紹其 4 處主要的改進點:
(1)提高探索:使用兩個不同的 clip 超引數  和 
在原始的 PPO 演算法中,使用 clip 是為了讓策略在有限範圍內探索,以避免波動過大。在 LLM 的訓練過程中,這種做法可能會導致熵坍縮現象:隨著訓練的進行,策略的熵迅速下降,某些組的取樣響應幾乎相同,這就影響模型能力的進一步提高。
RL 的關鍵即探索和利用的平衡,從 token-level 的視角來看,如果取  ,有兩個動作
此時如果更新機率  即會被截斷,此時低機率的 token 增加的範圍非常有限,因此將  的上下限解耦,增大  可以有效提高LLM的探索能力(特別是低機率 token 上)。
另一方面,為什麼不擴大  呢?如果  也增大,即允許  更大程度接近 0,這樣會導致取樣空間的壓縮。
(2)動態取樣,有效學習
在 GRPO 中,如果一個 prompt 過於簡單或者過於困難,導致一組的輸出全對或者全錯,那麼這組的優勢為零,進而導致梯度為零,策略無法更新,這樣的話樣本效率比較低。過濾掉這類樣本將有效提高模型訓練效率,具體做法即損失函式的約束條件。
(3)樣本區分:token-level 損失
在 GRPO 中,損失是樣本級的,即首先在每個樣本內按 token 平均損失,然後跨樣本彙總損失,這樣每個樣本在最終損失計算中被賦予相同的權重。這樣對於長輸出,可能會帶來以下影響:
  • • 高質量長輸出:可能會導致模型無法有效學習其中的推理模式;
  • • 低質量長輸出,如亂碼重複,也無法進行有效懲罰,導致熵和長度不健康增加;因此DAPO增加長度的平均項,使無論獎勵出現在哪個長度的響應中,該模式都將被同等程度地促進或抑制。
(4)減少噪聲:超長過濾
在樣本生成過程中,通常會設定一個最大長度,超過該長度的樣本會被截斷,被截斷的樣本通常沒有最終的結果,因此也無法做出準確評估,這就會造成訓練過程的噪聲。DAPO 過濾掉了這類樣本,顯著提高了訓練穩定性及效能。
在前文中,我們已經介紹了主要的 LLM+RL 訓練方法,包括:大本大宗的 PPO,炙手可熱的 GRPO,作為基線的 REINFORCE,修正主義的 DAPO。那麼是否有一種方法能夠集以上方法之大成呢?我想當前 VAPO 算是一個,這麼說的原因體現在:
  • • 從 PPO 繼承了損失函式的基本形式,特別是對於值函式的利用參考了 VC-PPO
  • • 從 GRPO 中繼承了 Group-Sampling
  • • 從 DAPO 中繼承了 Clip-Higher此外,VAPO 還有一個重要貢獻是:稀疏獎勵訊號及其處理
在 RLHF 中,獎勵訊號本來就是稀疏的(只在 EOS 位置有獎勵值),而基於驗證器的獎勵模型通常提供二元反饋(0 或 1),這種反饋比 RM 輸出的連續值更加稀疏。在複雜推理場景中,CoT 顯著延長輸出長度,不僅增加計算時間,還降低獲得非零獎勵的頻率。在策略最佳化中,具有正確答案的取樣響應可能極為稀缺且寶貴。這就會遇到 RL 最常見的探索-利用困境:
  • • 一方面,模型必須保持相對較高的不確定性。這使它能取樣各種不同的響應,增加針對給定提示生成正確答案的可能性。
  • • 另一方面,演算法需要有效地利用透過艱苦探索獲得的正確取樣響應——以增強學習效率。為了解決這一問題,VAPO 除了繼承了 DAPO 中的Clip-Higher 和 Group-Sampling,還提出了一個正例 LM 損失。在複雜推理任務的強化學習背景下,一些任務表現出顯著的低準確率,大多數訓練樣本都給出錯誤答案。傳統的策略最佳化策略在抑制錯誤樣本生成機率時,在強化學習訓練過程中效率低下,因為試錯機制會帶來巨大的計算成本。鑑於這一挑戰,當策略模型取樣到正確答案時,最大化正確答案的效用至關重要。為了應對這一挑戰,透過在強化學習訓練過程中對正確結果取樣引入額外的負對數似然(NLL)損失
其中  表示正確答案的集合。最終的負對數似然損失透過權重係數  與策略梯度損失相結合,共同作為更新策略模型的指標:
透過這種方法大大提高了強化學習訓練過程中正樣本的利用效率。

三、從理論角度再思考 LLM + RL

從前文的討論可以看到,與 RL 的經典場景不同,使用 RL 訓練 LLM 顯得比較“擰巴”,其根本原因就是語言本身的特點及其建模過程導致的。那麼我們是否可以從更高的角度來思考這一問題呢?

3.1 DPO:有監督對齊

在上節中,我們詳細討論了 online 的學習過程,以 PPO 為例,即由策略產生樣本,在RM(裁判)和 VM(教練)的指導下進行訓練,其核心在於訓練資料是即時產生的。而與之相對,DPO 則是直接從最佳化目標求解最優對齊模型,其核心在於融合策略和獎勵的學習,使之可以在一個步驟中透過有監督方式得到。
回顧一下,獎勵模型的損失函式:
PPO 損失函式:
DPO 損失函式可以看做二者的融合:
注意到 DPO 沒有對策略的取樣過程,而利用預先收集的比較資料,直接根據偏好比較最佳化策略。透過這種方法,我們可以繞過單獨訓練獎勵模型,直接使用標註的成對偏好資料一次性訓練對齊模型  ,而這是典型的靜態的有監督方法。
儘管這種方式比較簡單,對計算資源要求較少,但其實際效果常常不如 PPO,主要侷限性體現在:

評估與生成之間的脫節

DPO 的訓練過程僅讓模型學會“評估”,而沒有融入實際對弈所需的線上生成過程。相比之下,PPO 透過線上生成和試錯來學習,將評估能力轉化為生成能力。沒有這種線上探索,僅用 DPO 訓練的模型可能在離線資料上得分很高,但在實際生成過程中表現不佳。

離線訓練的侷限性

RLHF 本質上是一種線上學習方法,因為它需要持續糾正模型現有的知識。然而,DPO 完全是離線的;它迫使模型僅依賴於標註者認為“正確”的,並遵循預定的最優路徑,幾乎沒有探索的空間。在實踐中,通常使用諸如在首選響應上進行初始監督微調(SFT)或用多樣化的輸出增強偏好資料等技術,以引入一些線上學習和探索的元素。

要求高資料質量

由於 DPO 訓練完全依賴於離線偏好資料,其有效性高度敏感於這些資料的質量和覆蓋範圍。如果訓練資料不全面或與實際的生成分佈不匹配,模型可能會生成具有正確相對比例的正負例子的響應,但絕對機率可能會被稀釋,甚至可能出現訓練資料中不存在的輸出。
當然 DPO 也可以改造成線上的形式,即 online DPO[12] , 即對於一個輸入  , 可以使用當前策略產生兩個輸出  , 然後引入一個一個標註器將樣本標註為  , 然後進一步訓練 DPO,該過程如下圖所示

3.2 統一視角理解從 SFT 到 RL

在前文中,我們主要從經驗的角度去討論和比較各種方法,那麼如果從第一性原理的角度,如果更加深刻理解這一問題呢?本節將圍繞此點展開,以下內容主要參考 All Roads Lead to Likelihood: The Value of Reinforcement Learning in Fine-Tuning[13]
從本質上來說,無論是SFT,PFT,RL,後訓練的目標可以統一表述為
其中 分別表示訓練資料集上的均勻分佈,在策略上的分佈,參考策略上的分佈。上式中,第一項資料似然使用前向 KL 項,衡量資料集中的樣本與策略生成樣本的相似程度,第二項先驗正則使用反向 KL 項,衡量策略與參考策略 的近似程度。
理想情況下,如果 能夠覆蓋所有軌跡對,就無需第二項,但在真實場景中,由於樣本數量的限制,故新增第二項作為正則化。通常情況下,會把起始模型當作, 但隨著訓練的進行,的能力不斷增強,此時反而成了限制進一步提高能力,因此也可以使用 本身的熵
作為正則化項

按照以上理論,對於經典 SFT,其目標即在離線資料上透過最大似然估計(MLE)直接最佳化策略引數。而對於線上策略,該過程包括兩個階段:
  • • (1)透過 MLE 擬合獎勵模型(RM,空間  );
  • • (2)使用 RM 為強化學習(RL,空間  )過程提供反饋。
其中RM的訓練通常採用 BT 模型,即
如果 RM 是區域性的,我們可以透過用  的對數機率之和替換  來透過 MLE 擬合策略
由此可知,離線 PFT 方法如 DPO 本質上是一個在區域性獎勵模型上的軌跡級分類問題。
進一步可推出,當  (即覆蓋了相同的獎勵函式集合),此時 RLHF 等價於 MLE (DPO)
也就是說從資訊理論的角度,以上方法無法區分, 但是,以上假設條件過於理想,在真實情況下的經驗是 online policy (如 PPO) > offline policy (如 DPO) > SFT, 那麼這之間的差異是由什麼導致的呢?
從計算機科學的角度來看,將策略視為生成器,將獎勵模型視為驗證器,獎勵函式(可以用深度更低的電路表示)比最優策略更容易表示。因此反向強化學習(即從演示中學習獎勵模型並透過強化學習解碼)優於行為克隆(即透過最大似然估計直接學習策略)的方法,即線上學習是更優的策略學習。從端到端來看,線上微調只需要在  中搜索策略,而不是像離線微調那樣在整個  中進行搜尋。

引用連結

[1] 深度強化學習(五):策略梯度的方法:https://zhuanlan.zhihu.com/p/450690041[2]trl/ppo_trainer:https://github.com/huggingface/trl/blob/main/trl/trainer/ppo_trainer.py#L506[3]OpenRLHF/get_advantages_and_returns:https://github.com/OpenRLHF/OpenRLHF/blob/main/openrlhf/trainer/ppo_utils/experience_maker.py#L569[4]verl/compute_gae_advantage_return:https://github.com/volcengine/verl/blob/main/verl/trainer/ppo/core_algos.py#L66[5]trl/rloo_trainer (token-level & response-level):https://github.com/huggingface/trl/blob/main/trl/trainer/rloo_trainer.py#L432[6]OpenRLHF (token-level):https://github.com/OpenRLHF/OpenRLHF/blob/main/openrlhf/trainer/ppo_utils/experience_maker.py#L539[7]verl/compute_rloo_outcome_advantage (response-level):https://github.com/volcengine/verl/blob/main/verl/trainer/ppo/core_algos.py#L197[8]trl/grpo_trainer:https://github.com/huggingface/trl/blob/main/trl/trainer/grpo_trainer.py#L927[9]OpenRLHF/grpo & dr_grpo:https://github.com/OpenRLHF/OpenRLHF/blob/main/openrlhf/trainer/ppo_utils/experience_maker.py#L539[10]verl/compute_grpo_outcome_advantage:https://github.com/volcengine/verl/blob/main/verl/trainer/ppo/core_algos.py#L107[11]Dr_GRPO/compute_advantages:https://github.com/sail-sg/understand-r1-zero/blob/main/train_zero_math.py#L293[12]online DPO:https://arxiv.org/pdf/2402.04792[13]All Roads Lead to Likelihood: The Value of Reinforcement Learning in Fine-Tuning:https://arxiv.org/pdf/2503.01067

技術交流群邀請函

△長按新增小助手
掃描二維碼新增小助手微信
請備註:姓名-學校/公司-研究方向
(如:小張-哈工大-對話系統)
即可申請加入自然語言處理/Pytorch等技術交流群

關於我們

MLNLP 社群是由國內外機器學習與自然語言處理學者聯合構建的民間學術社群,目前已經發展為國內外知名的機器學習與自然語言處理社群,旨在促進機器學習,自然語言處理學術界、產業界和廣大愛好者之間的進步。
社群可以為相關從業者的深造、就業及研究等方面提供開放交流平臺。歡迎大家關注和加入我們。


相關文章