AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


InternLM2大模型技术报告详细解读
发布日期:2024-04-18 08:11:05 浏览次数: 1978 来源:开源技术人


今天我会从InternLM2的预训练过程、模型结构与训练基础、对齐阶段的工作,评估与分析等方面详细展开说说InternLM2大模型。

预训练过程部分首先看看模型的预训练数据相关内容:

搜集的数据包括文本、代码、长文本数据,文本数据来源包括网络页面、论文、专利和书籍。

文本数据预处理部分包括:所有来源的数据都被转换为特定的格式,如json或jsonl格式,便于后续处理。这部分使用自动语言检测工具对数据进行分类使用局部敏感哈希(LSH)等算法对数据进行去重,减少预训练中的冗余信息。数据清洗、过滤等部分包括:通过设计的规则对数据进行过滤,移除解析错误、格式错误和非自然语言文本等。使用基于规则的过滤器和机器学习模型去除有害内容,包括色情和有毒内容。对数据进行人工注释,使用机器学习模型去除广告内容。对数据的一致性、噪声、信息含量和语法进行评分,再根据评分过滤低质量内容。

代码数据预处理部分包括:从GitHub等平台爬取代码仓库,以及其他与编程相关的在线资源如编程相关的Q&A论坛、教程网站和API文档将所有代码数据转换为统一的markdown格式,并处理格式破损问题。针对代码数据应用了特定的tokenization方法,并使用了去重策略。通过使用规则和模型驱动的评分器对代码质量进行评分,然后根据评分过滤数据。最后对代码仓库中的文件进行依赖排序,以正确顺序连接文件,保持代码的完整性和上下文。

长文本数据预处理部分包括:从预训练语料库中选择长度超过32k tokens的长文本数据。使用词汇和语言特征构建统计过滤器,过滤掉不符合规则的样本。利用困惑度差异评估文本片段之间的关联性,移除上下文不相关的样本。为每个域和语言单独设定阈值,以调整过滤器的灵敏度。

数据这一部分大概值得说的就这么多,接着说说预训练设置这一部分:

分词(Tokenization)使用了针对中英文混合语料优化的分词器,以提高压缩率并保持词汇表大小在10万以下。分词器基于GPT-4的词汇表,包含针对中文数据的特别优化,以适应中英文混合的语料库。
预训练超参数部分包括层数、维度、头数、每个头的查询数。给出了不同尺寸模型的学习率和批量大小的设定,这些参数对模型训练的稳定性和收敛速度有重要影响。优化器通常使用的是AdamW优化器,具体的超参数如β1、β2、ϵ和权重衰减的值也在论文中给出。

预训练阶段主要是4k上下文训练、长上下文训练以及能力特定增强训练三个阶段:

4k上下文训练在大部分训练步骤中使用不超过4096 tokens长度的数据进行训练,这有助于模型掌握基本的文本理解和生成能力。
随后的长上下训练阶段引入了长度不超过32k tokens的数据,这使得模型能够处理更长的文本,从而提高对长期依赖关系的捕捉能力。长上下文训练的比重和对Rotary Positional Embedding(RoPE)基数的调整也在文档中说明。
能力特定增强训练收集了与特定能力相关的高质量数据集,如编程、推理、问答和考试等方面,通过能力特定增强训练进一步提升了模型在这些领域的性能。为了让模型更好地适应这些数据,使用了更小的学习率和batch size

预训练阶段的基本情况就说这么多,模型结构与基础设施部分详细介绍了InternLM2模型的训练框架InternEvo,以及模型的架构和训练策略。

InternEvo是为了高效训练大型语言模型而设计的训练框架。它具备以下5个特点:

  1. InternEvo可以跨数千个GPU进行模型训练,这是通过数据并行、张量并行、序列并行和流水线并行的组合实现的。

  2. 训练框架采用Zero Redundancy Optimizer (ZeRO)策略,显著减少了训练所需的GPU内存占用。

  3. 引入了FlashAttention技术和混合精度训练方法(如BF16),提高硬件利用率。

  4. InternEvo展现了在训练过程中的强大扩展能力,即使在增加GPU数量时也能保持较高的模型浮点运算效率(MFU)。

  5. 为了减少分布式训练中的通信开销,InternEvo采用了适应性分片技术,优化了模型状态(参数、梯度、优化器状态)在GPU间的分布。

InternLM2的模型结构基于Transformer架构,并加入以下4个创新点以优化训练效率和模型性能:

  1. 层归一化部分代替传统的LayerNorm,采用RMSNorm或其他归一化方法来提高训练效率。

  2. 激活函数选择了SwiGLU之类的激活函数,提升了模型的性能。

  3. 对模型中的权重矩阵如Wk, Wq, Wv进行了调整,以支持不同的张量并行转换,并提高训练速度。
  4. 为了支持长上下文,采用了Grouped-Query Attention (GQA)结构,以便在处理非常长的上下文时保持高速和低GPU显存消耗。


训练策略方面,为了加快训练速度并减少内存消耗,InternLM2在训练中采用了混合精度方法。根据模型的规模和训练目标选择最合适的优化器和超参数设置。为了应对大规模训练中可能出现的硬件故障或资源不平衡问题,InternEvo实现了容错机制,包括失败检测和自动恢复功能,完成了对参数梯度的管理。InternEvo的高效性也被证明适用于RLHF阶段的交互式训练,其中多个LLM模型可以被同时部署和训练。

对齐阶段是训练大型语言模型(LLM)的一个关键步骤,它确保模型的输出不仅在技术上是准确的,而且在伦理上也是符合人类价值观的。对齐阶段InternLM2的SFT的标注数据分布如下:

RLHF阶段重点说说COOL RLHF部分,COOL RLHF是RLHF的一个扩展,专门设计来处理在执行任务时可能出现的人类偏好冲突。

论文引入条件奖励模型来解决不同任务和场景下的偏好冲突。该模型能够根据不同的上下文条件、提示词调整其关注的偏好。同时实施了多轮在线RLHF策略,使模型能够快速适应新的人类反馈,减少模型的“奖励黑客”行为。通过快速路径(Fast Path)和慢速路径(Slow Path)来及时修复奖励模型,并提高其在高奖励区域的可靠性和鲁性。COOL RLHF的奖励模型需要经过PPO训练,以便能够理解各种反馈,并将其转化为奖励信号。

在上述过程中为了保持预训练时的长文本能力,也依然使用了长文本来做SFT和RLHF,并且论文还为模型的数据分析能力做了优化:

论文中关于评估这一部分就不详细说了,但其提到的数据污染的潜在问题,并讨论了如何识别和应对这一问题。感兴趣的小伙伴可以研究更先进的技术来检测和减少训练数据中的污染。这部分感兴趣的小伙伴可以详细看看论文中这块的内容。

总的来说,InternLM2特意强化了对长文本的处理能力,使模型能更好地理解和生成长篇幅内容。同时提出了一种新颖的强化学习策略,用于解决模型在执行任务时可能出现的人类偏好冲突。同时提出的InternEvo框架支持高效地在大规模GPU集群上训练LLMs。未来可以扩展模型以处理除了文本之外的其他类型的数据,如图像、声音等。也可以寻找更有效的强化学习方法或微调技术。通过更精细的人类反馈和奖励模型,进一步改善模型与人类价值观的对齐。最后当然是靠各位小伙伴将大模型应用、落地,开发新的应用场景,将模型的能力转化为实际可用的产品或服务。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询