1. Reinforcement Learning from Human Feedback
Reinforcement Learning from Human Feedback(RLHF)是一种结合了强化学习(Reinforcement Learning, RL)和人类反馈的机器学习方法。这种方法特别适用于那些难以通过传统监督学习方法获得高质量标签数据的情况。它解决了一个核心问题:如何让AI生成的内容不仅仅准确,更要符合人类的期望和价值观。
RLHF建立在强化学习的基础之上,RL是一种让机器学习代理(Agent)通过与环境互动来学习最佳行为的方法。在这个过程中,代理根据其所采取的行动获得奖励或惩罚。
在许多情况下,直接为复杂任务定义一个明确、全面的奖励函数是困难的。这时,RLHF通过引入人类反馈来辅助定义奖励函数或直接作为奖励信号。这种反馈可以是标注好的示例、行为评分或对代理输出的直接校正。
在RLHF中,训练过程通常涉及以下几个步骤:
初始阶段:使用监督学习的方法,根据人类提供的初始数据集训练代理。
在线学习:代理在实际环境中执行任务,同时收集人类反馈。
奖励建模:使用收集到的反馈数据来优化或调整奖励函数。
RLHF是一个三步走的过程:
第一步:监督微调(SFT)
这相当于给AI一些示范,告诉它"这样回答是好的"。工程师们会收集高质量的问答对,让模型通过模仿学习基本的回答方式。
第二步:建立奖励模型(RM)
这一步要训练一个能"评分"的模型。人类标注者会对同一问题的不同回答进行比较和排序,然后用这些数据训练一个能预测"人类会更喜欢哪个回答"的模型。
第三步:强化学习(RL)
最后,利用第二步训练的奖励模型作为指导,对语言模型进行优化。每当模型生成一个回答,奖励模型就会给出评分,模型根据这个信号不断调整自己的策略,逐渐生成更符合人类偏好的内容。
这个过程之所以革命性,在于它解决了传统监督学习的局限。在复杂任务中,"正确答案"往往并不唯一,人类偏好也很难用固定规则表达。
RLHF允许模型从人类反馈中持续学习,捕捉那些难以明确定义但人类能直观感受的品质。 从技术层面看,RLHF面临着一些挑战。比如人类反馈的一致性问题——不同人对同一回答的评价可能截然不同。
2017 年,OpenAI 的研究人员引入了一种名为近端策略优化(PPO)的新算法。早期的强化学习方法往往不稳定且难以调优。PPO 的设计目标是更加可靠和高效,使强化学习能够更实际地应用于复杂问题。
到 2022 年,OpenAI 研究人员在开创性的 InstructGPT 论文中将 PPO 提升到了一个新的水平。这篇论文展示了如何利用 PPO 根据人类偏好对大型语言模型(如 GPT-3)进行微调。InstructGPT 学会了生成人类真正喜欢的文本——这些文本是有帮助且无害的,而不仅仅是预测下一个单词。
如今,这一领域发展迅速!研究人员不断寻找改进 RLHF 的方法,使其更加高效和有效。DeepSeek AI 引入的组相对策略优化(GRPO)。GRPO 在 PPO 的基础上进行了改进,使 RLHF 训练更加精简和快速,尤其是在复杂的推理任务中。2023 年,斯坦福大学的研究人员引入了一种名为 DPO 的新方法。
1.1 强化学习(RL)
奖励:当它保持在车道内、遵守交通规则或到达目的地时,给予“干得好!”的反馈。
惩罚:当它偏离车道或离其他车辆太近时,给予“小心!”的反馈。
一个 AI 代理(比如我们的自动驾驶汽车或 LLM)通过在环境中做出决策来学习,目标是最大化长期奖励。它学习一种策略——一种在不同情境下选择行动的方法。
1.2 对LLM来说
对于生成文本的 LLM,什么是“好”文本?它不仅仅是语法或事实的问题,而是人类的品味、思维的连贯性、推理的正确性、消除输出中不希望出现的偏见等更多内容。这些是主观的!尝试编写一个“好文本”的公式是非常困难的。
因此可以使用偏好学习,与其编写一个奖励公式,我们使用人类的偏好。我们让人们比较两个 LLM 的响应,并询问“你更喜欢哪一个?“
人类裁判,而非公式:人类成为我们的“奖励函数”。
学习人类喜欢的内容:我们训练 LLM 生成人类更可能喜欢的文本。
1.3 奖励模型
在训练过程中,我们不能让人类对每一个 LLM 的响应进行评判——那太慢了。因此,我们训练一个奖励模型——一个学习模仿人类偏好的人工智能裁判。
我们在人类偏好数据上训练它。它学会给人类倾向于喜欢的文本赋予更高的分数。
RL 算法使用奖励模型:像 PPO、DPO 和 GRPO 这样的算法随后使用这个奖励模型来指导 LLM 的学习。LLM 试图生成能够从 AI 裁判那里获得高分的文本。
2 近端优化策略PPO
PPO 是对强化学习中策略梯度方法的改进,可以解决传统的策略梯度方法中存在的高方差、低数据效率、易发散等问题,从而提高了强化学习算法的可靠性和适用性。
谨慎的改进步骤:PPO 就像是教你的 LLM 一步步走路,确保它在每次更新时不会摔倒。它对 LLM 的“走路方式”(策略)进行温和的调整。
PPO 的关键角色:
策略(LLM):我们正在训练的 LLM,用于生成更好的文本。
奖励模型:根据人类偏好对文本打分的 AI 裁判。
价值函数(辅助教练):另一个 AI 模型,充当“辅助教练”。它估计每个状态的“好坏”(当前文本生成的前景如何)。这有助于 PPO 进行更智能的更新。
PPO 训练
生成文本(Rollout):LLM(策略)为不同的提示生成大量文本样本。
获取分数(奖励模型):奖励模型对每个文本样本进行打分(产生打分排序)。
计算优势(GAE —— “好多少”分数):它是一种巧妙的方法,用于计算每个单词选择的优劣,考虑奖励和价值函数的预测。
广义优势估计 Generalized advantage estimation (GAE)是结合了 λ-return方法的优势函数估计,其平衡了强化学习中的方差和偏差,并被广泛应用于强化学习最新算法之中。
蒙特卡洛(MC)—— 高方差,低偏差:想象一下等到整个文本生成后再获得奖励,然后将该奖励分配给文本中的每一个单词。就像只有在小狗完成整个“坐下、待命、取回”动作序列后才给予奖励。对整个序列的奖励是准确的,但对单个动作(“坐下”与“待命”与“取回”)的信号非常嘈杂。高方差,学习速度慢。
时间差分(TD)—— 低方差,高偏差:想象一下在每个单词生成后给予奖励。“好单词!”“普通单词!”“很棒的单词!”信号不那么嘈杂,学习速度更快。但是,我们只是局部地判断单词,没有考虑整个文本的长期质量。可能会有偏差,可能会错过“大局”。
GAE —— 平衡:广义优势估计(GAE)就像“多步 TD”。它考虑了多个步骤(单词)上的奖励,平衡了方差(MC)与偏差(TD)之间的权衡。就像不仅在结束时给予奖励,还在价值函数预测的指导下,为沿途的“小步骤”给予奖励。
优化 LLM(策略更新):我们更新 LLM 的策略,以最大化一个特殊的 PPO 目标函数。这个目标函数现在有三个关键部分:
鼓励更高奖励:它推动 LLM 生成能够获得更高分数的文本。
限制策略变化(剪切代理目标):它防止策略在一次更新中变化过大,确保稳定性。
KL 散度惩罚:如果新策略与旧策略偏离太远,它会增加惩罚,进一步增强稳定性。
熵奖励:它还包括一个熵奖励。简单来说,熵衡量 LLM 文本生成的“随机性”或“多样性”。增加熵奖励可以鼓励 LLM 更多地探索,而不是总是生成相同、可预测的响应。它有助于防止 LLM 过早变得“过于确定”,从而错过可能更好的策略。
更新价值函数(辅助教练更新):训练价值函数成为一个更好的“辅助教练”——更准确地预测不同文本生成的“好坏”。
3 直接偏好优化(DPO)
DPO 是用一种更简单、更高效的方式来进行偏好学习,跳过了 RL 的复杂性。
直截了当:DPO 就像是直接告诉 LLM:“响应 A 比响应 B 更好。多生成像 A 这样的响应,少生成像 B 这样的响应!”它省略了 RL 中用于策略优化的奖励模型这一中间环节。
DPO 避免了 PPO 的迭代 RL 循环。它直接基于人类偏好数据利用一个巧妙的损失函数对 LLM 进行优化。
3.1 DPO 训练流程
偏好数据仍然是关键:与 PPO 一样,DPO 仍然从相同的关键成分开始:人类偏好数据(成对的响应,带有标签,指示哪个响应更受青睐)。人类反馈仍然是基础!
直接策略更新(分类式损失——直接使用 logits!):DPO 使用一个特殊的损失函数直接比较两个模型的 logits(概率之前的原始输出分数):
增加首选响应的 logits(和概率):让当前模型在未来更有可能生成像响应 A 这样的响应。
减少非首选响应的 logits(和概率):让当前模型在未来更不可能生成像响应 B 这样的响应。
保持接近参考模型(隐式 KL 控制):损失函数还隐式地鼓励当前模型在行为上保持与参考模型的接近(使用参考模型的 logits),这有助于稳定性,类似于 PPO 的 KL 惩罚,但直接嵌入在损失函数中!
当前模型(正在训练中):我们将首选响应(响应 A)和非首选响应(响应 B)都输入到我们正在训练的当前 LLM 中,得到两者的 logits。
参考模型(旧版本):我们还将响应 A 和响应 B 输入到一个参考模型中。这通常是 LLM 的旧版本(比如我们开始时的 SFT 模型)。我们也会从参考模型中得到 logits。
DPO 的损失函数直接使用这两个模型的 logits 来计算损失,这与分类任务中使用的二元交叉熵损失非常相似。这个损失函数可以直接根据首选和非首选响应的相对 logits 指导 LLM 的权重,而无需显式预测奖励。
4 组相对策略优化(GRPO)
GRPO保留了 PPO 的核心思想,但去掉了独立的价值函数(辅助教练),降低对价值网络的依赖程度,与此同时确保策略更新的稳定性与高效性。。它不使用辅助教练,而是使用一组由 LLM 生成的相同提示的响应来估计每个响应相对于组内其他响应的“好坏”。
4.1 GRPO 训练流程
生成一组响应:对于每个提示,从 LLM 中生成多个响应的一组。
对组进行打分(奖励模型):获取组内所有响应的奖励分数。
计算组内相对优势(GRAE —— 组内比较):通过比较每个响应的奖励与组内平均奖励来计算优势。在组内对奖励进行归一化以得到优势。
优化策略(使用 GRAE 的 PPO 风格目标函数):GRPO 算法通过组相对的方式来计算优势,这和奖励模型的性质很契合,因为奖励模型通常是基于同一问题的不同输出进行比较的数据集来训练的。GRPO 直接把 KL 散度添加在损失函数上,而不是添加到奖励函数中,降低了优势函数计算的复杂性。
5 总结对比
GRPO:适用于复杂环境下需要高精度优势估计和稳定策略更新的任务,如机器人路径规划、复杂工业流程控制等。在这些场景中,准确的优势估计和稳定的策略更新能帮助智能体更好地应对环境变化,找到最优解决方案。
PPO:广泛应用于各种强化学习场景,尤其在对策略稳定性要求较高,且环境奖励相对明确的任务中表现出色,如游戏 AI、自动驾驶模拟训练等。其简单有效的裁剪机制使其在大多数场景下都能取得不错的效果。
DPO:在需要符合人类偏好的场景中具有独特优势,如内容推荐系统、对话机器人优化等。通过直接利用人类偏好数据,使算法生成的结果更符合用户期望,提升用户体验