InternLM2大模型的技术细节(2)

152 篇文章 0 订阅
147 篇文章 1 订阅

24年3月来自上海AI实验室、商汤科技、香港中文大学和复旦大学的技术报告“InternLM2 Technical Report“。

继续介绍对齐技术。

对齐

预训练之后对 LLM 进行微调,充分发挥其能力,并引导 LLM 成为有用且无害的 AI 助手。这通常称为“对齐”,通常包含两个阶段:有监督微调 (SFT) 和人类反馈中强化学习 (RLHF)。在 SFT 期间,通过高质量的指令数据对模型进行微调,使其遵循不同的人类指令。然后,采用提出的 COnditional OnLine RLHF,它应用一种条件奖励模型,可以协调不同类型的人类偏好(例如,多步推理准确性、有用性、无害性),并进行三轮在线 RLHF 以减少奖励黑客攻击。在对齐阶段,SFT 和 RLHF 利用长上下文预训练数据来保持 LLM 的长上下文能力。

SFT

用 1000 万个指令数据实例的数据集做SFT,这些实例已经过筛选,确保其有用性和无害性。数据集涵盖了各种主题,包括一般对话、NLP 任务、数学问题、代码生成和函数调用等。如图显示了 SFT 数据主题的详细分布。为了便于对这些各种任务进行多功能表示,将数据样本转换为 ChatML (Cha) 格式。7B 和 20B 模型均使用 AdamW 优化器进行一个 epoch 的训练,初始学习率为 4e-5

添加图片注释,不超过 140 字(可选)

COOL RLHF

人类反馈的强化学习 (RLHF) (Christiano,2017;Ouyang,2022) 是大语言模型域的一种创新方法。通过结合人类反馈,RLHF 创建作为人类偏好代理(proxy)的奖励模型,从而用近端策略优化 (PPO) (Schulman,2017) 为 LLM 提供奖励信号以供学习。这种方法使模型能够更好地理解和执行难以通过传统方法定义的任务。

尽管 RLHF 取得了成就,但在实际应用中仍然存在一些问题。首先是偏好冲突。例如,在开发对话系统时,希望它提供有用的信息(有帮助),同时不产生有害或不适当的内容(无害)。然而,这两个偏好在实践中往往不能同时满足,因为提供有用的信息在某些情况下可能涉及敏感或高风险内容。现有的 RLHF 方法 (Touvron,2023b;Dai,2023;Wu,2023) 通常依赖多个偏好模型进行评分,这也会在训练流程中引入更多模型,从而增加计算成本并降低训练速度。其次,RLHF 面临奖励黑客攻击的问题,尤其是当策略随规模的增加而变得更强大时 (Manheim & Garrabrant,2018;Gao,2022),模型可能会学会通过捷径“欺骗”奖励系统以获得高分,而不是真正学习预期的行为。这导致模型以意想不到的方式最大化奖励,从而严重影响 LLM 的有效性和可靠性。

为了解决这些问题,提出条件在线 RLHF (COOL RLHF)。 COOL RLHF 首先引入条件奖励机制来协调不同的偏好,这使得奖励模型能够根据特定条件动态地将注意分配给各种偏好,从而最佳地整合多种偏好。此外,COOL RLHF 采用多轮在线 RLHF 策略,使 LLM 能够快速适应新人工反馈,从而减少奖励黑客攻击的发生。

1 条件奖励模型

条件奖励模型是针对 RLHF 方法先前偏好建模所固有挑战的解决方案。与通常依赖多个偏好模型来解决不同领域偏好冲突的传统方法(如图 (a)LLaMA采用)不同,条件奖励模型结合了针对不同偏好的不同系统提示,从而有效地在单一奖励模型中模拟各种偏好,如图(b)所示。

添加图片注释,不超过 140 字(可选)

具体来说,如上图 (b) 所示,条件奖励模型采用不同的系统提示来无缝融合来自各个领域的数据。由于奖励模型从 SFT 模型初始化,而 SFT 模型已经学会了遵循不同的人类指令,因此还让奖励模型遵循不同的系统提示,以适应不同场景的不同偏好。在条件奖励模型中,系统提示不仅仅是其输入的一个组成部分;它们还是引导奖励分数与不同场景中的特定偏好保持一致的重要工具。这种整合有助于在统一的奖励模型中管理矛盾和复杂的人类偏好,而不会牺牲准确性。

数据组成。条件奖励模型的训练过程涉及大量的数据集,涵盖了对话、文章写作、诗歌、总结、编码、数学、格式化输出等各个领域,多达240万个二值偏好对。如此全面的数据集保证了模型的广泛适应性,也提升了模型在更广泛更复杂情境中进行强化学习的能力。因此,通过条件系统提示的方式,奖励模型可以响应人为的复杂需求,对PPO阶段的奖励分数进行更细致的控制。

损失函数。此外,为了降低数据集中易-难样本不平衡的影响,受Focal Loss (Lin et al., 2017)的启发,对原有的排序损失函数(Burges et al., 2005)进行修改,在排序损失中加入了难度衰减系数,使得难样本的损失值较大,易样本的损失值较小,防止在大量易样本上出现过拟合。focal ranking loss公式为

添加图片注释,不超过 140 字(可选)

其中 Pi,j = σ(ri − rj) 表示奖励i大于奖励j的概率。难度衰减系数仅在模型正确预测训练样本的偏好时才生效,即 Pi,j > 0.5,否则等于 1。术语 γ 表示有助于调节难度衰减率的超参。这里默认将其设置为 2。同时,为了确保奖励模型在不同训练中输出分数的稳定性和一致性,在奖励分数中引入了对数障碍惩罚(log barrier penalty),将分数分布限制在 -5 到 5 的范围内,定义为

添加图片注释,不超过 140 字(可选)

此约束至关重要,因为它避免在 PPO 阶段修改其他奖励相关超参的需要,这可能由于不同奖励模型中的奖励分数分布变化而出现。总体而言,奖励模型的损失函数是

添加图片注释,不超过 140 字(可选)

参数 λ 是平衡 Lranking 和 Lpenalty 贡献的加权系数。实验将其设置为默认值 0.02。这些增强功能提高了奖励模型的稳健性和一致性,特别是在以易样本和难样本不平衡为特征的数据集背景下。

训练细节。在实验中,将奖励模型的大小与 PPO 中使用的actor模型大小对齐。按照 InstructGPT(Ouyang et al.,2022)中描述的方法,用 SFT 模型权重初始化奖励模型,将输出层修改为一维线性映射层,该层是随机初始化的。批量构建策略,不是限制偏好对的数量,而是侧重于将偏好数据的总长度固定在每批 16384 个tokens,以避免由于数据填充(data padding)导致训练效率低下。最大上下文长度设置为 8192。每个序列的末尾都会附加一个特殊token,其输出值用作奖励分数。采用 AdamW 作为优化器。学习率遵循余弦退火方案,从 1e-5 降至 5e-6,权重衰减设置为 0.01。为了防止过拟合,模型训练一个epoch。

2 在线 RLHF

在获得条件奖励模型后,进行近端策略优化 (PPO),使 LLM 与(Ouyang 2022) 奖励模型建模的人类偏好保持一致。为了应对 PPO 阶段奖励黑客攻击的挑战,引入一种在线 RLHF 方法,分为两种不同的路径:用于立即、有针对性改进的快速路径和用于长期、全面改进奖励模型的慢速路径。快速路径和慢速路径相辅相成,提供一个自适应框架,用于减轻奖励黑客攻击并提高人类反馈训练的 LLM 性能和可靠性。

快速路径。在线 RLHF 中的快速路径,侧重于有针对性的补丁(targeted patch)快速识别和纠正奖励黑客事件,以提高奖励模型的可靠性。随着 PPO 训练的进行,LLM 被鼓励向高奖励区靠拢,这通常会暴露更多容易被检测的奖励黑客场景。在每一轮 RLHF 后识别黑客模式后,比较当前轮早期和后期 PPO 模型生成的响应来构建突出这些模式的偏好对。将 20 到 100 个这样的偏好对纳入训练过程,足以防止奖励模型出现相应的黑客模式。此过程允许快速修复奖励模型以适应新出现的黑客行为,从而提高奖励模型的可靠性和对期望结果的遵从。

慢速路径。与专注于修复奖励黑客攻击的快速路径相比,慢速路径旨在通过覆盖最新、最强模型的 LLM 响应来全面改善奖励模型的上限,尤其是奖励模型在高奖励区的可靠性和鲁棒性,这遵循了先前的研究(Bai,2022)。为此,使用模型在训练的各个阶段(包括 SFT 模型、早期 PPO 模型和后期 PPO 模型)生成的响应进行成对比较。然后将这些对呈现给专业的人工标注员以标记他们的偏好。

这样的过程可以更细致入微、更彻底地完善奖励模型,但需要大量的人工标注时间。为了提高在线 RLHF 的效率,仅使用实验启动时所有先前模型的累积人工偏好(即,由于人工标记的时间成本,可能不包括模型在当前轮产生的响应偏好)。根据人类反馈不断更新模型,慢速路径确保奖励模型与人类偏好的复杂性和微妙性同步发展。

实施。在实施在线 RLHF 时,进行三轮细化。在这些周期中,在快速路径中收集了数千个偏好补丁和在线偏好数据来更新奖励模型,并使用以前模型中所有现有的人类偏好响应数据。每一轮在线 RLHF 都提供宝贵的见解,能够动态调整和改进奖励模型,从而提高人类反馈训练的语言模型整体性和可靠性。

3 PPO 训练细节

在 RL 调整阶段,采用标准近端策略优化( PPO)算法并对其进行一些调整,以确保更稳定的训练过程。该框架涉及四个模型:actor模型、critic模型、参考模型和奖励模型。在训练期间,后两个模型被冻结,只有前两个模型要主动训练。值得注意的是,所有这些模型的大小都相同,确保了它们处理和生成数据的能力的一致性。在约 400 次迭代中迭代约 200k 个不同的查询,并在验证集上选择最佳检查点进行发布。

模型初始化。按照惯例,从 SFT 模型权重初始化参考模型和actor模型。critic模型从奖励模型(不包括线性头)初始化,并经历 50 次迭代的预训练阶段,在此期间actor模型被冻结。此阶段对于稳定早期训练中的值估计至关重要,从而防止不稳定值的潜在有害影响。消融研究比较从奖励模型初始化评论家模型与从 SFT 模型初始化critic模型,如图所示。结果表明,从奖励模型初始化的critic模型在 PPO 训练的前几次迭代中经历较大的损失,但在大约 20 次迭代之后,它始终表现出较低的损失并导致actor模型的奖励更高。假设在初始阶段观察的较高损失可能揭示奖励建模和critic建模任务之间的根本差异。之后损失较低可以归因于对世界知识更加一致的内部理解和对评估原则更好的掌握。

添加图片注释,不超过 140 字(可选)

条件奖励。如前所述,奖励模型经过训练可以适应各种条件。因此,对于来自不同域的查询,会在计算奖励分数之前在每个采样响应前面添加适当的条件系统提示,如图所示。这种做法可确保模型的响应与不同域的不同需求在上下文上保持一致。

添加图片注释,不超过 140 字(可选)

预训练梯度。为了减轻 PPO 阶段发生灾难性遗忘的风险,遵循 InstructGPT 方法,加入预训练损失。预训练损失的系数设置为 0.5,预训练数据量约为 PPO 训练的 50%。这一添加有助于保留在初始训练阶段获得的知识,确保模型在适应新反馈和通过 PPO 学习的同时保留其基础的能力和知识库。

超参。将 KL 散度系数设置为 0.01。actor模型和critic模型的学习率分别设置为 1e-6 和 5e-6。在案例中,PPO 的 λ 值越大,奖励越高,因此将其设置为 0.99。采用略微保守的采样策略,最高 p = 0.9,在采样多样性和收敛速度之间取得平衡。与一些传统方法不同,不应用价值损失削减(loss clipping)或利益归一化(advantage normalization)。尽管使用广泛的 RL 技巧,但训练仍然非常稳定,部分原因在于在线 RLHF 工作。

长上下文微调

为了在微调后保留 LLM 的长上下文能力,继续在 SFT 和 RLHF 中使用长上下文预训练数据,这受到之前在 SFT 中采用长上下文预训练语料库的研究的启发(Xiong,2023)。具体来说,用两种类型的数据:一种是来自书籍的长上下文数据,另一种是从 GitHub 存储库获取并通过特定范式连接起来的长上下文数据。

为了增强 InternLM2 的数据分析能力,选择 DS-1000(Lai,2023)中使用的代码存储库作为核心存储库,其中包括 Pandas、Numpy、Tensorflow、Scipy、Scikit-learn、PyTorch 和 Matplotlib。然后在 GitHub 上搜索引用这些核心库超过 10,000 个 star 的库,并进行与预训练相同的筛选和数据清洗过程。对于每个仓库,我们首先使用深度优先的方法对获取的原始数据进行排序,同时生成所需简要描述文件内容的提示,如图所示。随后,将处理后的数据按顺序连接起来,直到达到 32k 的长度。实验结果表明,长上下文代码数据不仅提升 LLM 的长上下文能力,也提升了代码能力。

添加图片注释,不超过 140 字(可选)

工具增强 LLM

通用工具调用。采用ChatML 格式的修改版本,引入“环境”角色来实现通用工具调用。这种修改在聊天场景中具有相同的格式,但在采用智体时为模型提供了更清晰的信号。此外,定义了两个特定的关键字来支持 AI 智体的不同用途,即代码解释器 (<|interpreter|>) 和外部插件 (<|plugin|>)。这样能够采用统一的流式格式,该格式可以处理各种类型的插件扩展和 AI 环境,同时与一般聊天兼容。如图显示流式聊天格式的具体示例。为了充分发挥 InternLM2 的智体能力,将智体语料库与聊天域对齐,并将其与语言模型的基本功能分离以进行细粒度训练,如 Agent-FLAN (Chen et al., 2024c) 所述。

代码解释器。还增强了 InternLM2-Chat 通过代码解释器解决数学问题的能力,将 Python 代码解释器视为一种特殊工具,使用与工具学习中描述的相同模式。采用推理与编码交错 (RICO) 策略,以迭代硬示例挖掘(hard example mining)方式构建数据,如 InternLM-Math (Ying,2024)所述。

继续。。。

  • 20
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值