Alignment PPO 是指在强化学习领域中,将 PPO(Proximal Policy Optimization)算法应用于大语言模型(LLM)的对齐问题。这里的“对齐”指的是使机器学习模型的行为与人类的价值观和偏好保持一致。以下是关于 Alignment PPO 的一些关键点:
-
PPO 算法简介:
PPO 是一种策略梯度方法,旨在通过限制新策略和旧策略之间的差异来稳定训练过程。它通过引入一个称为“近端策略优化”的技巧来避免过大的策略更新,从而减少了训练过程中的不稳定性和样本复杂性。
-
PPO 算法原理:
PPO 的核心思想是在每次更新时限制新策略和旧策略之间的差异。这通常通过引入一个比率
r(θ)
来实现,该比率是新策略和旧策略在给定状态下采取某个动作的概率之比。PPO 通过两种方式来限制这个比率:Clipping 和 Surrogate Loss。 -
PPO 在对齐中的应用:
在大语言模型的对齐中,PPO 可以被用来训练模型,使其生成的文本与人类的偏好一致。通过强化学习,模型可以通过与环境的交互学习到哪些行为是可取的,哪些是不可取的,从而调整其行为以更好地符合人类的价值观。
-
PPO 算法的挑战:
尽管 PPO 在对齐大语言模型方面有潜力,但它也有一些挑战,比如训练不太稳定和效率低。此外,PPO 算法的性能高度依赖于学习率、KL散度阈值、批量大小、更新步数等超参数的选择。
-
PPO 与其他对齐技术:
除了 PPO,还有其他技术如 DPO(Direct Preference Optimization)被用于大模型的对齐。DPO 直接构造偏好数据集对齐原来的模型,与 PPO 的主要区别在于它不需要单独训练一个奖励模型。
-
PPO 的改进和优化:
为了提升 PPO 算法在对齐任务中的效果,研究者们提出了一些关键点,包括使用大的批大小、优势归一化以及对 reference model 使用指数移动平均进行更新。
综上所述,Alignment PPO 是将 PPO 算法应用于大语言模型对齐的一种方法,它通过强化学习框架来调整模型行为,使其与人类的偏好和价值观保持一致。尽管存在一些挑战,但 PPO 在这一领域的应用前景广阔。
近端策略优化算法(Proximal Policy Optimization,PPO)由Schulman等人在2017年提出,是一种在大语言模型(LLMs)的强化学习微调阶段广泛应用的演员-评论家(actor-critic)强化学习算法(Ouyang等人,2022)。它通过最大化以下代理目标来优化大语言模型:
-
符号含义
- $\pi_{\theta}$:当前策略模型,用于生成在给定状态(这里指问题$q$和之前的输出$o_{<t}$)下采取的行动(即输出$o_{t}$)的概率分布。随着训练进行,模型不断更新$\theta$参数,以改进策略。
- $\pi_{\theta_{old}}$:旧策略模型,它是在当前策略模型更新之前的版本。在训练过程中,通过与旧策略模型对比,能控制策略更新的幅度,避免更新过快导致模型性能不稳定。
- $q$:从问题数据集中采样得到的问题。在大语言模型的应用场景中,$q$可以是用户提出的各种问题,如数学问题、文本生成任务描述等。
- $o$:根据旧策略模型$\pi_{\theta_{old}}$对问题$q$生成的输出。$o_{t}$表示输出序列中的第$t$个元素,$o_{<t}$表示在$t$时刻之前的输出序列。
- $\varepsilon$:剪裁超参数,用于稳定训练过程。它限制了策略更新的步长,防止策略变化过大。当$\frac{\pi_{\theta}\left(o_{t} | q, o_{<t}\right)}{\pi_{\theta_{old }}\left(o_{t} | q, o_{<t}\right)}$的值超出$[1 - \varepsilon, 1 + \varepsilon]$范围时,就会对其进行剪裁,确保策略更新在合理范围内。
- $A_{t}$:优势值,通过广义优势估计(Generalized Advantage Estimation,GAE)计算得到(Schulman等人,2015)。优势值用于衡量采取某个行动相对于平均行动的优势程度,它综合考虑了当前奖励和未来奖励的期望。如果$A_{t}>0$,说明当前行动比平均水平好,模型会倾向于增加该行动的概率;反之,如果$A_{t}<0$,则会降低该行动的概率。
-
计算过程
-
首先,从问题数据集$P(Q)$中采样问题$q$,并根据旧策略模型$\pi_{\theta_{old}}(O | q)$生成相应的输出$o$。
- 对于输出序列中的每个元素$o_{t}$,计算$\frac{\pi_{\theta}\left(o_{t} | q, o_{<t}\right)}{\pi_{\theta_{old }}\left(o_{t} | q, o_{<t}\right)} A_{t}$和$\text{clip}\left(\frac{\pi_{\theta}\left(o_{t} | q, o_{<t}\right)}{\pi_{\theta_{old }}\left(o_{t} | q, o_{<t}\right)}, 1 - \varepsilon, 1 + \varepsilon\right) A_{t}$。
- 取这两个值中的较小值,再对整个输出序列$o$的所有$t$时刻的这些最小值进行平均,得到目标函数$\mathcal{J}{PPO}(\theta)$的值。模型训练的目标就是最大化这个目标函数,通过不断调整当前策略模型$\pi$的参数$\theta$,使得生成的输出在给定问题下能获得更高的累积奖励 。