大模型(LLMs)强化学习

1. LLM经典预训练管道

训练步骤一般包括:预训练、有监督微调和对齐。

1. 在预训练阶段,模型会从大量无标注文本数据集中学习通用知识;

2. 使用「有监督微调」(SFT)优化模型以更好地遵守特定指令;
3. 使用对齐技术使LLM可以更有用且更安全地响应用户提示。

对齐是将语言模型与人类的偏好、价值观进行对齐,也是RLHF机制发挥色地方。

2 简单介绍一下 RLHF 流程?

1. 在预训练好的模型上进行「有监督微调」(SFT);

先收集一个Prompts集合,并要求标注人员写出高质量的回复,然后使用该数据集以监督的方式微调预训练的基础模型。
2. 在有监督微调模型基础上创建一个reward model(RM)模型;

对于每个Prompt,要求有监督微调后的LLM生成四到九个回复,再由标注人员根据个人偏好对所有回复进行排序。虽然排序过程很耗时,但工作量还是比第一步的有监督数据集构建要少一些。在处理排序数据时,使用了一个奖励模型RM,RM来自RLHF第一步的「有监督微调语言模型」 (SFT),SFT的输出通过一个回归层(单个输出节点)转换为奖励分数,即可称为RM模型。

3. 基于RM模型使用proximal policy optimization(PPO)算法微调SFT模型;

为了避免奖励攻击(更新后的信息和初始模型信息差距大,虽然也是无害的但也没用)增加了KL散度。可以使用PEFT优化结构。

2.1 InstructGPT的原理,讲讲RLHF和Reward?

instructGPT是一种基于强化学习的文本生成模型,其核心原理涉及两个概念:RLHF(Reinforcement

Learning from Human Feedback)和reward shaping(奖励塑造)。

  • RLHF:在训练instructGPT时,首先使用有人类生成的示例对模型进行预训练。然后,通过与人类 评估者进行交互,收集评估结果,以创建一个用于强化学习的数据集。该数据集包含了人类评估者 对生成结果的评分或反馈,用于指导模型的强化学习训练。
  • Reward shaping:为了更好地引导模型的训练,reward shaping用于调整模型的奖励信号。通过 将人类评估者的反馈与模型生成的文本进行比较,可以计算出一个差异度量,用作奖励信号的一部 分。这样,模型可以根据这个奖励信号进行训练,并进行强化学习的训练。模型根据当前的状态 (对话历史)生成文本,并通过奖励信号来评估生成文本的质量。模型的目标是最大化预期累积奖 励,从而生成更高质量的文本。

3 LLaMA 的RLHF

Llama-2-chat在第一步RLHF微调上使用相同的指令数据,但在第二步使用了两个奖励模型;通过多个阶 段的不断进化,奖励模型也会根据Llama-2-chat模型出现的错误进行更新;并且增加了拒绝采样 (rejection sampling)步骤。

3.1 LLaMA 2 中 Margin Loss 的 实现逻辑?

  • 标准InstructGPT 中 RLHF PPO方法 思路:对同一个提示下的4-9个模型输出并进行排序。
  • Llama 2 的 Margin Loss:每次只能看到两个(而非4-9个)回复并进行对比,但新增了一个边际 (margin)标签,对比结果可以为「显著更好」(significantly better)和「好的不明显」 (negligibly better)

在排序训练时中,Llama 2相比InstructGPT增加了边际损失:

其中,rθ(x,y)是提示x和生成的回复y的标量分数输出; θ为模型权重; σ是将层输出转换为范围 从0到1的分数的逻辑S形函数; yc是由标注人员选择的更优回复; yr是较差的回复。m(r)可以调节两 个回复之间的差值,如果对比结果为「显著更好」,则会增加梯度值,加快更新速度。

3.2  LLaMA 2 中 两个RM模型的实现逻辑?

Llama 2中的两个奖励模型: 侧重「有用性」(helpfulness) 「安全性」(safety)

用于模型优化的最终奖励函数会将两个分数进行线性组合。

3.3 LLaMA 2 中 拒绝采样 逻辑?

Llama 2 使用了一个训练流水线,同时使用PPO和拒绝采样算法,迭代地产生多个RLHF模型(从RLHF- V1到RLHF-V5),模型在拒绝采样时会得到K个输出,并使用最高奖励的输出更新梯度,而PPO每次只 基于单样本进行更新。在监督微调的初始阶段之后,模型只使用拒绝采样进行训练,然后再结合拒绝采样和PPO。

4. RLHF 实践篇 

4.1 RLHF 训练过程,怎么选取最优 checkpoint?

  • 动机

RLHF 训练过程,因为 Reward Model 输出的只是一个近似奖励(Proxy Reward), 导致不能完全相信训练过程中的 Reward 变化,“更高” 的 Reward 不一定意味着 “更好” 的效果。 可以看这一张图片。

横轴为训练模型 & 初始模型之间的KL,纵轴为 reward 分数;虚线是近似 reward(RM 打出 的分数),实线是真实的 reward(大多数情况下无法直接获得)

从上图可以看到:随着「训练模型」和「初始模型」之间的 KL(可简单理解为差异)越大,模型的「真 实分数」会先逐步提升,到达某个峰值后逐渐减小(图中实线),但「近似分数」(由 Reward Model 打出来的分数)却一直在稳步上升(图中虚线),显然,在「真实分数」曲线的「最高点」就是我们所 期望得到「最优模型」的时间点。

但,现在的问题是:根本无法获得「真实分数」,我们该如何找到这个「最高点」呢?

  • 真实 Reward 的估算公式

我们假定:真实 reward 曲线与「当前模型和初始模型」之间的 KL 存在某种关系。
由于 KL 是一个可以被实时计算的数值,如果我们能够找出这种存在的「关系」,那我们就能找出真实reward 的最高点对应的 KL 值是多少,从而找出最优模型。 OpenAI 帮我们找到了这个计算公式:

 

不同训练方法对应的公式稍有不同。

其中,BON(best of n)也叫 reject sampling,RL 使用 PPO,我们发现不同的训练方式对应的 公式也稍有不同。

BON 指先让模型生成一堆 response,再利用 RM 从中挑出最好的几个回复用于后续模型训练。 公式里最关键的就是 3 个参数:α 、β 和 d。d 被定义为初始模型和当前模型的 KL 开根号,这个比较好算;剩下的就是 α 和 β 该等于多少。论文中表明:α 和 β 这 2 个值跟「Reward Model 大小」和「Reward Model 训练数据规模」等因素有关。

  • α 和 β 的值

控制变量法,为了探究 RM 的大小和 α、β之间的关系,实验中固定了 actor 模型的大小(1.2B)、训练 RM 所用的数据集大小(9w条), 下图是使用 BON 作为训练方法,不同 RM 大小的实验结果:

不同 RM 规模对应的 α 和 β 的值
根据图中给的点,挑选 1e7、1e8 和 1e9 这 3 个规模对应的 α 和 β 值,

将上述参数代入 R_bon(d) 公式,并尝试绘制 reward 曲线图,结果如下:

3 种 RM 规模在 0 到 3.5 KL 区间内对应的真实 reward 曲线图

曲线图的走势和论文中大致相同,证明该公式有效。 从图中我们大致可以得出以下几个结论:

  1. 相同训练数据下,Reward Model 越大 actor 模型能够获得更高的真实 reward。
  2. Reward Mode 越大,能够支持模型在「不偏离真实奖励的路途上走更远」,即在更大的 KL 处发生下降转折。

当然,论文中的数据存在一定的局限性,不一定在所有的任务、所有的规模下都适用,

不过这种研究 scaling law 的思路,以及提出用 KL 来作为一种可能衡量「学习程度」的指标是非常有意义的。

除了上述这 2 个 R 和 KL 之间的计算公式外,论文中还提了一些其他有借鉴意义的经验性结论。

  • Reward Model 训练数据集的 Scaling Law

为了探究 RM Dataset 的规模对最终模型的影响,实验中固定在 12M 的 RM 下进行实验,结果如下:

从上图中可以看到,RM 数据集越大对最终的提升就越大(这很直觉),但数据集最少也需要超过 2000。

因为如果训练数据量低于 2k,无论 RM 在哪个规模、无论使用 BON 还是 RL,对模型最终的提升都非常 小。

当然,论文中 2k 这个数字只是在 3M~3B 大小的模型下得出的结论, 至于更大的模型大小是否还符合 2k 这个下限我们就不得而知。

1. Policy Model 的 Scaling Law

探究完了 RM 的 Scaling Law,论文中还对 Policy Model 的大小做了对比实验。 文中选用 1.2B 和 6B 这 2 个大小的模型进行对比,固定 RM 大小为 12M,结果如下:

1.2B 和 6B 在 2 种不同训练方式下的对比实验
1.2B 和 6B 在 2 种不同训练方式下的对比实验

从上图可以得出 2 个结论:

  1. Policy Model 越大,利用 RM 做提升的收益就越小:在 BON 下,1.2B 模型提升大约为 0.7 分(0 -> 0.7),6B 模型提升大约为 0.35 分(0.4 -> 0.75),不过这是因为越大的模型初始分就较高导 致提升没有那么大,绝对分数上来看还是模型越大越好的;
  2. 无论模型规模如何,最优 Reward 对应的 KL 值是一样的:这一点比较反直觉,我们通常会认为较 大的模型应该能够更快的 hacking 掉 reward model,应该在更小的 KL 处就达到最高的 reward 峰值,但实验结果并非如此(在 RL 实验中 2 个峰值对应的 KL 几乎重合)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值