网站建设全国排名,网站设计制作有哪些原因,南充楼盘网,wordpress标签生成页面前言
如果你对这篇文章可感兴趣#xff0c;可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」#xff0c;查看完整博客分类与对应链接。
当前的大型语言模型训练大致可以分为如下三个阶段#xff1a;
Pre-train#xff1a;根据大量可获得的文本资料#…前言
如果你对这篇文章可感兴趣可以点击「【访客必读 - 指引页】一文囊括主页内所有高质量博客」查看完整博客分类与对应链接。
当前的大型语言模型训练大致可以分为如下三个阶段
Pre-train根据大量可获得的文本资料采用自监督学习-预测 next token 的方式训练得到预训练模型Instruction Fine-tuning根据大量任务上的指令标记数据采用监督学习的方式微调模型使得模型可以理解人类指令RLHF基于人类的反馈采用强化学习的方式使模型可以产出符合人类偏好的回答。 GPT Pre-train 系列历史
GPT-1 (2018)模型参数量为 117M使用了大约 7000 本书的数据量GPT-2 (2019)模型参数量为 1542M扩大了十倍使用了大约 40GB 的资料GPT-3 (2020)模型参数量为 175B再次扩大一百倍使用了大约 580GB 的资料包含 300B 的 token类似于哈利波特全集的 30 万遍。 下图来自 GPT-3 论文可以看到随模型参数量扩大模型性能逐步提高但仍然没有发生质变模型的使用体验也与当前的 GPT-4 等其它模型相差甚远。GPT-1、2、3 系列均采用自监督学习 (Self-Supervised Learning) 训练得到即使用 predict next token 的方式将句子中的下一个 token 作为 label 进行训练无需人工标注数据。 Instruction Fine-tuning
通过自监督学习出来的模型虽然已展现了一定程度的语言理解能力但其性能依然有较大的提升空间。
因此在后续的 GPT 系列中自监督学习只是模型训练的第一阶段。该阶段作为预训练 (Pre-train)无需人工标注有大量的可训练数据其训练得到的模型将作为后续训练阶段的初始参数。
下述例子来自于开源指令微调数据集要求模型输出的内容尽可能与 Target 一致
Input: 对联要求对仗工整上联桃李争春齐献媚
Output:下联鹏鹄比翼各称雄Input:说话时面带惯常的微笑。翻译成英文
Output:His face with the usual smile.在指令微调的过程中可以发现大模型表现出的一些「举一反三」的能力即在多种语言上做预训练后只要在某一个语言的某一个任务上做微调就可以自动学会其他语言上同样的任务。如下图所示 在 104 种语言上做 Pre-trainEnglish QA 上做 Fine-tune在 Chinese QA 上做 Testing也可以取得 78.8% 的 F1 score。 先前 Fine-tuning 的思路通常是给定一个大型预训练模型然后在各下游任务的数据集上各自训练打造一堆专才且微调的数据集规模通常不大。
不同于上述打造专才的思路Instruct GPT 在大范围的任务集上进行了 Fine-tuning并且在仅依赖 1.3B 模型参数量和上万条标注数据的情况下打败了拥有 175B 参数量的 GPT-3. Self-Instruct
Instruction Fine-tuning 效果非常显著其所需的训练数据通常无需太多但要求是高质量的标注数据。由于标注数据有一定的获取门槛因此有人提出对 ChatGPT 进行逆向工程即 Self-Instruct生成大量标注数据。
具体流程如下
先让 ChatGPT 想大量的任务例如撰写邮件、修改文章、撰写报告摘要等再让 ChatGPT 根据任务产生大量可能的输入最后让 ChatGPT 根据产生的大量输入输出具体的答案组成一组标注数据。 Reinforcement Learning from Human Feedback (RLHF)
RLHF 即根据人类的反馈例如判断某两个回答哪个更好采用强化学习的方式进一步提升模型的性能。
在先前的两个训练阶段模型不断地在判断 next token 的输出是否正确缺乏对整个文本内容全面的考量。在第三阶段RLHF 通过人类反馈的 response 间的优劣关系站在更全局性的视角进一步地对模型进行优化。换句话说前两个阶段更加关注 response 输出的过程而 RLHF 这个阶段则更关注最终的结果即整个 response 的质量。
在 RLHF 的过程中首先需要训练一个 Reward Model其输入为一个 response输出为这个 response 的得分可以根据人类给出的两个 response 之间的排序训练这个奖励模型。
得到 Reward Model 后最直接的用法是让 LLM 对于特定的输入输出多个回答再根据 Reward Model 选择得分最高的回答。
进一步地也可以使用 Reward Model 继续微调 LLM即对于所有的输入让 LLM 输出的得分低的 response 出现的概率更低让 LLM 输出的得分高的 response 出现的概率更高。
Proximal Policy Optimization (PPO)
PPO 就是一种在 Reward Model 基础上进一步优化模型参数的强化学习优化方法。
在强化学习流程中 t t t 时刻环境的状态为 s t s_t st采取动作 a t a_t at 后得到奖励 r t r_t rt环境变成 s t 1 s_{t1} st1。整个学习过程的目的是找到一个最佳策略使得其能够根据环境状态选择最佳的动作。
上述的 r t r_t rt 仅为即时收益为在决策过程中考虑未来多步的收益强化学习中引入了状态价值函数 V t V_t Vt其表示从当前状态开始未来所有时刻所能累积的收益通常表达为 V t r t γ ⋅ V t 1 , V_tr_{t}\gamma \cdot V_{t1}, Vtrtγ⋅Vt1,
其中 γ \gamma γ 作为折扣因子使决策在短期奖励和长期收益间取得平衡并且确保无限时间下累计的奖励和使有限的避免累积奖励发散。
在 LLM 语境下模型会在 t t t 时刻根据上文产出一个 token o t o_t ot对应动作 a t a_t at对应即时奖励 r t r_{t} rt 和未来总收益 V t V_{t} Vt由于 r t r_{t} rt 和 V t V_{t} Vt 都无法直接获取整个 RLHF-PPO 阶段一共包含四个主要模型分别是
Actor Model输出每个时刻的 token即我们想要继续优化的 LLM通常采用指令微调后的模型初始化Critic Model根据 s t s_t st 估计时刻 t t t 的总收益 V t V_{t} VtReward Model即前文根据人类反馈数据训练得到的奖励模型Reference Model参考模型避免语言模型在 RLHF 阶段训歪同样通常采用指令微调后的模型初始化。
不难发现 Reward Model 和 Reference Model 在 PPO 阶段都是参数冻结的因此主要关键在于如何训练 Actor Model 和 Critic Model。
在介绍具体 loss 函数前我们首先探究一下如何表示 r t r_{t} rt由于前文训练得到的 Reward Model 仅能根据最终的 response 输出最终的奖励 r φ ( q , o ≤ T ) r_\varphi(q,o_{\leq T}) rφ(q,o≤T)假设输入为 q q q输出共 T T T 个 token中间过程的奖励 r t r_{t} rt 无法通过 Reward Model 直接得到因此在 deepspeed-chat 的 RLHF 实践中采用 Actor Model 和 Reference Model 输出的差异可以理解为动作分布的差异来表示中间过程的奖励 β \beta β 为超参数 r t { − β ∗ ( log P ( o t ∣ q , o t ) P r e f ( o t ∣ q , o t ) ) , t ≠ T r φ ( q , o ≤ T ) − β ∗ ( log P ( o t ∣ q , o t ) P r e f ( o t ∣ q , o t ) ) , t T r_{t}\left\{\begin{array}{l} -\beta *\left(\log \frac{P\left(o_t \mid q,o_{t}\right)}{P_{r e f}\left(o_t \mid q,o_{t}\right)}\right), \quad t \neq T \\ r_\varphi(q,o_{\leq T})-\beta *\left(\log \frac{P\left(o_t \mid q,o_{t}\right)}{P_{r e f}\left(o_t \mid q,o_{t}\right)}\right), \quad tT \end{array}\right. rt⎩ ⎨ ⎧−β∗(logPref(ot∣q,ot)P(ot∣q,ot)),tTrφ(q,o≤T)−β∗(logPref(ot∣q,ot)P(ot∣q,ot)),tT
即 P ( o t ∣ q , o t ) P(o_t\mid q,o_{t}) P(ot∣q,ot) 越大和参考模型的输出越相似即时奖励 r t r_{t} rt 越大。需要注意的是上述仅是 r t r_{t} rt 的某一种设计。在 PPO 中我们希望最大化如下目标 π θ \pi_{\theta} πθ 为具体的策略代表 Actor 模型参数 τ \tau τ 代表一条轨迹对应一个 response J ( θ ) E τ ∼ π θ [ R ( τ ) ] ∑ τ R ( τ ) P ( τ ∣ π θ ) . \mathcal{J}\left(\theta\right)E_{\tau \sim \pi_\theta}[R(\tau)]\sum_\tau R(\tau) P\left(\tau \mid \pi_\theta\right). J(θ)Eτ∼πθ[R(τ)]τ∑R(τ)P(τ∣πθ).
其相应梯度如下 ∇ J ( θ ) ∑ τ R ( τ ) ∇ P ( τ ∣ π θ ) ∑ τ R ( τ ) P ( τ ∣ π θ ) ∇ P ( τ ∣ π θ ) P ( τ ∣ π θ ) ∑ τ R ( τ ) P ( τ ∣ π θ ) ∇ log ( P ( τ ∣ π θ ) ) E τ ∼ π θ [ R ( τ ) ∇ log ( P ( τ ∣ π θ ) ) ] \begin{aligned} \nabla \mathcal{J}\left(\theta\right) \sum_\tau R(\tau) \nabla P\left(\tau \mid \pi_\theta\right) \\ \sum_\tau R(\tau) P\left(\tau \mid \pi_\theta\right) \frac{\nabla P\left(\tau \mid \pi_\theta\right)}{P\left(\tau \mid \pi_\theta\right)} \\ \sum_\tau R(\tau) P\left(\tau \mid \pi_\theta\right) \nabla \log \left(P\left(\tau \mid \pi_\theta\right)\right) \\ E_{\tau \sim \pi_\theta}\left[R(\tau) \nabla \log \left(P\left(\tau \mid \pi_\theta\right)\right)\right] \end{aligned} ∇J(θ)τ∑R(τ)∇P(τ∣πθ)τ∑R(τ)P(τ∣πθ)P(τ∣πθ)∇P(τ∣πθ)τ∑R(τ)P(τ∣πθ)∇log(P(τ∣πθ))Eτ∼πθ[R(τ)∇log(P(τ∣πθ))]
假设每条轨迹共有 T T T 个节点则 P ( τ ∣ π θ ) ρ 0 ( s 0 ) ∏ t 1 T P ( s t 1 ∣ s t , a t ) π θ ( a t ∣ s t ) P\left(\tau \mid \pi_\theta\right)\rho_0\left(s_0\right) \prod_{t1}^{T} P\left(s_{t1} \mid s_t, a_t\right) \pi_\theta\left(a_t \mid s_t\right) P(τ∣πθ)ρ0(s0)∏t1TP(st1∣st,at)πθ(at∣st)代入 ∇ J ( θ ) \nabla \mathcal{J}\left(\theta\right) ∇J(θ) 得到 ∇ J ( θ ) E τ ∼ π θ [ R ( τ ) ∇ log ( P ( τ ∣ π θ ) ) ] E τ ∼ π θ [ R ( τ ) ∑ t 1 T ∇ log π θ ( a t ∣ s t ) ] \begin{aligned} \nabla \mathcal{J}\left(\theta\right) E_{\tau \sim \pi_\theta}\left[R(\tau) \nabla \log \left(P\left(\tau \mid \pi_\theta\right)\right)\right] \\ E_{\tau \sim \pi_\theta}\left[R(\tau) \sum_{t1}^{T} \nabla \log \pi_\theta\left(a_t \mid s_t\right)\right] \end{aligned} ∇J(θ)Eτ∼πθ[R(τ)∇log(P(τ∣πθ))]Eτ∼πθ[R(τ)t1∑T∇logπθ(at∣st)]
将 R ( τ ) R(\tau) R(τ) 拆分到每一步中可以得到 ∇ J ( θ ) E τ ∼ π θ [ ∑ t 1 T Ψ t ∇ log π θ ( a t ∣ s t ) ] \begin{aligned} \nabla \mathcal{J}\left(\theta\right) E_{\tau \sim \pi_\theta}\left[\sum_{t1}^{T} \Psi_t \nabla \log \pi_\theta\left(a_t \mid s_t\right)\right] \end{aligned} ∇J(θ)Eτ∼πθ[t1∑TΨt∇logπθ(at∣st)]
此处的 Ψ t \Psi_t Ψt 代表了当前的价值度量其最好能同时表示「单步即时奖励」和「未来轨迹的整体收益」在 PPO 中采用广义优势估计 (GAE) 中的优势函数 A t A_t At 表示其定义为 A t ∑ l 0 ∞ ( γ λ ) l δ t l , A_t\sum_{l0}^{\infty}(\gamma \lambda)^l \delta_{tl}, Atl0∑∞(γλ)lδtl,
其中 λ ∈ [ 0 , 1 ] \lambda\in [0,1] λ∈[0,1] δ t \delta_t δt 为 TD error其代表采取行动 a t a_t at 后实际价值与预估价值之间的差距即 δ t r t γ ⋅ V t 1 − V t \delta_tr_t\gamma\cdot V_{t1}-V_t δtrtγ⋅Vt1−Vt即此处的 A t A_t At 表示未来多步 TD error 的加权和其可以表示为如下递归形式 A t δ t γ λ A t 1 . A_t\delta_t\gamma\lambda A_{t1}. AtδtγλAt1.
由于轨迹结束时 A T 0 A_T0 AT0因此 A t A_t At 可在轨迹确定后从后往前递归求解。由此我们可以得到下述大模型语境下PPO 对应优化目标的梯度 ∇ J P P O ( θ ) E [ q ∼ P ( Q ) , o ∼ π θ ( O ∣ q ) ] ∑ t 1 ∣ o ∣ A t ∇ log π θ ( o t ∣ q , o t ) . \nabla \mathcal{J}_{P P O}(\theta)\mathbb{E}\left[q \sim P(Q), o \sim \pi_{\theta}(O \mid q)\right] \sum_{t1}^{|o|}A_t \nabla \log \pi_\theta\left(o_t \mid q, o_{t}\right) . ∇JPPO(θ)E[q∼P(Q),o∼πθ(O∣q)]t1∑∣o∣At∇logπθ(ot∣q,ot).
在实际优化过程中为提高样本利用率 π θ \pi_{\theta} πθ 采样得到的轨迹 o o o 会被重复使用来优化 π θ \pi_\theta πθ即采样轨迹 o o o 的 π θ o l d \pi_{\theta_{old}} πθold 和要优化的 π θ \pi_{\theta} πθ 不一样off-policy因此可以采用 Importance Sampling 的方式修正上述梯度 ∇ J P P O ( θ ) E [ q ∼ P ( Q ) , o ∼ π θ o l d ( O ∣ q ) ] ∑ t 1 ∣ o ∣ π θ ( o t ∣ q , o t ) π θ o l d ( o t ∣ q , o t ) A t ∇ log π θ ( o t ∣ q , o t ) . \nabla \mathcal{J}_{P P O}(\theta)\mathbb{E}\left[q \sim P(Q), o \sim \pi_{\theta_{old}}(O \mid q)\right] \sum_{t1}^{|o|} \frac{\pi_\theta\left(o_t \mid q, o_{t}\right)}{\pi_{\theta_{o l d}}(o_t \mid q, o_{t})} A_t \nabla \log \pi_\theta\left(o_t \mid q, o_{t}\right) . ∇JPPO(θ)E[q∼P(Q),o∼πθold(O∣q)]t1∑∣o∣πθold(ot∣q,ot)πθ(ot∣q,ot)At∇logπθ(ot∣q,ot).
由于 ∇ log f ( θ ) ∇ f ( θ ) f ( θ ) \nabla \log f(\theta)\frac{\nabla f(\theta)}{f(\theta)} ∇logf(θ)f(θ)∇f(θ)上述梯度对应的优化目标如下 J P P O ( θ ) E [ q ∼ P ( Q ) , o ∼ π θ o l d ( O ∣ q ) ] ∑ t 1 ∣ o ∣ π θ ( o t ∣ q , o t ) π θ o l d ( o t ∣ q , o t ) A t . \mathcal{J}_{P P O}(\theta)\mathbb{E}\left[q \sim P(Q), o \sim \pi_{\theta_{old}}(O \mid q)\right] \sum_{t1}^{|o|} \frac{\pi_\theta\left(o_t \mid q, o_{t}\right)}{\pi_{\theta_{o l d}}(o_t \mid q, o_{t})} A_t. JPPO(θ)E[q∼P(Q),o∼πθold(O∣q)]t1∑∣o∣πθold(ot∣q,ot)πθ(ot∣q,ot)At.
为了使整体训练更稳定最终的优化目标会对 π θ ( o t ∣ q , o t ) π θ o l d ( o t ∣ q , o t ) \frac{\pi_\theta\left(o_t \mid q, o_{t}\right)}{\pi_{\theta_{o l d}}(o_t \mid q, o_{t})} πθold(ot∣q,ot)πθ(ot∣q,ot) 进行裁剪避免该值过大或者过小并且由于不同轨迹可能长度差异很大优化目标会对轨迹长度进行归一化最终 PPO 所要最大化的目标如下所示 J P P O ( θ ) E [ q ∼ P ( Q ) , o ∼ π θ o l d ( O ∣ q ) ] 1 ∣ o ∣ ∑ t 1 ∣ o ∣ min [ π θ ( o t ∣ q , o t ) π θ o l d ( o t ∣ q , o t ) A t , clip ( π θ ( o t ∣ q , o t ) π θ o l d ( o t ∣ q , o t ) , 1 − ε , 1 ε ) A t ] . \mathcal{J}_{P P O}(\theta)\mathbb{E}\left[q \sim P(Q), o \sim \pi_{\theta_{o l d}}(O \mid q)\right] \frac{1}{|o|} \sum_{t1}^{|o|} \min \left[\frac{\pi_\theta\left(o_t \mid q, o_{t}\right)}{\pi_{\theta_{o l d}}\left(o_t \mid q, o_{t}\right)} A_t, \operatorname{clip}\left(\frac{\pi_\theta\left(o_t \mid q, o_{t}\right)}{\pi_{\theta_{o l d}}\left(o_t \mid q, o_{t}\right)}, 1-\varepsilon, 1\varepsilon\right) A_t\right]. JPPO(θ)E[q∼P(Q),o∼πθold(O∣q)]∣o∣1t1∑∣o∣min[πθold(ot∣q,ot)πθ(ot∣q,ot)At,clip(πθold(ot∣q,ot)πθ(ot∣q,ot),1−ε,1ε)At].
相对应地Critic 模型的优化目标可以理解为最小化优势 A t A_t At即让 V t V_t Vt 对局面的评估更加精准具体目标可写作如下形式 arg min V ϕ E t [ max [ ( V t − ( A t V t o l d ) ) 2 , ( V t c l i p − ( A t V t o l d ) ) 2 ] ] , \arg \min _{V_\phi} \mathbb{E}_t\left[\max\left[(V_t-(A_tV_t^{old}))^2,(V_t^{clip}-(A_tV_t^{old}))^2\right]\right], argVϕminEt[max[(Vt−(AtVtold))2,(Vtclip−(AtVtold))2]],
其中 V t c l i p clip ( V t , V t o l d − ϵ , V t o l d ϵ ) V_t^{clip}\text{clip}(V_t,V_t^{old}-\epsilon,V_t^{old}\epsilon) Vtclipclip(Vt,Vtold−ϵ,Vtoldϵ).
Direct Preference Optimization (DPO)
在上述 RLHF-PPO 的训练中存在「显存占用大」、「超参多」以及「模型训练不稳定」等一系列问题为简化整体训练过程DPO 应运而生其对 PPO 的改进主要为如下两点如下图所示
不再训练 Reward Model而是直接基于人类反馈的数据一步到位训练最终的模型简化原始训练目标不再使用强化学习的方法而是通过类似于监督微调的方式进行训练。 首先RLHF 阶段整体目标如下 π θ , π ref , r ϕ \pi_{\theta},\pi_{\text{ref}},r_{\phi} πθ,πref,rϕ 分别对应上述的 Actor、参考模型以及 Reward Model
最大化奖励的同时避免训练后得到的 π θ \pi_{\theta} πθ 与参考模型 π ref \pi_{\text{ref}} πref 差异过大. max π θ E x ∼ D , y ∼ π θ ( y ∣ x ) [ r ϕ ( x , y ) ] − β D K L [ π θ ( y ∣ x ) ∥ π r e f ( y ∣ x ) ] . \max _{\pi_\theta} \mathbb{E}_{x \sim \mathcal{D}, y \sim \pi_\theta(y \mid x)}\left[r_\phi(x, y)\right]-\beta \mathbb{D}_{\mathrm{KL}}\left[\pi_\theta(y \mid x) \| \pi_{\mathrm{ref}}(y \mid x)\right]. πθmaxEx∼D,y∼πθ(y∣x)[rϕ(x,y)]−βDKL[πθ(y∣x)∥πref(y∣x)].
为了绕过 Reward Model上述式子可以进行如下推导 max π E x ∼ D , y ∼ π ( y ∣ x ) [ r ( x , y ) ] − β D K L [ π ( y ∣ x ) ∥ π r e f ( y ∣ x ) ] max π E x ∼ D E y ∼ π ( y ∣ x ) [ r ( x , y ) − β log π ( y ∣ x ) π r e f ( y ∣ x ) ] min π E x ∼ D E y ∼ π ( y ∣ x ) [ log π ( y ∣ x ) π r e f ( y ∣ x ) − 1 β r ( x , y ) ] min π E x ∼ D E y ∼ π ( y ∣ x ) [ log π ( y ∣ x ) 1 Z ( x ) π r e f ( y ∣ x ) exp ( 1 β r ( x , y ) ) − log Z ( x ) ] . \begin{aligned} \ \ \ \ \max _\pi \mathbb{E}_{x \sim \mathcal{D}, y \sim \pi(y \mid x)} {[r(x, y)]-\beta \mathbb{D}_{\mathrm{KL}}\left[\pi(y \mid x) \| \pi_{\mathrm{ref}}(y \mid x)\right] } \\ \max _\pi \mathbb{E}_{x \sim \mathcal{D}} \mathbb{E}_{y \sim \pi(y \mid x)}\left[r(x, y)-\beta \log \frac{\pi(y \mid x)}{\pi_{\mathrm{ref}}(y \mid x)}\right] \\ \min _\pi \mathbb{E}_{x \sim \mathcal{D}} \mathbb{E}_{y \sim \pi(y \mid x)}\left[\log \frac{\pi(y \mid x)}{\pi_{\mathrm{ref}}(y \mid x)}-\frac{1}{\beta} r(x, y)\right] \\ \min _\pi \mathbb{E}_{x \sim \mathcal{D}} \mathbb{E}_{y \sim \pi(y \mid x)}\left[\log \frac{\pi(y\mid x)}{\frac{1}{Z(x)} \pi_{\mathrm{ref}}(y \mid x) \exp \left(\frac{1}{\beta} r(x, y)\right)}-\log Z(x)\right]. \end{aligned} πmaxEx∼D,y∼π(y∣x)[r(x,y)]−βDKL[π(y∣x)∥πref(y∣x)]πmaxEx∼DEy∼π(y∣x)[r(x,y)−βlogπref(y∣x)π(y∣x)]πminEx∼DEy∼π(y∣x)[logπref(y∣x)π(y∣x)−β1r(x,y)]πminEx∼DEy∼π(y∣x) logZ(x)1πref(y∣x)exp(β1r(x,y))π(y∣x)−logZ(x) .
令 Z ( x ) ∑ y π r e f ( y ∣ x ) exp ( 1 β r ( x , y ) ) Z(x)\sum_y \pi_{\mathrm{ref}}(y \mid x) \exp \left(\frac{1}{\beta} r(x, y)\right) Z(x)∑yπref(y∣x)exp(β1r(x,y))可以将上述式子中 log \log log 项分母部分转化为一个概率分布整体优化目标可以视作最小化 π ( y ∣ x ) \pi(y\mid x) π(y∣x) 和 1 Z ( x ) π r e f ( y ∣ x ) exp ( 1 β r ( x , y ) ) \frac{1}{Z(x)} \pi_{\mathrm{ref}}(y \mid x) \exp \left(\frac{1}{\beta} r(x, y)\right) Z(x)1πref(y∣x)exp(β1r(x,y)) 之间的 KL 散度。由于 Z ( x ) Z(x) Z(x) 与 π \pi π 无关因此上述式子的最优解 π ∗ \pi^* π∗ 可以表示为 π ∗ ( y ∣ x ) 1 Z ( x ) π ref ( y ∣ x ) exp ( 1 β r ( x , y ) ) . \pi^*(y \mid x)\frac{1}{Z(x)} \pi_{\text {ref }}(y \mid x) \exp \left(\frac{1}{\beta} r(x, y)\right). π∗(y∣x)Z(x)1πref (y∣x)exp(β1r(x,y)).
相对应地奖励模型 r r r 也可以表示为如下形式 r ∗ ( x , y ) β log π ∗ ( y ∣ x ) π r e f ( y ∣ x ) β log Z ( x ) . r^*(x, y)\beta \log \frac{\pi^*(y \mid x)}{\pi_{\mathrm{ref}}(y \mid x)}\beta \log Z(x). r∗(x,y)βlogπref(y∣x)π∗(y∣x)βlogZ(x).
接下来只要我们在奖励模型的训练目标中代入上式即可实现直接对最终策略 π ∗ \pi^* π∗ 的优化。在奖励模型的训练中通常有如下 2 种偏好排序方法
只对两个回答进行排序即对于 prompt x x x回答 y 1 y_1 y1 优于 y 2 y_2 y2对应的优化目标采用 Bradley-Terry 模型进行建模对 K K K 个回答进行排序即对于 prompt x x x排序顺序为 y 1 y 2 . . . y K y_1y_2...y_K y1y2...yK对应的优化目标采用 Plackett-Luce 模型进行建模。
DPO Objective Under the Bradley-Terry Model
在 BT 模型下回答 y 1 y_1 y1 优于 y 2 y_2 y2 的概率建模如下 p ∗ ( y 1 ≻ y 2 ∣ x ) exp ( r ∗ ( x , y 1 ) ) exp ( r ∗ ( x , y 1 ) ) exp ( r ∗ ( x , y 2 ) ) . p^*\left(y_1 \succ y_2 \mid x\right)\frac{\exp \left(r^*\left(x, y_1\right)\right)}{\exp \left(r^*\left(x, y_1\right)\right)\exp \left(r^*\left(x, y_2\right)\right)}. p∗(y1≻y2∣x)exp(r∗(x,y1))exp(r∗(x,y2))exp(r∗(x,y1)).
代入 π ∗ \pi^* π∗可以将上述式子进行如下转换 p ∗ ( y 1 ≻ y 2 ∣ x ) exp ( β log π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) β log Z ( x ) ) exp ( β log π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) β log Z ( x ) ) exp ( β log π ∗ ( y 2 ∣ x ) π ref ( y 2 ∣ x ) β log Z ( x ) ) 1 1 exp ( β log π ∗ ( y 2 ∣ x ) π ref ( y 2 ∣ x ) − β log π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) ) σ ( β log π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) − β log π ∗ ( y 2 ∣ x ) π ref ( y 2 ∣ x ) ) . \begin{aligned} p^*\left(y_1 \succ y_2 \mid x\right) \frac{\exp \left(\beta \log \frac{\pi^*\left(y_1 \mid x\right)}{\pi_{\text {ref }}\left(y_1 \mid x\right)}\beta \log Z(x)\right)}{\exp \left(\beta \log \frac{\pi^*\left(y_1 \mid x\right)}{\pi_{\text {ref }}\left(y_1 \mid x\right)}\beta \log Z(x)\right)\exp \left(\beta \log \frac{\pi^*\left(y_2 \mid x\right)}{\pi_{\text {ref }}\left(y_2 \mid x\right)}\beta \log Z(x)\right)} \\ \frac{1}{1\exp \left(\beta \log \frac{\pi^*\left(y_2 \mid x\right)}{\pi_{\text {ref }}\left(y_2 \mid x\right)}-\beta \log \frac{\pi^*\left(y_1 \mid x\right)}{\pi_{\text {ref }}\left(y_1 \mid x\right)}\right)} \\ \sigma\left(\beta \log \frac{\pi^*\left(y_1 \mid x\right)}{\pi_{\text {ref }}\left(y_1 \mid x\right)}-\beta \log \frac{\pi^*\left(y_2 \mid x\right)}{\pi_{\text {ref }}\left(y_2 \mid x\right)}\right) . \end{aligned} p∗(y1≻y2∣x)exp(βlogπref (y1∣x)π∗(y1∣x)βlogZ(x))exp(βlogπref (y2∣x)π∗(y2∣x)βlogZ(x))exp(βlogπref (y1∣x)π∗(y1∣x)βlogZ(x))1exp(βlogπref (y2∣x)π∗(y2∣x)−βlogπref (y1∣x)π∗(y1∣x))1σ(βlogπref (y1∣x)π∗(y1∣x)−βlogπref (y2∣x)π∗(y2∣x)).
由于我们希望 y w y_w yw (更符合人类偏好的回答) 的概率尽可能大于 y l y_l yl (未被选中的回答)因此整体优化目标可以写作如下形式 L D P O ( π θ ; π r e f ) − E ( x , y w , y l ) ∼ D [ log p ( y w ≻ y l ∣ x ) ] − E ( x , y w , y l ) ∼ D [ log σ ( β log π θ ( y w ∣ x ) π r e f ( y w ∣ x ) − β log π θ ( y l ∣ x ) π r e f ( y l ∣ x ) ) ] . \begin{aligned} \mathcal{L}_{\mathrm{DPO}}\left(\pi_\theta ; \pi_{\mathrm{ref}}\right) -\mathbb{E}_{\left(x, y_w, y_l\right) \sim \mathcal{D}}[\log p(y_w \succ y_l \mid x)]\\ - \mathbb{E}_{\left(x, y_w, y_l\right) \sim \mathcal{D}}\left[\log \sigma\left(\beta \log \frac{\pi_\theta\left(y_w \mid x\right)}{\pi_{\mathrm{ref}}\left(y_w \mid x\right)}-\beta \log \frac{\pi_\theta\left(y_l \mid x\right)}{\pi_{\mathrm{ref}}\left(y_l \mid x\right)}\right)\right]. \end{aligned} LDPO(πθ;πref)−E(x,yw,yl)∼D[logp(yw≻yl∣x)]−E(x,yw,yl)∼D[logσ(βlogπref(yw∣x)πθ(yw∣x)−βlogπref(yl∣x)πθ(yl∣x))].
上述优化目标中不包含 Reward Model由此可以绕过训练 Reward Model 的环节直接用成对的偏好数据采用类似 SFT 的方式训练对齐模型。
DPO Objective Under the Plackett-Luce Model
类似地在 PL 模型下偏好排序 τ \tau τ y 1 y 2 . . . y K y_1y_2...y_K y1y2...yK的概率建模如下 p ∗ ( τ ∣ y 1 , … , y K , x ) ∏ k 1 K exp ( r ∗ ( x , y τ ( k ) ) ) ∑ j k K exp ( r ∗ ( x , y τ ( j ) ) ) . p^*\left(\tau \mid y_1, \ldots, y_K, x\right)\prod_{k1}^K \frac{\exp \left(r^*\left(x, y_{\tau(k)}\right)\right)}{\sum_{jk}^K \exp \left(r^*\left(x, y_{\tau(j)}\right)\right)}. p∗(τ∣y1,…,yK,x)k1∏K∑jkKexp(r∗(x,yτ(j)))exp(r∗(x,yτ(k))).
代入 π ∗ \pi^* π∗可以得到如下优化目标由于 Z ( x ) Z(x) Z(x) 与 π θ \pi_{\theta} πθ 无关因此下式中省去了 Z ( x ) Z(x) Z(x) L D P O ( π θ ; π r e f ) − E τ , y 1 , … , y K , x ∼ D [ log p ( τ ∣ y 1 , … , y K , x ) ] − E τ , y 1 , … , y K , x ∼ D [ log ∏ k 1 K exp ( β log π θ ( y τ ( k ) ∣ x ) π r e f ( y τ ( k ) ∣ x ) ) ∑ j k K exp ( β log π θ ( y τ ( j ) ∣ x ) π r e f ( y τ ( j ) ∣ x ) ) ] . \begin{aligned} \mathcal{L}_{\mathrm{DPO}}\left(\pi_\theta ; \pi_{\mathrm{ref}}\right) -\mathbb{E}_{\tau, y_1, \ldots, y_K, x \sim \mathcal{D}}[\log p(\tau \mid y_1, \ldots, y_K, x)]\\ -\mathbb{E}_{\tau, y_1, \ldots, y_K, x \sim \mathcal{D}}\left[\log \prod_{k1}^K \frac{\exp \left(\beta \log \frac{\pi_\theta\left(y_{\tau(k)} \mid x\right)}{\pi_{\mathrm{ref}}\left(y_{\tau(k)} \mid x\right)}\right)}{\sum_{jk}^K \exp \left(\beta \log \frac{\pi_\theta\left(y_{\tau(j)} \mid x\right)}{\pi_{\mathrm{ref}}\left(y_{\tau(j)} \mid x\right)}\right)}\right]. \end{aligned} LDPO(πθ;πref)−Eτ,y1,…,yK,x∼D[logp(τ∣y1,…,yK,x)]−Eτ,y1,…,yK,x∼D logk1∏K∑jkKexp(βlogπref(yτ(j)∣x)πθ(yτ(j)∣x))exp(βlogπref(yτ(k)∣x)πθ(yτ(k)∣x)) .
Group Relative Policy Optimization (GRPO)
GRPO 是在 PPO 上的进一步变化其省略了 PPO 过程中对 Critic Model (Value Model) 的建模并且不再对中间过程的 reward 进行建模而是直接优化整个回答的 reward其 Policy Model 最大化的目标函数如下 J G R P O ( θ ) E [ q ∼ P ( Q ) , { o i } i 1 G ∼ π θ o l d ( O ∣ q ) ] 1 G ∑ i 1 G 1 ∣ o i ∣ ∑ t 1 ∣ o i ∣ { min [ π θ ( o i , t ∣ q , o i , t ) π θ o l d ( o i , t ∣ q , o i , t ) A ^ i , t , clip ( π θ ( o i , t ∣ q , o i , t ) π θ o l d ( o i , t ∣ q , o i , t ) , 1 − ε , 1 ε ) A ^ i , t ] − β D K L [ π θ ∣ ∣ π r e f ] } . \begin{aligned} \mathcal{J}_{G R P O}(\theta) \mathbb{E}\left[q \sim P(Q),\left\{o_i\right\}_{i1}^G \sim \pi_{\theta_{o l d}}(O \mid q)\right] \\ \frac{1}{G} \sum_{i1}^G \frac{1}{\left|o_i\right|} \sum_{t1}^{\left|o_i\right|}\left\{\min \left[\frac{\pi_\theta\left(o_{i, t} \mid q, o_{i,t}\right)}{\pi_{\theta_{o l d}}\left(o_{i, t} \mid q, o_{i,t}\right)} \hat{A}_{i, t}, \operatorname{clip}\left(\frac{\pi_\theta\left(o_{i, t} \mid q, o_{i,t}\right)}{\pi_{\theta_{o l d}}\left(o_{i, t} \mid q, o_{i,t}\right)}, 1-\varepsilon, 1\varepsilon\right) \hat{A}_{i, t}\right]-\beta \mathbb{D}_{K L}\left[\pi_\theta| | \pi_{r e f}\right]\right\}. \end{aligned} JGRPO(θ)E[q∼P(Q),{oi}i1G∼πθold(O∣q)]G1i1∑G∣oi∣1t1∑∣oi∣{min[πθold(oi,t∣q,oi,t)πθ(oi,t∣q,oi,t)A^i,t,clip(πθold(oi,t∣q,oi,t)πθ(oi,t∣q,oi,t),1−ε,1ε)A^i,t]−βDKL[πθ∣∣πref]}.
不同于 PPO 的优化目标GRPO 一次性采样一组输出 { o i } i 1 G \{o_i\}_{i1}^G {oi}i1G其对应的整体 reward 为 r { r i } i 1 G \boldsymbol{r}\{r_i\}_{i1}^G r{ri}i1G由 Reward Model 得到随后 A ^ i , t \hat{A}_{i,t} A^i,t 被定义为 o i o_i oi 所对应的标准化后的 reward即 A ^ i , t r ^ i r i − mean ( r ) std ( r ) . \hat{A}_{i,t}\hat{r}_i\frac{r_i-\text{mean}(\boldsymbol{r})}{\text{std}(\boldsymbol{r})}. A^i,tr^istd(r)ri−mean(r).
在复杂数学任务场景下每个 reasoning step 也有其对应的 reward即 R { { r 1 index ( 1 ) , ⋯ , r 1 index ( K 1 ) } , ⋯ , { r G index ( 1 ) , ⋯ , r G index ( K G ) } } , \mathbf{R}\left\{\left\{r_1^{\text {index }(1)}, \cdots, r_1^{\operatorname{index}\left(K_1\right)}\right\}, \cdots,\left\{r_G^{\operatorname{index}(1)}, \cdots, r_G^{\operatorname{index}\left(K_G\right)}\right\}\right\}, R{{r1index (1),⋯,r1index(K1)},⋯,{rGindex(1),⋯,rGindex(KG)}},
其中 index ( j ) \text{index}(j) index(j) 为第 j j j 步推理结束时的 token index此时的 A ^ i , t \hat{A}_{i,t} A^i,t 可以进行如下定义 A ^ i , t ∑ index ( j ) ≥ t r ^ i index ( j ) , r ^ i index ( j ) r i index ( j ) − mean ( R ) std ( R ) . \hat{A}_{i, t}\sum_{\text {index }(j) \geq t} \hat{r}_i^{\text {index }(j)}, \hat{r}_i^{\text {index }(j)}\frac{r_i^{\text {index }(j)}-\operatorname{mean}(\mathbf{R})}{\operatorname{std}(\mathbf{R})}. A^i,tindex (j)≥t∑r^iindex (j),r^iindex (j)std(R)riindex (j)−mean(R).
另外由于上述 reward 定义中不再包含与 π r e f \pi_{ref} πref 的 KL 散度约束因此直接将 D K L [ π θ ∣ ∣ π r e f ] \mathbb{D}_{K L}\left[\pi_\theta| | \pi_{r e f}\right] DKL[πθ∣∣πref] 显式建模在了 J G R P O ( θ ) \mathcal{J}_{G R P O}(\theta) JGRPO(θ) 之中其具体式子如下 D K L [ π θ ∣ ∣ π r e f ] π r e f ( o i , t ∣ q , o i , t ) π θ ( o i , t ∣ q , o i , t ) − log π r e f ( o i , t ∣ q , o i , t ) π θ ( o i , t ∣ q , o i , t ) − 1 , \mathbb{D}_{K L}\left[\pi_\theta| | \pi_{r e f}\right]\frac{\pi_{r e f}\left(o_{i, t} \mid q, o_{i,t}\right)}{\pi_\theta\left(o_{i, t} \mid q, o_{i,t}\right)}-\log \frac{\pi_{r e f}\left(o_{i, t} \mid q, o_{i,t}\right)}{\pi_\theta\left(o_{i, t} \mid q, o_{i,t}\right)}-1, DKL[πθ∣∣πref]πθ(oi,t∣q,oi,t)πref(oi,t∣q,oi,t)−logπθ(oi,t∣q,oi,t)πref(oi,t∣q,oi,t)−1,
上述式子为对 D K L [ π θ ∣ ∣ π r e f ] \mathbb{D}_{K L}\left[\pi_\theta| | \pi_{r e f}\right] DKL[πθ∣∣πref] 的无偏估计即期望相同。整体优化算法的伪代码如下所示 GRPO 与 PPO 的方法对比图如下可以看到 GRPO 中不再需要训练 Value Model Other Discussion
除了 RLHF也可以使用 RLAIF即让 LLM 自己来判断哪个回答更好根据 LLM 判断的结果再来微调具体的模型判断回答好的 LLM 既可以使用类似 GPT-4 等已有模型甚至也可以使用正在训练的这个模型。
此外RLHF 仍然面临一个困难即 “好” 这件事并没有一个固定的标准例如对于一个不太安全的问题一个回答更考虑 Safety而另一个回答与问题关系更密切此时应该选择哪一个答案呢另外许多回答即使人类来判断也难以辨别哪个更好此时 RLHF 又该如何继续提升呢 参考资料
Hung-yi Lee: 生成式 AI 导论 2024 - 第 6 讲Hung-yi Lee: 生成式 AI 导论 2024 - 第 7 讲Hung-yi Lee: 生成式 AI 导论 2024 - 第 8 讲arXiv20 GPT3 - Language Models are Few-Shot LearnersarXiv22 Instruct GPT - Training language models to follow instructions with human feedbackarXiv22 Self-Instruct: Aligning Language Models with Self-Generated InstructionsarXiv23 DPO: Direct Preference Optimization: Your Language Model is Secretly a Reward ModelarXiv24 Self-Rewarding Language ModelsarXiv24 GRPO: DeepSeekMath - Pushing the Limits of Mathematical Reasoning in Open Language Models知乎 - PPO 原理与源码解读 / RL-PPO理论知识 / DPO 数学原理 / 如何理解 PPO 和 GRPO 文章转载自: http://www.morning.qcfgd.cn.gov.cn.qcfgd.cn http://www.morning.ygrdb.cn.gov.cn.ygrdb.cn http://www.morning.lqffg.cn.gov.cn.lqffg.cn http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn http://www.morning.mzbyl.cn.gov.cn.mzbyl.cn http://www.morning.rhqn.cn.gov.cn.rhqn.cn http://www.morning.ssrjt.cn.gov.cn.ssrjt.cn http://www.morning.fqyxb.cn.gov.cn.fqyxb.cn http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn http://www.morning.ktmnq.cn.gov.cn.ktmnq.cn http://www.morning.csgwd.cn.gov.cn.csgwd.cn http://www.morning.ykwqz.cn.gov.cn.ykwqz.cn http://www.morning.xkzr.cn.gov.cn.xkzr.cn http://www.morning.lbxhy.cn.gov.cn.lbxhy.cn http://www.morning.prls.cn.gov.cn.prls.cn http://www.morning.lbbrw.cn.gov.cn.lbbrw.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.yrfxb.cn.gov.cn.yrfxb.cn http://www.morning.fllx.cn.gov.cn.fllx.cn http://www.morning.tmbfz.cn.gov.cn.tmbfz.cn http://www.morning.lpmdy.cn.gov.cn.lpmdy.cn http://www.morning.glbnc.cn.gov.cn.glbnc.cn http://www.morning.pwfwk.cn.gov.cn.pwfwk.cn http://www.morning.wnjrf.cn.gov.cn.wnjrf.cn http://www.morning.fywqr.cn.gov.cn.fywqr.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.ntwfr.cn.gov.cn.ntwfr.cn http://www.morning.bqwrn.cn.gov.cn.bqwrn.cn http://www.morning.mhmdx.cn.gov.cn.mhmdx.cn http://www.morning.pwxkn.cn.gov.cn.pwxkn.cn http://www.morning.27asw.cn.gov.cn.27asw.cn http://www.morning.dyght.cn.gov.cn.dyght.cn http://www.morning.qhmhz.cn.gov.cn.qhmhz.cn http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn http://www.morning.zpzys.cn.gov.cn.zpzys.cn http://www.morning.ywpcs.cn.gov.cn.ywpcs.cn http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn http://www.morning.fprll.cn.gov.cn.fprll.cn http://www.morning.dtmjn.cn.gov.cn.dtmjn.cn http://www.morning.jjwt.cn.gov.cn.jjwt.cn http://www.morning.phcqk.cn.gov.cn.phcqk.cn http://www.morning.gywxq.cn.gov.cn.gywxq.cn http://www.morning.hsxkq.cn.gov.cn.hsxkq.cn http://www.morning.rscrj.cn.gov.cn.rscrj.cn http://www.morning.xtyyg.cn.gov.cn.xtyyg.cn http://www.morning.kpbq.cn.gov.cn.kpbq.cn http://www.morning.smhtg.cn.gov.cn.smhtg.cn http://www.morning.myhpj.cn.gov.cn.myhpj.cn http://www.morning.ykgp.cn.gov.cn.ykgp.cn http://www.morning.yhwyh.cn.gov.cn.yhwyh.cn http://www.morning.qgfkn.cn.gov.cn.qgfkn.cn http://www.morning.rkfxc.cn.gov.cn.rkfxc.cn http://www.morning.kfldw.cn.gov.cn.kfldw.cn http://www.morning.gfjgq.cn.gov.cn.gfjgq.cn http://www.morning.bqdgr.cn.gov.cn.bqdgr.cn http://www.morning.bfbl.cn.gov.cn.bfbl.cn http://www.morning.dgsr.cn.gov.cn.dgsr.cn http://www.morning.jfxth.cn.gov.cn.jfxth.cn http://www.morning.smzr.cn.gov.cn.smzr.cn http://www.morning.yrngx.cn.gov.cn.yrngx.cn http://www.morning.nyqm.cn.gov.cn.nyqm.cn http://www.morning.mlwpr.cn.gov.cn.mlwpr.cn http://www.morning.yrccw.cn.gov.cn.yrccw.cn http://www.morning.ghslr.cn.gov.cn.ghslr.cn http://www.morning.tcxzn.cn.gov.cn.tcxzn.cn http://www.morning.fllfc.cn.gov.cn.fllfc.cn http://www.morning.fjzlh.cn.gov.cn.fjzlh.cn http://www.morning.qgjp.cn.gov.cn.qgjp.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.wrtsm.cn.gov.cn.wrtsm.cn http://www.morning.zzfqn.cn.gov.cn.zzfqn.cn http://www.morning.cwrnr.cn.gov.cn.cwrnr.cn http://www.morning.jcxgr.cn.gov.cn.jcxgr.cn http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn http://www.morning.feites.com.gov.cn.feites.com http://www.morning.kndt.cn.gov.cn.kndt.cn http://www.morning.bkkgt.cn.gov.cn.bkkgt.cn http://www.morning.tknqr.cn.gov.cn.tknqr.cn http://www.morning.gcspr.cn.gov.cn.gcspr.cn http://www.morning.chehb.com.gov.cn.chehb.com