【云驻共创】昇思MindSpore技术公开课 大模型专题(第二期)第七讲脑海模型的训练过程

举报
皮牙子抓饭 发表于 2024/04/12 10:15:11 2024/04/12
【摘要】 摘要:昇思MindSpore技术公开课大模型专题课程新年第一课聚焦鹏城·脑海模型的训练过程。鹏城·脑海200B模型是拥有2千亿参数的自回归式语言模型,在中国算力网枢纽节点‘鹏城云脑Ⅱ’上,基于昇思MindSpore的多维分布式并行技术进行长期大规模训练,已完成1.8T token量的训练。 一、训练语料处理和使用1.脑海(PengCheng Mind)大模型计划脑海大模型计划致力于构建一个以...

摘要:

昇思MindSpore技术公开课大模型专题课程新年第一课聚焦鹏城·脑海模型的训练过程。鹏城·脑海200B模型是拥有2千亿参数的自回归式语言模型,在中国算力网枢纽节点鹏城云脑Ⅱ上,基于昇思MindSpore的多维分布式并行技术进行长期大规模训练,已完成1.8T token量的训练。

 

一、训练语料处理和使用

1.脑海(PengCheng Mind)大模型计划


脑海大模型计划致力于构建一个以中文为核心的、拥有2000亿参数的稠密型自然语言预训练大模型底座。这一计划的核心目标在于实现一个强大且灵活的大模型,能够持续演进、快速迭代更新,并且其输出内容始终符合中文核心价值观。

技术特色与价值观

大模型采用了基于增强学习的大模型微调技术,这种技术使得模型能够不断学习和优化,以适应各种复杂的自然语言处理任务。同时,非常注重保障大模型的数据安全隐私,确保在提供强大功能的同时,用户的隐私得到充分的保护。

规模与标准

脑海大模型拥有2000亿级别的参数,是一个典型的稠密型大模型。这种规模的大模型意味着它具有更强的表示能力和学习能力,能够处理更加复杂的任务。

2.算力网-鹏城探索(C2NET-0.1)


算力网-鹏城探索项目是国家发改委支持下的一项重要预研项目,它的目标是构建一个高效、灵活的算力网络,以满足不断增长的AI计算需求。

技术实现与接入情况

该项目已经成功接入多个分中心,汇聚了多种异构算力资源,包括华为NPU、寒武纪MLU、英伟达GPU等。这些算力资源核心软件栈和分布式调度平台的统一管理,实现了跨域高效纳管调度。

应用平台与框架

算力网络支持多种AI框架,如TensorFlow、Pytorch等,并提供了丰富的开发平台和应用平台,如ModelArts等。这些平台和框架为用户提供了强大的开发和部署能力,使得AI应用能够更加高效地运行在算力网络上。

3.鹏城云脑-2.0.0


鹏城云脑-2.0.0是由鹏城实验室研发的超级计算机,它代表了国内在高性能计算领域的最高水平。

硬件与软件配置

鹏城云脑-2.0主要由4个Altast900集群构成,采用了全国产的Ascend 910 NPU和鲖鹏920 CPU底层硬件。配套的CANN和MindSpore等软件栈,它实现了全国产化的软硬件平台能力。

性能与成就

鹏城云脑-2.0具备1000P的AI算力,即每秒百亿亿次计算能力。这使得它成为深圳的“聪明大脑”,并多次在全球高性能计算领域的权威榜单中位居榜首,展现了其卓越的性能和实力。

 

4.PanGu-α

 

PanGu-α是在2021年4月推出的一个重大开源项目,它代表了在自回归式语言模型领域的重要突破。


它是一个Decoder Only的自回归式语言模型,这种模型在自然语言处理任务中表现出色,特别是在文本生成和预测方面。在PanGu-α中,Query layer、Transformer layers以及Token Position Encoding等组件共同协作,使得模型能够理解和生成高质量的文本。

 

PanGu-α的核心在于其大规模的训练和自动并行计算技术。使用了大量的高质量中文数据来预训练这个模型,数据规模达到了惊人的TB级别。这些数据涵盖了广泛的领域,使得模型能够学习到更多的语言知识和上下文信息。

自动并行计算技术

在训练过程中,利用了MindSpore的自动并行计算技术。自动并行,能够高效地在2048个Ascend 910 AI处理器上并行训练这个大规模模型。这种并行化策略包括数据并行、模型并行、管道模型并行、优化器模型并行以及重计算等多种方式,它们共同协作,使得训练过程更加高效和稳定。

PanGu-α的表现

进行了一系列的实验来验证其性能。在文本生成、对话生成等常见场景中,PanGu-α展现出了出色的生成能力。探讨了模型规模对少量样本学习性能的影响。实验结果表明,PanGu-α在广泛的中文NLP任务中都表现出了优越的性能。

 


 

PanGu-α与GPT-3在模型规模、层数、头数以及训练设置等方面的对比。与GPT-3相比,PanGu-α在模型规模上达到了200B,虽然层数相对较少,但头数较多。在训练过程中使用了更大的batch size和不同的学习率,以适应的模型和训练数据。

 

除了模型结构和训练设置外,还需要关注模型的并行策略。在PanGu-α的训练过程中,采用了多种并行策略来加速训练过程,包括数据并行、模型并行、流水线并行以及优化器并行。这些并行策略共同协作,使得能够在大量设备上高效地训练大规模模型。

 

在2048个Ascend 910 AI处理器上进行了并行训练,采用了MindSpore 1.3作为训练框架。在并行策略方面,使用了16个数据并行、8个模型并行、16个流水线并行以及16个优化器并行。这样的配置使得能够在保证模型质量的同时,大幅提高训练速度。

 

5.料清洗的工程化流程


在构建自然语言处理模型时,语料的清洗是非常关键的一步。需要从各种来源获取原始数据,包括采购的数据、开放数据以及合作方领域数据等。这些原始数据可能包含大量的噪音和无用信息,因此需要进行一系列的清洗步骤。

清洗阶段一

主要利用Hadoop+Spark大数据处理平台进行高效的数据处理。处理高达1T的原始数据,并在约2小时内得到约5GB的中文质量一般的数据。在这一阶段,会进行格式预处理,将数据转换为Jsonl格式,并初步制定清洗规则。

 

进入清洗阶段二

会进一步改进清洗规则,并训练模型来优化清洗效果。这一阶段可能包括脱敏过滤、样本间和样本内去重等操作,以提高数据集的质量。

 

在清洗阶段三

会先进行格式转化,将数据转为ison文件。然后利用fastText模型进行过滤,训练更细粒度的分类模型以过滤垃圾、广告和敏感内容。此外,还会利用大数据平台进行样本间去重,以及使用n-gram算法进行样本内去重。

 

在清洗阶段四

会使用语言模型进行ppl过滤,并人工抽样评估来确保数据质量。

 

二、200B模型训练过程

 

脑海是一个基于Transformer Decoder only结构的模型,其参数规模达到了200B。与GPT-3相比,它在层数、模型维度等方面有所不同,但在模型规模上已经达到了相当的水平。


在训练策略方面,脑海采用了多种并行策略,包括数据并行、模型并行、流水线并行等,以提高训练效率。此外,还采用了其他优化项,如位置编码、序列长度、批大小等,以优化模型的性能。

1.200B模型训练优化


这个模型是在Ascend 910 A型号的3456张卡上进行训练的,使用了MindSpore 2.0和2.1作为训练框架。在并行策略上,采用了算子级数据并行、算子级模型并行、流水线并行以及优化器并行等多种方式,这些并行策略的组合使用使得训练过程更加高效。

 

在训练过程中,针对序列长度、批大小等关键参数进行了优化调整。增大microsize,观察到训练效率有了显著提升。采用了细粒度重算Flash细粒度重1.0Attention算法,以及重算优化等策略,这些优化措施都有效地提高了训练效率。

2.语料配比


从单步迭代时间和训练效率的数据来看,的优化工作取得了显著成效。随着优化点的不断实施,训练效率逐步提升,单步迭代时间也在逐渐缩短。这些数据的改善直接反映了优化工作的有效性。

 

来对比一下200B模型在不同阶段的训练优化效率。从表格中看出,随着优化上新日期的推进,训练效率不断提升,达到了150.8%的提升率。这说明的优化工作是在持续进行并取得显著成效的。

 

 

3.优化训练效率


并行训练策略的配置

在深度学习训练过程中,为了充分利用硬件资源并加速训练过程,通常会采用多种并行策略。这些策略包括数据并行、模型并行、流水线并行等。数据并行主要是将数据划分到多个设备上进行并行处理,而模型并行则是将模型的不同部分分配到不同的设备上进行计算。流水线并行则允许在不同的设备上同时处理模型的不同层,从而进一步提高训练效率。

 

 

配置重算来优化训练效率


重算是一种优化技术,重新计算某些中间结果来减少内存占用,从而允许使用更大的模型或更大的批次大小进行训练。在MindSpore中,使用network.recompute()函数来启用重算功能。此外,还配置选择性重算,即只对模型中的某些关键部分进行重算,以进一步平衡内存使用和计算效率。

 

以训练llama7B模型为例,在16卡Ascend 910A上进行实验,序列长度为4096,词表大小为125696。调整batch size、是否启用重算以及是否启用选择性重算等参数,观察到了不同的训练效率。实验结果显示,合理配置并行策略和重算技术,显著减少每步训练的时间,从而提高整体训练效率。

 

 

 

4.训练策略的配置


 

在深度学习领域,随着模型规模的扩大,单个设备往往无法满足计算需求,因此需要利用多台设备协同工作,这就是分布式训练。分布式训练能够显著提高训练速度,加速模型的收敛过程。

 

 

分布式训练有多种并行策略

包括数据并行、模型并行和流水线并行等。数据并行是指将数据集划分成多个子集,每个子集在不同的设备上并行处理;模型并行则是将模型的不同部分分配到不同的设备上;流水线并行允许不同的设备同时处理模型的不同层。

在脑海200B模型训练中,预期使用约3500张卡进行训练。为了高效利用这些资源,需要进行分布式并行配置。配置的关键在于确定每个流水线阶段的设备数量以及每层的并行策略。


 

例1

如果选择每阶段使用128张卡,那么整个流水线将分为约27个阶段。在这种情况下,可能需要根据模型的不同部分来配置不同的层数,如3~43、3、3…、4、4、3等。同样地,如果选择每阶段使用256张卡或192张卡,流水线的阶段数和每层的配置也会有所不同。

重算是一种优化技术,重新计算某些中间结果来减少内存占用,从而允许使用更大的模型或更大的批次大小进行训练。在鹂城·脑海200B模型训练中,根据模型的不同部分和层数来配置细粒度的重算策略。

例2

对于某些线性输入层,可能选择不进行重算,以保持计算的准确性。而对于注意力机制中的某些层,根据需要进行重算配置。具体的配置方式取决于层的类型和模型的结构。

 

 

5.大集群+大模型稳定性保障

在大规模集群上进行大模型训练时,稳定性是一个非常重要的考量因素。为了确保训练的顺利进行,需要从多个方面入手


在集群稳定性方面,需要关注作业调整次数、卡数、故障中断次数以及集群使用总时长等指标。优化集群配置、提升硬件性能、减少故障中断次数,提高集群的稳定性,从而确保大模型训练的顺利进行。

算法健壮性也是保障训练稳定性的关键因素。采用混合精度训练、优化模型结构、调整学习率等策略,提升算法的健壮性,减少训练过程中的中断次数。

 

在故障恢复优化方面,采取了多种措施来缩短故障恢复时间。例如,优化模型保存间隔、提升任务失败发现和恢复的速度,快速恢复训练状态,减少因故障导致的损失。

 

6.脑海模型

脑海模型是一个复杂而庞大的模型,其训练和应用涉及多个阶段和环节。


数据预处理阶段,包括数据分级、数据清洗、脱敏、过滤样本、去重和质量评估等步骤。精心处理数据,提高模型训练的效果和准确性。

接着是模型预训练阶段,调优参数和策略,得到一个性能良好的预训练模型。然后,在微调(SFT)阶段,基于大量高质量的指令数据对模型进行微调,以增强其识别指令和泛化能力。

 

在对齐(RLHF)阶段,致力于让模型与社会主义核心价值观对齐,生成合规的内容。采用强化学习等技术,实现模型与人类反馈的交互,进一步提升模型的性能。

 

在模型部署和应用阶段,关注模型的质量评测、压缩、知识蒸馏和在线部署等方面。优化模型结构和算法,实现模型的快速部署和高效应用。

 

三、模型的开源和应用

1.基于人机协作的大模型数据工程


聚焦大模型数据工程中的关键步骤。在这个过程中,人机协作起到了至关重要的作用。首先要对原始数据进行处理,包括数据归类、人工标注等,以便为后续的训练和推理提供高质量的数据集。接着,会利用格式化、归一等手段对数据进行预处理,以确保数据的一致性和可比性。在此基础上,进行数据的去重和质量评估,进一步提升数据的纯净度和有效性。

 

 

在数据增强阶段,采用一系列策略来扩充数据集,提高模型的泛化能力。这包括但不限于对数据的变换、扰动和生成新的样本。同时,会对增强后的数据进行质量评估,确保其满足训练要求。


在整个数据工程流程中,注重数据的隐私保护和合规性。脱敏过滤和样本去重等手段,确保数据的安全性和合法性,避免任何潜在的隐私泄露风险。

 

脑海开源创新的相关内容。脑海作为一个开源的大模型平台,致力于推动人工智能技术的普及和发展。在今年的9月21日,脑海正式启程,为全球的开发者提供了一个开放、共享的大模型平台。


 

这个平台,方便地获取到各种预训练好的大模型,以及相关的工具和资源。同时,也鼓励开发者们基于这些模型进行二次开发和创新,形成面向垂直领域的大模型应用。

 

 

2.脑海大模型开源开放与算力网的应用


脑海大模型作为的一项重要成果,其开源开放的策略旨在吸引更多的产学研界人士参与到通用大模型的研究与应用中。模型训练全流程的开源开放,成功将脑海200B模型培育为算力网上的一个种子应用。这意味着的模型不仅具有强大的性能,而且能够与全国各地的算力中心进行互联互通,为更多的用户提供高质量的算力服务。

 

在这个过程中,中国算力网发挥了关键作用。作为中国首个算力调度平台,它实现了全国24个异构算力中心的互联互通,为近4万用户提供了超过200万卡时的算力服务。这使得的脑海大模型能够在更广泛的范围内得到应用,并推动国产智能软硬件生态的发展。

3.鹏城启智开源开放AI社区


鹏城启智开源开放AI社区是为推动AI技术的发展而搭建的一个平台。在这里,提供了AI协同开发环境以及“中国算力网”的初始算力调度平台。这个平台,全国的用户都方便地获取到模型算法的开源代码以及算力资源。

大模型基地作为社区的一个重要组成部分,为提供了一个共享和交流的场所。在这里,共同研究大模型的最新技术,分享各自的经验和成果。同时,还提供了一系列相关工具系统,帮助用户更好地利用大模型进行各种应用开发。

 

4.启智社区的大模型科学问题开源研究计划


为了更好地推动大模型技术的发展,启动了启智社区的大模型科学问题开源研究计划。这个计划旨在根据脑海大模型的研发实践,持续发布开放研究问题,并形成一个大模型开源研究社区。

在这个社区中,将汇聚群智力量,共同研究大模型的共性关键技术,并促进技术的迭代创新。将关注数据质量评估与缺陷检测、大模型训练过程版本演化分析、模型学习速度优化等多个方面的问题,并开源社区的形式,让更多的人参与到这些问题的研究中来。

 

5.智能协作平台(OPENL启智)

 

在这个工程中,人机协作扮演着至关重要的角色。原始数据的处理,包括数据归类、人工标注等,都是为后续的训练和推理提供高质量数据集的关键步骤。格式化、归一等预处理手段,确保数据的一致性和可比性。同时,数据的去重和质量评估也必不可少,它们能进一步提升数据的纯净度和有效性。


而在数据增强阶段,利用一系列策略来扩充数据集,增强模型的泛化能力。这包括但不限于对数据的变换、扰动以及生成新的样本。这些增强后的数据会再次经过质量评估,确保它们满足训练要求。

在整个数据工程流程中,始终注重数据的隐私保护和合规性。脱敏过滤、样本去重等手段,确保数据的安全性和合法性,从而避免任何潜在的隐私泄露风险。

脑海开源创新的相关内容。脑海作为一个开源的大模型平台,致力于推动人工智能技术的普及和发展。它为广大开发者提供了一个开放、共享的大模型平台,使大家方便地获取到各种预训练好的大模型以及相关的工具和资源。

这个平台不仅提供了丰富的模型资源,还鼓励开发者们基于这些模型进行二次开发和创新,形成面向垂直领域的大模型应用。此外,脑海还与多家单位合作,共同推进大模型技术的研发和应用,为人工智能技术的发展注入了新的活力。


基于中国算力网的脑海大模型部署是未来发展的重要方向之一。与各地的智算中心合作,将脑海大模型部署到实际的生产环境中,为各种应用场景提供强大的智能支持。

这是一个探索更好人工智能技术的协作平台,提供了AI流水线、代码托管、数据集管理、模型管理等功能。这个平台,与全球的开发者们一起交流、学习、合作,共同推动人工智能技术的发展。

 

在Openl启智社区中,你找到各种与人工智能相关的项目、学习资源以及社区活动。无论你是初学者还是资深开发者,都在这里找到属于自己的成长空间。


大模型数据工程和脑海开源创新是推动人工智能发展的重要力量。人机协作和数据驱动的方式,不断提升模型的性能和泛化能力,为人类社会带来更多的创新和价值。同时,Openl启智社区平台也为提供了一个交流、学习、合作的绝佳平台。

希望今天的讲解能够让大家对基于人机协作的大模型数据工程以及脑海开源创新有更深入的了解。感谢大家的聆听,期待与大家在未来的学习和合作中共同进步!

 

 

 

 

 

本文参与华为云社区【内容共创】活动第26,

任务4: 昇思MindSpore技术公开课 大模型专题(第二期)第七讲脑海模型的训练过程

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。