一、奖励模型(Reward Model)

奖励模型(Reward Model, RM)损失函数公式为 Pairwise Ranking Loss,具体如下:
l o s s ( θ ) = − E ( x , y w , y l ) ∈ D [ log ⁡ ( σ ( r θ ( x , y w ) − r θ ( x , y l ) ) ) ] loss(\theta) = - \mathbb{E}_{(x, yw, yl) \in D} \left[ \log \left( \sigma \left( r_\theta(x, yw) - r_\theta(x, yl) \right) \right) \right] loss(θ)=E(x,yw,yl)D[log(σ(rθ(x,yw)rθ(x,yl)))]
下面我来逐步解释这个公式:

1.1 背景与目标

  • 给定一个问题 x x x,有多个答案,由人工对这些答案进行排序,得到一对(高分答案 y w yw yw,低分答案 y l yl yl)。
  • 奖励模型的目标:让模型给高分答案的打分高于低分答案的打分。

1.2 损失函数的理解

(1) Pairwise 选择

  • 对于每个问题 x x x,选出一对答案 y w yw yw (较优)和 y l yl yl (较差),形成一条训练样本。

(2) 模型打分

  • r θ ( x , y ) r_\theta(x,y) rθ(x,y): 模型对答案 y y y 的打分, θ \theta θ 表示参数模型RW

(3) 分数差

  • r θ ( x , y w ) − r θ ( x , y l ) r_\theta(x,yw)-r_\theta(x,yl) rθ(x,yw)rθ(x,yl): 高分答案与低分答案的模型分数差。
  • 希望这个值越大越好!最小化loss,等价于最大化分数差

(4) Sigmoid函数

  • σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1+e^{-z}} σ(z)=1+ez1: 将分数差映射到0~1之间,作为概率解释
  • 差值越大, σ \sigma σ 越接近1,说明模型判别对了的概率越大。

(5) 对数函数

  • log ⁡ ( σ ( ⋅ ) ) \log(\sigma(\cdot)) log(σ()):常用于二分类交叉熵损失,对应最大化高分答案概率。

二、强化学习模型(Reinforce Learning Model)

大语言模型微调中训练RL模型最常用的优化方法是近端优化算法(Proximal Policy Optimization, PPO)。其损失函数如下:
l o s s ( ϕ ) = E ( x , y ) ∼ D π ϕ [ r θ ( x , y ) − β log ⁡ ( π ϕ ( y ∣ x ) π b a s e ( y ∣ x ) ) ] + γ E x ∼ D p r e t r a i n [ log ⁡ ( π ϕ ( x ) ) ] loss(\phi)=\mathbb{E}_{(x,y)\sim D_{\pi_{\phi}}}\left[r_\theta(x,y)-\beta\log\left(\frac{\pi_{\phi}(y|x)}{\pi_{base}(y|x)}\right) \right] +\gamma\mathbb{E}_{x\sim D_{pretrain}}\left[\log(\pi_{\phi}(x))\right] loss(ϕ)=E(x,y)Dπϕ[rθ(x,y)βlog(πbase(yx)πϕ(yx))]+γExDpretrain[log(πϕ(x))]

2.1 强化学习模型微调过程

(1) 准备数据

  • 从Prompts Dataset(提示语数据集)中取出输入(如:A dog is…),作为模型要生成答案的起点。

(2) 初始语言模型(Base Language Model)

  • 使用经过预训练和有监督微调(SFT)的基础语言模型生成初始输出(如:a furry mammal)。
  • 这个模型参数在RL微调过程中一般保持冻结,不进行反向传播。

(3) 生成调优模型(Tuned Language Model, RL Policy)

  • 复制一份基础模型,作为策略模型( π ϕ \pi_\phi πϕ),在强化学习框架下对其进行微调。
  • 该模型会生成新的答案(如:man’s best friend)。

(4) 奖励模型(Reward Model)

  • 用单独训练好的奖励模型对策略模型生成的答案进行打分,分数越高表示越符合人类偏好。

(5) KL惩罚项(约束项): − λ K L D K L ( π p p o ( y ∣ x ) ∣ ∣ π b a s e ( y ∣ x ) ) -\lambda_{KL}D_{KL}(\pi_{ppo}(y∣x)||\pi_{base}(y∣x)) λKLDKL(πppo(yx)∣∣πbase(yx))

  • 比较RL微调模型的输出分布( π p p o ( y ∣ x ) \pi_{ppo}(y∣x) πppo(yx))和基础模型的输出分布( π b a s e ( y ∣ x ) \pi_{base}(y∣x) πbase(yx)),用KL散度约束两者不能差异太大,防止模式坍缩或偏离原始分布。

(6) 强化学习更新(如PPO):

  • 使用PPO(Proximal Policy Optimization)等强化学习算法,利用上一步得到的奖励信号,更新策略模型参数: ϕ ← ϕ + ∇ ϕ l o s s ( ϕ ) \phi\leftarrow\phi+\nabla_\phi loss(\phi) ϕϕ+ϕloss(ϕ)

2.2 损失函数的理解

RL损失函数本质上是在奖励模型打分、人类偏好约束和通用能力三者间平衡,既要输出优质答案,也不能偏离原有分布太远,还要保持通用能力。

(1) 打分部分

  • E ( x , y ) ∼ D π ϕ [ r θ ( x , y ) ] \mathbb{E}_{(x,y)\sim D_{\pi_{\phi}}}\left[r_\theta(x,y)\right] E(x,y)Dπϕ[rθ(x,y)]:奖励模型( r θ r_\theta rθ)对 RL 模型生成的答案 y y y 给出分数,分数越高越好。

(2) KL 散度部分

  • − β E ( x , y ) ∼ D π ϕ [ log ⁡ ( π ϕ ( y ∣ x ) π b a s e ( y ∣ x ) ) ] -\beta\mathbb{E}_{(x,y)\sim D_{\pi_{\phi}}}\left[\log\left(\frac{\pi_{\phi}(y|x)}{\pi_{base}(y|x)}\right)\right] βE(x,y)Dπϕ[log(πbase(yx)πϕ(yx))]:衡量强化学习微调后的模型分布和原本模型分布的“距离”。防止模式坍缩,即维护模型输出的多样性。

(3) 预训练部分

  • + γ E x ∼ D p r e t r a i n [ log ⁡ ( π ϕ ( x ) ) ] +\gamma\mathbb{E}_{x\sim D_{pretrain}}\left[\log(\pi_{\phi}(x))\right] +γExDpretrain[log(πϕ(x))]:鼓励 RL 模型不要遗忘预训练阶段学到的知识。让 RL 微调后的模型还能保留通用能力,防止“灾难性遗忘”。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐