如何加速大模型开发?技术方案拆解来了:昇思MindSpore技术一览

随着ChatGPT爆火出圈,狂飙之势从22年底持续到23年初,与以往的技术突破不同的是,此次的大模型不仅被技术界关注,而且备受投资界、产业界和大众消费者的追捧,使它成为历史上最快月活过亿的现象级应用,继而引发全球科技巨头的AI竞赛。

大模型的高智能化离不开对模型的大规模预训练,这背后需要强大的AI框架作底层支持。面对动辄千亿级参数的大模型,如何使能广大开发者和用户进行开发,在当前大模型研究分秒必争之时弯道超车?且让我们顺着大模型技术的方案拆解,一探昇思MindSpore AI框架的技术能力。

预训练大模型的开发之路

大规模预训练——GPT3与鹏程.盘古

2020年,OpenAI祭出了远超同期所有预训练模型的大杀器GPT3。凭借着1750亿参数量,300B Token的预训练,GPT3展现出非常强悍的自然语言处理能力,包括:

  • 文本生成:根据Prompt来续写(补全)句子。

  • 上下文学习(In-context Learning): 遵循给定任务的几个示例,然后为新的测试用例生成解决方案。

  • 世界知识(World Knowledge): 包括事实性知识和常识。

此时与GPT3同量级的大规模预训练语言模型仍是国内外难以逾越的大山。2021年4月,基于昇思MindSpore AI框架的多维度自动混合并行能力,以鹏城实验室为首的联合科研团队在大规模AI算力平台鹏城云脑II上,训练出业界首个2000亿参数、以中文为核心的预训练生成语言模型鹏程.盘古。联合团队从开源开放数据集、common crawl网页数据、电子书等收集了近80TB原始数据,搭建了面向大型语料库预处理的分布式集群,通过数据清洗过滤、去重、质量评估等处理流程,构建了一个约1.1TB大小的高质量中文语料数据集,经统计Token数量约为250B规模。

凭借着与GPT3相同量级的参数量,鹏程.盘古预训练模型拥有不逊于GPT3的上下文学习和世界知识能力。

f4333254b5b7d568615f286e6b73e129.png
图1 鹏程.盘古模型架构

利用昇思MindSpore AI框架的自动并行能力,开发者只需一行代码就能实现模型自动切分、分布式并行计算,省却大量复杂设计,在大集群上高效训练千亿至万亿参数模型。关于昇思MindSpore的自动并行能力,这里先按下不表,让我们继续看下一个技术要素。

思维链的必经之路——Code预训练

思维链(Chain of Thoughs,即链式思维推理)是大模型能够拥有拟人化对话能力的关键。在GPT3之后,思维链能力开始被认为是通过few shot learning进行激发,后续有“lets think step by step”的zero shot prompt进一步触发了该能力。但是此时的大模型仍旧仅限于在各类数据集上呈现弱思维链能力。

直到代码数据的预训练模型出现并融入到自然语言预训练模型中,大模型的思维链接能力跃上新的台阶。下图是OpenAI从GPT3以来的演进路线图。左侧的分支是代码大模型的持续演进,一直到code-davinci-002将LM和Code训练进行融合,再加入instruct tuning,最终催生出耳熟能详的ChatGPT。

60b85e5e85f90f5553fba7c5f03e8b3b.png
图2 ChatGPT演进路线

2022年9月,清华大学团队基于昇思MindSpore 1.7研发了CodeGeeX代码预训练大模型,并使用鹏城实验室的大规模AI算力平台(鹏城云脑II)进行训练。CodeGeeX的训练语料由两部分组成:第一部分是开源代码数据集,The Pile与CodeParrot;第二部分是补充数据,直接从GitHub开源仓库中爬取Python、Java、C++代码。整个代码语料含有23种编程语言、总计1587亿个标识符(不含填充符)。

在开发与训练过程中,清华大学与昇思MindSpore团队深度合作,实现了一系列算子融合优化,包括单元素算子融合、层归一化算子融合、FastGelu与矩阵乘法融合、批量矩阵乘法与加法融合等, 为训练速度带来了显著提升。

撬动人类的智慧——RLHF与PPO

ChatGPT令人震惊的能力在于其能够真正拟人化地进行对话,生成内容更加符合人类的认知和价值观。在大模型已经具备充足的世界知识、上下文学习能力和思维链能力的情况下,虽然可以在各大NLP数据集持续刷榜,但是仍旧存在一个问题——与人类的表达习惯差异巨大。而ChatGPT的前身InstructGPT,向我们展示了人类反馈加入模型训练的循环当中,所能呈现的巨大改变,那就是RLHF(Reinforcement Learning from Human Feedback,即使用人类反馈强化学习)。

RLHF技术主要分为如下4个步骤:

1) 无监督预训练: 预训练一个语言模型如GPT-3。

2) 有监督的微调:生成一组Prompt,以及对每个Prompt的人类反馈。即一个由对组成的训练数据集。然后对预训练的模型进行微调。

3) 训练“人类反馈”的奖励模型:建立一个奖励模型,对预训练语言模型输出进行评分。首先给定一组Prompt,机器生成对这些指令的Answer,并由人类对其质量进行评分或排名。使用这个数据集来训练一个奖励模型,为任何对输出一个质量分数。

4) 训练一个基于奖励模型进行优化的强化学习策略。

下图是RLHF的核心PPO算法的示意图:

5cfa389514df4f913de0d2aafa4f925d.png
图3 PPO算法逻辑

针对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先后发布了一系列有影响力的大模型,下图为这些大模型的训练时间轴。

a89481654369ab242c9650fb564f9b83.png
图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、超分图像、推荐等),通用性更强,而像业界Megatron框架则是面向Transformer定制的框架;

2)相同算力和网络下,丰富的并行策略可实现更大的计算通信比,性能更优(相同硬件平台(V100、A100),性能超越Megatron 15%);

3)并行策略丰富,无需手动切分,大模型开发和调优效率优于业界;

分布式推理

相较于训练,推理对计算性能的要求更高。如何在集群上实现高效快速的大模型推理,是目前各种框架研究的一个重点和难点。为了解决上述问题,昇思MindSpore提出了分布式推理+增量推理的解决方案,使用数据并行、模型并行、流水并行等多维度混合并在大集群上面进行推理。此外,由于Transformer Decoder类自回归语言模型,在传统的推理模式下存在很多重复计算,昇思MindSpore提供的增量推理能力能够省掉这些重复计算,增强推理效率。

581a4221f618f31d6d9b348af0c960ca.png
图5 增量推理流程图

如上图所示,第一阶段将使用完整输入推理,保存当前字(词)对应的向量。在第二阶段,输入仅为上一步推理得到的字(词),然后将本步推理得到的向量与保存下来的前序向量拼接,作为本步推理的完整向量,得到本步的输出字(词)。重复以上两个阶段。

极简易用的大模型训练——大模型套件

在现有的大模型开发过程中,用户经常会发现SOTA基础模型代码非模块化从而影响进一步的创新开发。不仅如此,用户在模型实现中,经常找不到对应的SOTA模型以及相应的下游任务,从而加长了开发周期,影响论文或项目的进度。为了解决这些痛点,基于昇思MindSpore的大模型套件——MindSpore Transformers应声而出。

MindSpore Transformers是基于昇思MindSpore的深度学习大模型开发套件,其目标是构建一个大模型训练、微调、评估、推理、部署的全流程开发套件。套件覆盖了CV、NLP等AIGC的热门领域,提供模型生命周期中的全流程快速开发能力,支持开箱即用,并具有四个特点:

  • MindSpore Transformers中提供了非常丰富的预置模型,包含了当下典型的预训练大模型(Bert、T5、VIT等),涵盖当下CV、NLP等AIGC的热门领域。同时,套件也包含了丰富的下游微调任务,精度与SOTA基本持平。

  • MindSpore Transformers中提供了统一的开发范式。套件开放了Trainer、pipeline等特性接口,实现模块化、配置化的开发,大大提高典型模型(尤其是基于transformer结构的网络)的开发效率。模型部署方面, 套件支持昇腾AI基础软硬件平台,提供了一键云上部署接口。

  • MindSpore Transformers提供了统一的对外接口。在现有版本中,套件和业界流行的Huggingface 接口保持一致,用户可以一键切换,从而极大地降低代码迁移的成本。

  • MindSpore Transformers套件天然包含昇思MindSpore AI框架自身优势,包含多维度并行(模型并行、流水线并行、优化器并行、多副本并行等)、图算融合等能力,可以在模型训练时有效地提升内存使用效率和速度,帮助用户快速训练百亿、千亿甚至是万亿级别的模型。

a44054dde7af0c3a52225d5c91138937.png
图6 MindSpore Transformers 架构图

通过以上技术拆解和案例可以看出,昇思MindSpore发展至今,已经具备了支持大模型开发所需的各项核心技术,同时提供了一整套高效、易用的大模型使能套件,形成了端到端的使能大模型开发能力。昇思MindSpore AI框架为助力大模型创新、繁荣AI产业生态铺就了一条信心之路。

3c7394982170560f3b326ad077007822.jpeg
图7 昇思MindSpore原生支持大模型的能力优势

欢迎使用昇思MindSporeAI框架:
https://mindspore.cn/
https://gitee.com/mindspore/mindformers

引用:
[1]Zeng W, Ren X, Su T, et al. Large-scale Autoregressive Pretrained Chinese Language Models with Auto-parallel Computation[J]. arXiv preprint arXiv:2104.12369
[2]https://yaofu.notion.site/GPT-3-5-360081d91ec245f29029d37b54573756
[3]https://huggingface.co/blog/rlhf
[4] https://aijishu.com/a/1060000000222564
[5]https://gitee.com/mindspore/mindformers/wikis/%E7%89%B9%E6%80%A7%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/37723.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python项目:基于爬虫+Flask实现招聘岗位数据分析与可视化

在 基于爬虫Flask实现豆瓣电影Top250数据分析 的基础上,进一步实战,开发出本项目 基于爬虫Flask实现的招聘岗位数据分析与可视化,干货多多,也学到了很多的东西。 文章目录 1、项目简介:2、成果展示:3、后台展示4、项目总结: 1、项目简介: 项目主要是对招聘网站 51job 上的招聘信…

微信小程序输入框字数限制以及计算

wxml代码如下: <textarea class"textarea-bg font_s33 font_c31" id"information" maxlength150 placeholder"请输入遇到的问题或建议" name"information" value"{{information}}"bindinput"getDataBindTap"&…

百度推出可24时直播带货的AI数字人

我是卢松松&#xff0c;点点上面的头像&#xff0c;欢迎关注我哦&#xff01; 前几天我还说做直播太内卷&#xff0c;运营成本太高了呢&#xff0c;今天百度就推出了AI数字人&#xff0c;同时推出了曦灵数字人直播平台。它最大的特色功能就是&#xff1a; (1)有基础文本&#…

从开店营销到智能化私域运营,有赞发布人工智能引擎Jarvis

“以往在私域发起一场营销活动&#xff0c;从活动策划&#xff0c;到历史数据分析&#xff0c;再到内容排期&#xff0c;整个策划阶段往往需要一周以上的时间&#xff0c;而现在通过营销画布&#xff08;MA&#xff09;以及其中内嵌的人工智能能力&#xff0c;只需要30分钟不到…

小度助手和它背后的百度AI野望

乾明 发自 凹非寺量子位 报道 | 公众号 QbitAI 百度最近的一则高管晋升通告&#xff0c;反映出小度助手对百度的重要性不断提高。 最新一季财报刚结束&#xff0c;李彦宏一封内部信&#xff0c;将“小度助手”&#xff08;DuerOS&#xff09;负责人景鲲&#xff0c;晋升为公司副…

2023 最新 抖音AI换脸表情包小程序变现玩法项目

单条视频变现1万 普通人也能轻松玩转 表情包小程序变现在抖音的玩法一直越来越好&#xff0c;最近新出的AI换脸表情包玩法更有意思&#xff0c;可以预见的是这是一个有红利期的&#xff0c;短平快的项目&#xff0c;刚开始大家都会特别感兴趣&#xff0c;都会把自己的脸换到视…

【DuerOS开发日记】1.据说小度在等待帅的人把它唤醒

目录 【Minecode|开发日记】1.据说小度在等待帅的人把它唤醒 【Minecode|开发日记】2.打造属于自己的小度(1)&#xff1a;使用PythonSDK 【Minecode|开发日记】3.打造属于自己的小度(2)&#xff1a;小白小白&#xff01;——唤醒词替换 &#xff08;未完持更&#xff09; 写在前…

小度科技独立背后,百度开始和大家分享AI大蛋糕

9月的最后一天&#xff0c;小度放了个大招&#xff1a;智能生活事业群组&#xff08;SLG&#xff09;业务完成独立融资协议签署。 据悉&#xff0c;该轮融资战略领投方为百度资本及CPE领投&#xff0c; 跟投方为IDG资本。 一、小度科技独立&#xff0c;估值达200亿元 小度独…

李彦宏发布小度在家“解锁”中国家庭市场,被称作AI性价比之王

个人移动设备火了之后&#xff0c;差不多所有硬件相关行业都瞄准了下一个目标&#xff1a;家庭。 这一瞄&#xff0c;就是好多年过去了啊...... 无论是打着互联网旗号的各种大屏硬件&#xff0c;还是各种各样千奇百怪的“智能设备”。但几年的时间里&#xff0c;这些东西陆续进…

使用大型语言模(LLM)构建系统(三):思维链推理

今天我学习了DeepLearning.AI的 Building Systems with LLM 的在线课程&#xff0c;我想和大家一起分享一下该门课程的一些主要内容。 下面是我们访问大型语言模(LLM)的主要代码&#xff1a; import openai#您的openai的api key openai.api_key YOUR-OPENAI-API-KEY def get_…

某跨境出口电商APP参数解密

工具 jadxfrida-15.1.1charlespostman包名&#xff08;Y29tLmRoZ2F0ZS5idXllcm1vYg&#xff09; 抓包 使用postman测试发现以上参数只需要sign和deviceId两个参数&#xff1b; 看sign参数位数猜测可能是MD5&#xff0c;deviceId的形式类似于uuid4&#xff08;此处只是猜测&am…

海外跨境电商商城源码-进出口电商平台网站-多语言多商户平台

欢迎探讨&#xff0c;名片交流 一、海外跨境电商系统源码包括以下几个部分&#xff1a; 前端&#xff1a;React框架、Bootstrap 后端&#xff1a;Node.js&#xff0c;Express框架、NoSQL数据库 支付系统&#xff1a;Stripe、PayPal等主流支付平台 物流系统&#xff1a;DHL…

黑白照片上色变彩色?狂飙大嫂竟美成这样?人工智能太可怕了(11)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 如何利用人工智能API&#xff0c;给黑白图片上色。 智能识别黑白图像内容并填充色彩&#xff0c;使黑白图像变得鲜活。 我…

开发任务拆分方法

一、背景 任务总和应该能反馈为完成某个目标需要做的所有工作总量。WBS中也讲了很多分解的原则、标准和方法&#xff0c;但是在实际工作中&#xff0c;做任务拆分时候往往只看到了关键任务而忽略了其他细节&#xff0c;或者任务粒度过大&#xff0c;导致任务长时间处于执行中状…

多图详解WBS任务分解法

专业项目管理知识请点击下方关注项目管理精英 更多推荐 一位项目经理的深刻反思 项目经理如何正确使用鱼骨图&#xff1f; 从助理到总监&#xff0c;项目经理的成长之路 一图了解通俗易懂的项目管理 免责声明&#xff1a; 本公众号部分分享的资料来自网络收集和整理&am…

任务分解的五个步骤

近期有不少新同事入职&#xff0c;深感任务分解能力对职场新手太过重要&#xff0c;旧文再次分享。 以下正文&#xff1a; 写OKR&#xff08;Objectives and Key Results&#xff0c;是一套明确和跟踪目标及其完成情况的管理工具和方法&#xff09;深层次的问题就是掌握任务定…

使用腾讯tapd工具,进行创建迭代任务、任务拆解、、制定整体发布计划、多维度甘特图进度把控

举例操作1、创建迭代---》每一个项目可以有多个迭代任务&#xff0c;一般一个迭代任务时间安排可以保持在2周&#xff0c;敏捷开发2、创建任务 ---》创建任务时一定要关联迭代&#xff0c;这样后面甘特图才会将多维度项目进度才会展示出来 3、甘特图进度管理 视图切换有一下…

谷歌地球不能用了?我敢说大部分人不知道真实原因

Google earth 大家知道谷歌地球由于某些原因已经退出国内市场&#xff0c;但是一直以一种隐蔽的方式服务着大家&#xff0c;换句话说还是可以使用的。 但近日小编发现调用谷歌地球的国产地图软件统统不能用了&#xff1f;哪些软件我就不一一列举了&#xff0c;重点是为什么不…

地球周围的小行星,陨石。如何消除他们在未来对地球撞击而带来的灾难

我是在NASA网站上看到的关于2022年5月6日早上8点34分小行星会撞击地球的概念。而NASA推算出的概率是3800分之一。在此之前NASA就做过类似的研究&#xff0c;希望能用炸弹或者其他物质将其毁灭。但是&#xff0c;抱歉&#xff0c;就算小行星被炸飞&#xff0c;但他依旧是一个小行…

为什么入侵地球的总是火星人,是别的星球不够努力吗?

不知道大家是否注意过&#xff0c;在我们的小说、电影甚至音乐等流行文化中&#xff0c;提到外星人的具体形象&#xff0c;最常见的往往是“火星人”。那么金星人、木星人、水星人等为什么偏偏就不受地球人待见呢&#xff1f; 这其中不仅关系到火星距离地球较近&#xff0c;在夜…