【书生·浦语大模型视频学习笔记 及 InternLM 2 技术解读报告】

详细视频:书生·浦语大模型全链路开源体系
详细报告:InternLM2 Technical Report

一、书生·浦语大模型视频学习笔记

InternLM 1 的开源历程在第一篇文章中已经写过,这里不再过多赘述,这里主要聊聊 InternLM 2的开源体系。

1.1 基本介绍

1.1.1 开源时间

2024年1月17日,InrernLM 2 开源。

1.1.2 开源版本

IntermLM 2 包含两个规格——7B和20B。7B主要针对于轻量型研究,综合性能更强的20B规格可以适用于情况更加复杂的应用场景。同时,每个规格都支持三个模型版本,包括:

  • InternLM 2-Base:高质量的,具有很强可塑性的模型基座。
  • InternLM 2 :在Base的基础上,对各个方面进行强化,保持很好的通用语言能力,支持基于该模型在下游领域进行微调。
  • InternLM 2-Chat:在Base基础上,经过 SFT(Supervised Fine-Tuning,监督微调,利用标记好的数据对模型进行微调) 和 RLHF(Reinforcement Learning fromHuman Feedback,人类反馈强化学习),面向对话交互进行交互的模型。可以类比为ChatGPT。

1.1.3 开源初衷

因为大模型的实质就是在做语言建模,即给定 context,能预测接下来的 token,InternLM 2目的就是回归语言建模的本质。因此高质量的语料库十分关键。

在这里插入图片描述

1.2 模型亮点

在这里插入图片描述
在这里插入图片描述

1.3 从模型到应用

在这里插入图片描述

1.4 开源体系

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e5dbb393540042388c11324039ed2847.png

1.4.1 高质量语料数据

在这里插入图片描述

1.4.2 预训练

在这里插入图片描述

1.4.3 微调

大语言模型的下游应用中,增量续训和有监督微调是经常会用到两种方式。

  • 增量续训

    • 使用场景: 让基座模型学习到一些新知识,如某个垂类领域知识
    • 训练数据:文章、书籍、代码等
  • 有监督微调

    • 使用场景: 让模型学会理解各种指令进行对话,或者注入少量领域知识
    • 训练数据: 高质量的对话、问答数据

在这里插入图片描述

1.4.4 评测

2024年1月30日,OpenCompass 2.0 司南大模型评测体系正式发布。该体系主要包含三个方面:

CompassRank:中立全面的性能榜单
在这里插入图片描述

CompassKit:大模型评测全栈工具链
在这里插入图片描述

CompassHub:高质量评测基准社区
在这里插入图片描述

1.4.5 部署

在这里插入图片描述

1.4.6 智能体

在这里插入图片描述
在这里插入图片描述

二、InternLM 2 技术解读报告

个人理解,InternLM 2 最突出的点在于有效地扩展了LLMs的上下文长度,一般多数大预言模型的上下文长度都在 2k 左右,即使是 Claude 2 和 GPT-4 ,支持上下文长度也不过 100k 和 32k,但 Interm LM 2 大幅度地提高了该窗口长度,达到惊人的 200k。下面简单说一下论文中提到的 InternLM 2 的创新,主要集中在 InternEvo 框架 以及 COOl RLHF 机制

2.1 基本框架

2.1.1 InternEvo

InternLm 2 采用了创新的 InternEvo框架,该框架可以实现跨越数千个 GPU 扩展模型训练。
InternEvo采用了各种 Zero Redundancy Optimizer(ZeRO)策略,显著减少了训练所需的内存占用,进一步提高GPU内存效率,同时,结合了 FlashAttention 技术和 BF16 的混合精度训练以增强硬件利用率。
这里简单说一下 FlashAttention,常规的 Efficent Transformer都把改进思路集中在降低模型计算的 FLOPs,而 FlashAttention 优化重点是降低模型的 MAC(Memory Access Cost,存储访问开销),具体而言,原本的 Transformer 计算更多的是使用 GPU 中存储空间大但速度较慢的 HBM,FlashAttention 通过将矩阵分块送进容量小但速度快的 SRAM 计算,减少 HBM读写,从而提高整体读写速度,具体的讲解可以参考这篇知乎回答:FlashAttention 的速度优化原理是怎样的?

InternEvo的实现效果包括:
① 通过 Full-Replica、Full-Sharding 和 Partial-Sharding 来减少通信规模从而有效地降低通信成本。
② 通过 AllGather、ReduceScatter、AllReduce等方法,使参数通信过程与后向计算巧妙地重叠,战略性地协调通信和计算,从而优化整体系统性能。
③ InternEvo 将 GPU 内存管理分解为四个并行维度——数据、张量、序列和管道,和三个分片维度——参数、梯度和优化器状态)。利用执行模拟器来识别和实施最佳的并行化策略,并通过内存管理技术来减少GPU内存碎片化。
④ 通过一个用于容错的结合了异步保存机制预训练系统以及一个用于评估任务的解耦调度系统,解决硬件故障、复杂的并行化策略和资源利用不平衡等问题。
⑤ 开发了一个创新的 RLHF 框架,能够有效地进行规模化操作。它能够与各种LLM执行引擎集成,并支持多样化的算法设计

2.1.2 模型结构

为了确保 InternLM 2 可以与 LLaMA架构构建的生态系统以及如 千问百川Mistral 等其他著名的 LLMs 无缝对齐,InternLM 2 遵循LLaMA的结构设计原则。同时,因为 InternLM 2 的目标是推断超过 32K 的上下文,因此,InternLM 2 系列模型都选择了 Grouped-Query Attention(GQA)。该注意力机制介于 MHA (多头注意力)MQA(多查询注意力) 之间,在 MQA 的速度和 MHA 的质量之间取得平衡,有效解决例如质量下降和训练不稳定等问题。

2.2 预训练

2.2.1 数据处理

无论是文本数据,代码数据或者是长文本数据,要获取最终的数据集,基本需要遵循以下流程:数据获取 ——> 数据格式化 ——> 基于规则的过滤 ——> 数据去重 —> 安全过滤 ——> 质量过滤。
在这里插入图片描述

这里着重强调对于长文本数据的处理,InternLM 2 通过三个阶段对初始低质量的长文本数据进行过滤,包括:

  • 长度选择,基于规则的筛选器,选择超过32K字节的数据样本
  • 统计筛选器,利用统计特征识别和删除异常数据
  • 困惑度筛选器,利用文本段之间的困惑度差异来评估文本连贯性,过滤掉具有分散注意力的上下文的样本

2.2.1 预训练设置

2.2.1.1 标记化

InternLM 2 选择了 GPT-4 的标记化方法,参考是 cl100k 词汇表,具体而言,从 cl100k 词汇表中精选了前60,004个标记,并将它们与32,397个中文标记结合起来。此外,包含了147个备用标记来补充选择,从而得到一个与256的倍数相符的词汇量,便于进行高效的训练。

2.2.1.2 预训练超参数

基本超参数列在表3中。在训练期间,使用AdamW进行模型优化(Loshchilov & Hutter,2019),其中β1 = 0.9,β2 = 0.95,ϵ = 1e-8,权重衰减= 0.1。我们使用余弦学习率衰减,学习率衰减到其最大值的10%。
InternLm 2 在训练期间,使用 AdamW 进行模型优化,其中 β1 = 0.9,β2 = 0.95,ϵ = 1e-8,权重衰减 = 0.1,使用余弦学习率衰减,学习率衰减到其最大值的 10%。

2.3 COOL RLHF

当前的 RLHF 虽然已经能取得不错的成果,但仍存在一定的缺陷,包括:

  • 偏好冲突。例如,在开发对话系统时,我们期望它提供有用的信息(有帮助),同时不生成有害或不适当的内容(无害)。然而,这两个偏好在实践中往往无法同时满足,因为在某些情况下提供有用的信息可能涉及敏感或高风险的内容。
  • 计算成本。现有的 RLHF 方法通常依赖于多个偏好模型进行评分,这也在训练流程中引入了更多模型,从而增加了计算成本并降低了训练速度。
  • 奖励破解。当策略随着规模的增加而变得更加强大时,模型可能会通过捷径“欺骗”奖励系统来获取高分,而不是真正学习预期行为,这导致模型以意想不到的方式最大化奖励,严重影响了LLMs的有效性和可靠性。比如 OpenAI 赛船比赛智能体就是一个典型的案例,通过不断重复转圈并击中同一奖励方块来获取更多奖励。奖励破解问题难以解决的地方在于被称为「古德哈特定律(Goodhart’s law)」的效应。

对此,InternLM 2 提出了 COOL RLHF(Conditional OnLine RLHF),首先引入了条件奖励机制来协调不同的偏好,允许奖励模型根据特定条件动态分配其关注点到各种偏好,从而最优地整合多个偏好。此外,COOL RLHF 采用了多轮在线 RLHF 策略,使 LLM 能够迅速适应新的人类反馈,减少奖励篡改的发生。

2.3.1 条件奖励模型

在这里插入图片描述

与传统方法通常依赖于多个偏好模型以解决不同领域偏好冲突的做法不同,条件奖励模型将不同的系统提示纳入到不同种类的偏好中,以有效地对各种偏好进行建模,形成一个统一的奖励模型。
具体地,如条件奖励模型使用不同的系统提示无缝地融合来自各个领域的数据。由于奖励模型是从一个已经学会遵循各种人类指令的SFT模型中初始化的,我们还让奖励模型跟随不同的系统提示以适应不同场景的各种偏好。在条件奖励模型中,系统提示不仅仅是其输入的一部分;它们还是在不同场景中指导奖励得分与特定偏好保持一致的关键工具。这种集成有助于在统一的奖励模型中管理相互矛盾和复杂的人类偏好,而不会牺牲准确性。

以上的话是论文中的解释,但我仍然觉得复杂,下面结合例子说说个人的理解。

假设我们正在训练一个对话系统,这个系统需要同时满足两种不同的偏好:提供有用的信息和避免生成有害或不恰当的内容。然而,在实践中,这两种偏好往往是相互冲突的。为了解决这个问题,传统的 RLHF 方法可能会使用多个不同的偏好模型来分别评估这两种偏好,并根据各自的结果给出奖励。
但是,这种方法存在一些问题。首先,引入多个模型会增加计算成本并降低训练速度。其次,不同的偏好模型可能会产生不一致的评估结果,导致模型无法很好地平衡两种偏好之间的关系。
条件奖励模型通过采用一种全新的方法来解决这些问题。它不再依赖于多个独立的偏好模型,而是在奖励模型中引入不同的系统提示。例如,在对话系统的训练中,我们可以为不同类型的对话场景设计不同的系统提示,当系统接收到用户输入时,根据当前对话的性质,选择相应的系统提示来指导奖励模型的行为:如果当前对话需要提供有用的信息,那么就选择与这种偏好相匹配的系统提示;如果需要避免生成有害或不恰当的内容,就选择另一种相应的系统提示。

通过这种方式,条件奖励模型能够在不同的场景下动态地调整奖励模型的行为,从而更好地满足各种复杂的人类偏好。这种方法不仅提高了模型的灵活性和适应性,还减少了计算成本和训练时间,使 RLHF 方法在实际应用中更加高效和可靠。

2.3.1.1 损失函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Lranking 是添加了一个困难度衰减系数的排名损失函数,这样使得困难样本的损失值更大,而易样本的损失值更小,避免了在大量易样本上过拟合。
Lpenalty 是对数障碍惩罚函数,它消除了在 PPO 阶段修改额外的与奖励相关的超参数的需要,确保奖励模型在不同训练中的输出得分的稳定性和一致性。
L 是总的奖励模型的损失函数。其中参数 λ 是一个加权系数,平衡了 LrankingLpenalty 的贡献,将其设置为默认值0.02。

2.3.2 Online RLHF

得到条件奖励模型之后,采用近端策略优化(Proximal Policy Optimization,PPO)来使 LLMs(Large Language Models)与奖励模型建模的人类偏好保持一致。为了解决PPO阶段的奖励作弊挑战,引入了一种在线RLHF方法,分为两个不同的路径:一个是快速路径,用于立即和有针对性地改进;另一个是慢速路径,用于长期和全面地完善奖励模型。快速路径和慢速路径相辅相成,提供了一个适应性框架,用于减轻奖励作弊并增强通过人类反馈训练的LLMs的性能和可靠性。

快速路径专注于快速识别和纠正奖励作弊事件,通过有针对性的补丁来提高奖励模型的可靠性。流程可以简单概括为:LLMs高奖励区域 ——> 检测到作弊模式 ——> 构建偏好对 ——> 修补奖励模型。
慢速路径旨在提高奖励模型的上限,特别是在高奖励区域的可靠性和鲁棒性。流程可以简单概括为:SFT 模型、早期 PPO 模型、晚期 PPO 模型 ——> 形成成对比较 ——> 人工标注 ——> 更新奖励模型。

Online RLHF 的实施过程如下:三轮精炼 ——> 收集偏好补丁 ——> 更新奖励模型 ——> 使用现有人工偏好数据

  • 51
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值