InternLM 技术报告解读(一)- 训练框架,模型架构,数据处理

        大型语言模型的发展包括预训练、监督微调(SFT )和基于人类反馈的强化学习( RLHF
等主要阶段。
        过去关于LLM 的技术报告 很少关注预训练数据的处理。 InternLM2详细描述了如何为预训练 准备文本、代码和长文本数据。
        如何有效地延长LLM 的上下文长度目前是研究的热点,因为许多下游应用,如检索增强生成(RAG 和代理模型 ,依赖于长上下文。
        本次技术报告就详细的阐述关于数据处理,预训练以及微调模型的技术细节。

一. 训练框架以及模型架构

1.1 InternEvo

        在开始之前,我们首先选择我们的训练框架,我们使用的高效的轻量级预训练框架InternEvo进行模型训练。 这个框架使得我们能够在数 千个 GPU 上扩展模型训练。它通过数据( Data Parallelism )、张量( Tensor Parallelism, 2019 )、序列( Sequence Parallelism, 2023 )和管道( Pipeline Parallelism, 2019 )并行技 术来实现这一点。为了进一步提升 GPU 内存效率, InternEvo 整合了各种 Zero Redundancy  Optimizer (ZeRO, 2020 )策略,显著减少了训练所需的内存占用。此外,为了提高硬件利用 我们还引入了 FlashAttention 技术( 2023 )和混合精度训练( Mixed Precision Training, 2017 ),使用 BF16。
        
        InternEvo在序列长度方面也表现出强大的扩展性, 支持训练不同规模的 LLM , 例如
256,000 个令牌的序列长度下训练 InternLM-7B , 可以达到接近 88% MFU 。 相比之
下, DeepSpeed-Ulysses Megatron-LM 只能达到大约 65% MFU 。对于更大规模的 LLM
300 亿或 700 亿参数的模型,训练性能的提升也同样明显。

1.2 模型架构

         我们选择遵循 LLaMA 的结构设计原则。 为了提高效率,我们将W k W q W v 矩阵合并,这在预训练阶段带来了超过 5% 的训练加速。此外,为了 更好地支持多样化的张量并行(tp )变换,我们重新配置了矩阵布局。对于每个头的 W k W q W v ,我们采用了交错的方式,如下图所示。

二. 训练数据集

2.1 文本数据

        我们的预训练数据集中的文本数据可以根据来源分为网页、论文、专利和书籍。为了将这
些来源转化为预训练数据集,我们首先将所有数据标准化为特定格式,按类型和语言分类,
并以 JSON Lines (jsonl) 格式存储。然后,我们对所有数据应用一系列处理步骤,包括基于
规则的过滤、数据去重、安全过滤和质量过滤。这最终形成了丰富、安全且高质量的文本
数据集。
        
        整个数据处理流程首先将来自 不同来源的数据标准化,得到格式化数据 Format data )。接着,通过应用启发式统计规则 进行数据筛选,获取清洗数据 Clean data )。然后,使用局部敏感哈希( LSH )方法进行 数据去重,得到去重数据 Dedup data )。随后,我们采用复合安全策略过滤数据,得到 安 全数据( Safe data )。针对不同来源的数据,我们采用了不同的质量过滤策略,最终获得 高 质量预训练数据( High-quality pre-training data

2.2 代码数据        

        同时,我们也加入了大量的代码数据, 我们从多个来源收集数据,包括直接从 GitHub 爬取,公共数据集,以及与编 程和编码相关的在线资源(如问答论坛、教程网站和 API 文档),数据来源统计如图。
         所有数据转换为统一的 Markdown 格式。然而,一小部分数据仍然存在损坏
HTML XML格式。 代码数据的去重与处理自然语言类似,只是在分词( tokenization )上有所区别, 这影响了超参数的选择。
3.3 长文本数据
         处理非常长的上下文( ¿32K 个令牌)在研究大语言模型( LLMs )中越来越受到关注,这拓
宽了应用范围,包括书籍摘要、支持长期对话以及处理涉及复杂推理步骤的任务。预训练
数据是扩展模型上下文窗口的关键因素。我们遵循 Lv et al. ( 2024 ) 中提到的长文本预训练数
据准备过程,包括数据过滤管道,统计过滤器,语言模型困惑度过滤器,阈值选择等。
        
        所有提议过滤器前后的数据分布。整个过滤过程去除了大部分网页数据 (Common Crawl)和专利数据,而书籍和论文数据大部分得以保留。
  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
GPT, 通常指的是“Generative Pre-trained Transformer”(生成式预训练转换器),是一个在自然语言处理(NLP)领域非常流行的深度学习模型架构。GPT模型由OpenAI公司开发,并在多个NLP任务上取得了显著的性能提升。 GPT模型的核心是一个多层Transformer解码器结构,它通过在海量的文本数据上进行预训练来学习语言的规律。这种预训练方式使得GPT模型能够捕捉到丰富的上下文信息,并生成流畅、自然的文本。 GPT模型训练过程可以分为两个阶段: 预训练阶段:在这个阶段,模型会接触到大量的文本数据,并通过无监督学习的方式学习语言的结构和规律。具体来说,模型会尝试预测文本序列中的下一个词或短语,从而学习到语言的语法、语义和上下文信息。 微调阶段(也称为下游任务训练):在预训练完成后,模型会被应用到具体的NLP任务中,如文本分类、机器翻译、问答系统等。在这个阶段,模型会使用有标签的数据进行微调,以适应特定任务的需求。通过微调,模型能够学习到与任务相关的特定知识,并进一步提高在该任务上的性能。 GPT模型的优势在于其强大的生成能力和对上下文信息的捕捉能力。这使得GPT模型在自然语言生成、文本摘要、对话系统等领域具有广泛的应用前景。同时,GPT模型也面临一些挑战,如计算资源消耗大、训练时间长等问题。为了解决这些问题,研究人员不断提出新的优化方法和扩展模型架构,如GPT-2、GPT-3等,以进一步提高模型的性能和效率。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有意思科技

给与不给,我都会更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值