书生浦语第二期第一次笔记

第一次课——大模型全链路开源体系

视频笔记

视频链接

人工智能模型发展趋势
从专用模型(针对特定任务,一个模型解决一个问题)到通用大模型(一个模型应对多种任务和多种模态)发展

书生浦语全链条开源体系

  1. 数据:书生万卷
  2. 预训练:InternLM-Train
  3. 微调:XTuner
  4. 部署:LMDeploy
  5. 评测:OpenCompass
  6. 应用:Lagent/AgentLego

InternLM2 技术报告笔记

报告链接

报告综述

该技术报告主要介绍了一个开源LLM——InternLM2,它通过创新的预训练和微调技术在6个维度和30个基准、长上下文建模和开放式主观评价的综合评估中优于InternmLM;该报告中非常详细的介绍了预训练过程,突出了各种数据类型的制作,包括文本、代码和长上下文数据。InternLM2能够有效地捕获长期依赖关系,在200k“Needle-in-a-Haystack”测试中表现出卓越的性能,并且使用监督微调 (SFT) 和来自人类反馈的条件在线强化学习(COOL RLHF)策略进一步对齐。

基础设施
训练框架InternEvo

该框架能够通过数据、张量、序列和管道并行性的组合来实现跨数千个GPU扩展模型训练;为了进一步提高GPU内存效率,IntrenEvo结合了各种零冗余优化器(ZeRO)策略,显着减少了训练所需的内存占用;将FlashAttention技术和混合精度训练(BF16)相结合来提高硬件利用率。

模型结构

InternLM2基于Transformer结构,对其进行优化来提升训练效率和模型性能:

  1. 遵循LLAMA的结构设计原则,将归一化层LayerNorm用RMSNorm进行替换并将激活函数设置为SwiGLU,来提升训练效率和性能;

  2. 为了更好的支持不同向量并行的转换,重新配置了q、k、v的权重矩阵;
    在这里插入图片描述

  3. 采用Grouped-Query Attention(GQA)结构以便可以在高速度和低GPU内存中处理非常长的上下文。

预训练
预训练数据
  1. 文本数据
    数据来源于网页、论文、专利和书籍,首先将所有数据标准化为指定格式,按照类型和语言对其分类,存储为JSON格式,然后对所有数据进行基于规则的过滤、重复数据删除、安全过滤和质量过滤,来得到高质量的预训练数据集。
    在这里插入图片描述

  2. 代码数据
    数据来源包括从 GitHub、公共数据集和与编码和编程相关的在线资源,如Q&A论坛、教程站点和API文档直接爬取。将所有代码数据转换为统一的markdown格式,并处理格式损坏问题;使用有效的分词器对重复数据进行删除;采用混合的多阶段过滤,包括使用基于规则的评分器和基于模型的评分器对代码质量进行评分,然后根据评分过滤数据,为了得到可靠的注释,引入了下图的迭代注释过程;最后重新组合来自同一存储库的代码文件并执行依赖排序来建立连接这些文件的序列。
    在这里插入图片描述

  3. 长上下文数据
    数据处理过程包括三个阶段:
    长度选择:从标准预训练语料库中选择长度超过32k的数据样本
    统计过滤器:利用统计特征识别和删除异常数据
    困惑度过滤器:利用困惑度的差异来评估文本段之间的一致性,过滤掉上下文分散的样本

预训练设置
  1. 分词
    因为GPT-4的分词方法在压缩广泛的文本内容方面具有出色的效率,分词器主要采用GPT-4的方法,词汇表主要参考cl100k。
  2. 预训练超参数
    基本的超参数如下图所示,主要包括层数、维度、头数、每个头的query、学习率和batch_size。优化器使用了AdamW,其中 β 1 = 0.9 , β 2 = 0.95 , ϵ = 1 e − 8 \beta_1 =0.9,\beta_2=0.95,\epsilon=1e-8 β1=0.9,β2=0.95,ϵ=1e8
    在这里插入图片描述

预训练过程由三个阶段组成:
第一阶段:使用了长度不超过4k的预训练语料库
第二阶段:包括50%的预训练语料库,长度不超过32k
第三阶段:利用特定于能力的增强数据
在每个阶段,都是以英语、中文和代码混合数据。

对齐

预训练阶段使LLM具有解决各种任务所需的基础能力和知识,因此需要微调来充分激发LLM的能力并引导其成为有用且无害的AI助手,微调阶段也常称为对齐。通常包括两个阶段:监督微调(SFT)和来自人类反馈的强化学习(RLHF)。

SFT

在监督微调(SFT)阶段,使用1000万个指令数据实例的数据集,该数据集已被筛选以确保它们的有用性和无害,通过高质量的指令数据微调模型以遵循不同的人类指令。

COOL RLHF

现有的RLHF实际应用仍存在一些问题,第一个是偏好冲突,在开发对话系统时,我们希望它提供有用的信息(帮助),同时不会产生有害或不适当的内容(无伤害)。然而,这两种偏好在实践中往往不能同时满足,因为在某些情况下提供有用的信息可能涉及敏感或高风险的内容,通常依赖于多个偏好模型进行评分,这在训练管道中引入了更多的模型,从而增加了计算成本并减慢训练速度。第二个时RLHF面临着奖励黑客的问题,特别是当策略随着规模的增加变得更加强大时,模型可以通过快捷方式学习“欺骗”奖励系统以获得高分,而不是真正学习预期的行为,从而影响LLM的有效性和可靠性。
为了解决以上问题,提出了Conditional OnLine RLHF(COOL RLHF)。首先引入了一种条件奖励机制来协调不同的偏好,这允许奖励模型根据特定条件动态地将其注意力分配到各种偏好,从而最优地整合多个偏好;其次采用多轮在线RLHF策略,使LLM能够迅速适应新的人类反馈,减轻奖励黑客的发生。

  1. 条件奖励模型
    条件奖励模型采用不同的系统提示来无缝融合来自不同领域的数据。由于奖励模型是从已经学会遵循不同人类指令的SFT模型初始化的,我们还让奖励模型遵循不同的系统提示来适应不同场景的不同偏好。这种集成有助于在不牺牲准确性的情况下在统一的奖励模型中管理矛盾和复杂的人类偏好。
    在这里插入图片描述

  2. 在线RLHF
    为了解决PPO阶段奖励黑客的挑战,引入了一种在线RLHF方法,分为两种不同的路径:即时、有针对性改进的快速路径和用于长期、全面细化奖励模型的慢速路径。这两条路径是互补的,可以为减轻奖励黑客和增强使用人工反馈训练的LLM的性能和可靠性提供自适应框架。奖励模型经过训练以适应各种条件:
    在这里插入图片描述

  3. 长上下文微调
    为了在微调后保持模型的长上下文能力,在SFT和RLHF中使用长上下文预训练数据:
    在这里插入图片描述

模型的评价与分析就不进行说明了,感兴趣的可以看原报告

总结

在本报告中,展示了InternLM2大型语言模型在主观和客观评估中都表现出卓越的性能。主要对InternLM2训练过程进行了详细描述,包括训练框架、预训练文本数据、预训练代码数据、预训练长文本数据和对齐数据。为了更好地支持长上下文,InternLM2使用GQA来降低推理成本;为了解决RLHF过程中遇到的偏好冲突,提出了条件在线RLHF来协调各种偏好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值