如何加快大模式开发技术方案解体:昇思MindSpore技术一览-量子比特,
- 时间:
- 浏览:0
随着ChatGPT的爆发热潮,它从22年底一直持续到23年初。与以往的技术创新不同,此次大模式不仅得到了技术界的支持,也得到了投资界、产业界和大众消费者的支持,成为史上最快的月度过亿现象级应用,引发了全球科技巨头AI大赛。
大模型的高智能化离不开模型的大规模预训练,但其背后需要强大的AI框架的底层支持。面对拥有千亿级参数的大模型,如何才能让更多的开发人员和用户进行开发,在当前大模型研究争分夺秒时转弯超车?然后,按照大模型技术的方案进行分解,探索昇思MindSpore AI框架的技术能力。
大规模预备训练——GPT3和鹏程。盘古
2020年,祭奠了远远超过同期所有预备训练模式的大杀器GPT3。1750亿参,300B令牌的预训练,GPT3显示了非常强大的自然语言处理能力,如下所示。
文本生成—根据Prompt更新(完成)语句。上下文学习-根据给定任务的几个示例生成新的测试用例解决方案。世界知识(World Knowledge):包括事实知识和常识。此时的GPT3和同级的大规模预训练语言模式仍然是国内外不可逾越的一座大山。2021年4月,基于昇思MindSpore AI框架的多维自动混合并行能力,以鹏城实验室为首的联合科研团队在大规模AI计算力平台鹏城云脑II上,培训了行业首个2000亿参数、以中文为核心的预训生成词模型鹏程。盘古。团队从开源开放数据集、common crawl网页数据、电子书等收集了近80TB的原始数据,构建了面向大型语料库预处理的分布式集群,通过数据清洗过滤、去重、质量评价等处理流程构建具有约1.1TB大小的高质量的语料库数据集,并且统计Token数为约250B。
在与GPT3相同的参数量下,鹏程.预训练模型具有不亚于GPT3的上下文学习和全球知识能力。
昇思利用MindSpore AI框架的自动并行能力,开发人员只需一行代码就可以实现模型的自动切分、分布式并行计算,省去了大量复杂的设计,在大集群中有效训练千亿至万亿的参数模型。昇思关于MindSpore的自动并列能力,在这里先按表,看看下面的技术要素。
思考链的必由之路--代码预训练
思维链(Chain of Thoughs,即链思维推理)是大模式能够具有拟人化对话能力的关键。GPT3之后,思维链能力开始被认为是由few shot learning激发的,后来有“lets think step by step”的zero shot prompt又触发了它的能力。然而,此时的大模型仍然局限于对各种数据集显示弱的思维链能力。
在代码数据预训练模型出现并纳入自然语言预训练模型之前,大模型的思维链接能力将跳转到一个新的步骤。下图是GPT3以来的进化路线图。左边的分支继续代码大模型的进化,直到code-davinci-002融合LM和Code训练,再加上instruct tuning,最终产生了众所周知的ChatGPT。
2022年9月,清华大学团队在昇思MindSpore1.7的基础上开发了CodeGeeX码预训练大模型,使用鹏城实验室的大规模AI计算力平台(鹏城云脑II)进行训练。CodeGeeX的培训词汇由两部分组成:第一部分为开源代码数据集,The Pile和CodeParrot,第二部分为补充数据,从GitHub开源仓库直接获取Python、Java、C++代码。整个代码素材共有23种编程语言,共包含1587亿个标识符(不含填充物)
在开发和训练过程中,清华大学与昇思MindSpore团队深入合作,实现了单元素算子融合、层归一化算子融合、FastGeru与矩阵乘法融合、批量矩阵乘法与加法融合等一系列算子融合优化,训练速度有了显著提高。
推动人类的智慧——RLHF和PPO
ChatGPT惊人的能力在于,它实际上可以拟人化地进行对话,生成内容更符合人类的认知和价值观。当大模型已经具备足够的世界知识、语境学习能力和思维链能力时,可以在各大NLP数据集上继续排名,但仍然存在与人类表达习惯差异较大的问题。作为ChatGPT的前身的InstructGPT显示了在人类反馈加入模型训练的周期中,RLHF(Reinforcement Learning from Human Feedback,即使用人类反馈的强化学习)出现的大的变化。
RLHF技术主要分为以下四个步骤:
1、无监督预训练:对GPT3等语言模型进行预训练。
2、监测的微调:生成一系列Prompt,并对每个Prompt进行人类反馈。一组培训数据。接下来,我们将对预先训练好的模型进行微调。
3、训练“人反馈”的奖励模式:建立奖励模式,评价预备训练语言模式输出。首先给出一组Prompt,机器生成这些指令的Answer,并由人类评估或排名其质量。使用此数据集训练奖励模型,并将质量分数输出给任何一对。
4、根据奖励模式训练优化的强化学习策略。
下图是RLHF核心PPO算法的示意图:
图3PPO算法逻辑
对于RLHF所需的强化学习算法,昇思MindSpore进行了部署,发布了MindSpore Reinforcement Learning套件,为描述强化学习算法提供了简洁的API抽象,并对算法、部署和调度进行了解压缩将增强学习算法转换为一系列编译后的计算图,然后通过MindSpore AI框架在升腾AI处理器、CPU和GPU上有效地操作。目前,MindSpore Reinforcement Learning套件提供以下功能:。
1、提供丰富的强化学习算法:目前已支持15+经典强化学习算法,涵盖Model-free/Model-based/Offline-Rl/Imitation Learning、单智能体/多智能体、连续/离散工作空间、Episodic/Non-Episodic等算法,Mujoco、MPE、StarCraft2、访问常见的模拟环境,例如DeepMind Control。
2、专注于高性能训练:通过计算图和ReplayBuffer加速、异步环境并行和高性能领域的组件,支持的算法平均吞吐量比主流帧提高了120%。
3、支持大规模的分式训练:通过将强化学习算法划分为多个数据流片段(Fragmented Dataflow Graphs)并映射到异构设备上高效运行,与行业主流框架相比,实现了3-5倍的性能提升。
昇思随着MindSpore能源大模式的步伐AI技术的发展,备训大模式成为世界各科技强国竞争的焦点。预训练大模型率先在自然语言处理领域取得了划时代的进展,迅速扩展到图像、视频、图形、语言等跨媒体推理的各种任务和大量商业应用中,显示出巨大的发展潜力。近年来,产业界在昇思MindSpore的基础上推出了一系列具有影响力的大模式。下面的图是这些大模型的训练时间轴。
△图4图昇思是MindSpore大模型的步伐
上图的模型结构涉及Transformer Encoder、Transformer Decoder、MOE,甚至Clip和Diffusion,均基于昇思MindSpore AI框架训练。
昇思MindSpore丰富的并行能力,可以轻松完成4096卡集群,参数规模的培训任务兆,因此支持国内众多大模式培训的第一大模式,这些大模式包括知识、知识搜索、知识推理、阅读、文本/视觉/语音多模态,生物制药,遥感,代码生成等
在整理了作为大模型基础的昇思MindSpore的分布式并行能力ChatGPT的技术和昇思MindSpore的大模型的步伐之后,进一步挖掘支撑大模型的MindSpore的AI框架的中心的分布式并行能力。
分布式培训
MindSpore开发了一套自动混合并行解决方案,支持当前主流的分布式培训模式,并提供以下关键技术:。
1、数据切片预处理:将训练数据分为任意维,然后将其部署到设备中进行训练。
2、运算符级并行性:独立建模前向网络中的每个运算符,每个运算符可以有不同的分割策略。
3、优化程序并行:在多个设备上断开数据并行参数的副本,以节省内存占用。
4、Pipeline并行:将神经网中的计算图划分为几个阶段(Stage),再将阶段映射到不同的设备,就像不同的设备计算神经网的不同部分一样;
5、MOE并行:每个专家都会为不同的专家分配专用的计算任务,他们可以在不同的设备上托管。
6、复数复数复制并行:在迭代步骤,将训练batch分割为复数micro-batch,并行模型进行通信和计算;
7、异构并行:将运算符分配到异构硬件上运行,充分利用硬件资源,提高整体训练吞吐量;
8、正向重新计算:正向计算时,不是保存占用大量内存的中间输出结果,而是保存占用少量内存的输入;反向计算基于输入重新计算正向输出,大大减少了正向计算累积内存峰值。
9)全局内存复用:静态编译计算图表以获得最佳内存复用策略。
昇思与行业深度学习框架和分布式并行框架相比,MindSpore在分布式关键技术方面具有广泛的支持能力、高度的自动化和易用性。
1、支持的模型种类丰富(Transformer、超分割图像、复制等),通用性提高了。
2、在同样的计算能力和网络下,丰富的并行策略可以实现更高的性能(同样的硬件平台(V100,A100),15%的Megatron以上的性能更大的通信比计算;
3、并行战略丰富,无需手动切割,大型号的开发和行业更优的效率调整;
分布式推理
推论与其说是训练,不如说是计算性能。如何在集群上实现高效快捷的大模型推理,是当前各种框架研究的一个重点和难度。为了解决上述问题,MindSpore提出了一种分布式推理+增量推理的解决方案,使用数据并行、模型并行、流并行等多维混合,在大集群上进行推理。此外,由于Transformer Decoder类的自回归语言模型,传统的推理模式有很多迭代计算。“昇思”MindSpore提供的增量推理能力省去了这些迭代计算,提高了推理效率。
△图5增量推理流程图
如上图所示,第一阶段使用完全输入推理来保存与当前单词(词)相对应的向量。在第二阶段,输入只是把前一步推理得到的字(词),然后把书的步骤推理得到的向量和保存下来的前一顺序向量连接起来,作为书的步骤推理的完整向量,得到书的步骤输出字(词)我重复这个。
非常简单的大模型培训-大模型套件在现有的大模型开发过程中,用户常常发现基于SOTA的模型代码不是模块化的,会影响进一步的创新开发。不仅如此,用户在模型实施中往往找不到相应的SOTA模型或相应的下游任务,这会延长开发时间,影响论文和项目的进展。为了解决这样的烦恼,以昇思MindSpore为基础的大型模型配套元件MindSpore Transformers登场了。
MindSpore Transformers是一款基于昇思MindSpore的深度学习大模型开发套件,旨在打造大模型培训、微调、评估、推论和部署的全流程。