解决大模型“开发难”,昇思MindSpore自动并行技术应用实践
本文分享自华为云社区《DTSE Tech Talk|第35期:解决大模型“开发难”,昇思MindSpore自动并行技术应用实践》,作者华为云社区精选。
昇思MindSpore是新一代覆盖端边云全场景的开源AI框架,旨在开创全新的AI编程范式,降低开发者门槛,为开发者打造开发友好、运行高效、部署灵活的AI框架,推动人工智能生态繁荣发展。同时,昇思在致力于大规模自动并行、科学计算支持等特性优化之外,还着力打造学习型社区环境,希望凝聚开发者力量共建社区,与开发者共同学习和成长。
昇思MindSpore自动并行技术的实际运用
昇思MindSpore具备丰富的并行能力,能轻松完成4096卡集群、万亿参数规模的训练任务,因此支撑了国内多个领域首发大模型的训练,这些大模型涉及知识问答、知识检索、知识推理、阅读理解、文本/视觉/语音多模态、生物制药、遥感、代码生成等。总共支撑20+大模型训练,6个千亿参数大模型,覆盖NLP、Audio、CV、多模态等领域。
数据并行
对数据进行切分的并行模式,一般按照batch维度切分,将数据分配到各个计算单元(worker)中,进行模型计算。而在 昇思MindSpore 中是用集合通信这个方式来实现的,利用到了 AllReduce 操作完成的梯度聚合部分。
模型并行
模型并行是算子层面的并行,它利用某些算子的特性将算子拆分到多个设备上进行计算。因此并不是网络中所有的算子都可以拆分计算,可以拆分的算子需满足两点:可以并行计算的算子;算子其中一个输入来自于Parameter。
Pipeline并行
受server间通信带宽低的影响,传统数据并行叠加模型并行的这种混合并行模式的性能表现欠佳,需要引入流水线并行。流水线并行能够将模型在空间上按stage进行切分,每个stage只需执行网络的一部分,大大节省了内存开销,同时缩小了通信域,缩短了通信时间。流水线(Pipeline)并行是将神经网络中的算子切分成多个阶段(Stage),再把阶段映射到不同的设备上,使得不同设备去计算神经网络的不同部分。
内存优化
1、重计算
在计算某些反向算子时,需要用到一些正向算子的计算结果,导致这些正向算子的计算结果需要驻留在内存中,直到依赖它们的反向算子计算完,这些正向算子的计算结果占用的内存才会被复用。这一现象推高了训练的内存峰值,在大规模网络模型中尤为显著。
如:
- Dropout
- Activations
2、优化器并行
在进行数据并行训练时,模型的参数更新部分在各卡间存在冗余计算,优化器并行通过将优化器的计算量分散到数据并行维度的卡上,在大规模网络上(比如Bert、GPT)可以有效减少内存消耗并提升网络性能。
传统的数据并行模式将模型参数在每台设备上都有保有副本,把训练数据切分,在每次迭代后利用通信算子同步梯度信息,最后通过优化器计算对参数进行更新。数据并行虽然能够有效提升训练吞吐量,但并没有最大限度地利用机器资源。其中优化器会引入冗余内存和计算,消除这些冗余是需关注的优化点。
昇思MindSpore分布式并行模式有哪些?
数据并行
用户的网络参数规模在单卡上可以计算的情况下使用。这种模式会在每卡上复制相同的网络参数,训练时输入不同的训练数据,适合大部分用户使用;
半自动并行
用户的神经网络在单卡上无法计算,并且对切分的性能存在较大的需求。用户可以设置这种运行模式,手动指定每个算子的切分策略,达到较佳的训练性能;
自动并行
用户的神经网络在单卡上无法计算,但是不知道如何配置算子策略。用户启动这种模式,昇思MindSpore会自动针对每个算子进行配置策略,适合想要并行训练但是不知道如何配置策略的用户;
混合并行
完全由用户自己设计并行训练的逻辑和实现,用户可以自己在网络中定义AllGather等通信算子。适合熟悉并行训练的用户。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Meta 发布开源 AI 工具 AudioCraft,文本自动生成音乐
Facebook 母公司 Meta宣布开源文本生成音乐工具 Audiocraft,该工具可以帮助用户根据文本提示创作音乐和音频。 Meta 表示,这款人工智能工具将 AudioGen、EnCodec 和 MusicGen 三种模型或技术融为一炉,可用文本内容生成高质量、逼真的音频和音乐。比如用文本就能生成鸟叫、汽车喇叭声、脚步等背景音频,或更复杂的音乐,适用于游戏开发、社交、视频配音等业务场景。 根据官网的介绍,MusicGen 接受过 Meta 拥有的和特别授权的音乐训练,可以从文本提示生成音乐,而 AudioGen 接受过公共音效训练,可从文本提示生成音频,比如模拟狗叫或脚步声;再加上 EnCodec 编解码器的改进版本,用户可以更高效率地生成更高质量的音乐。 总结就是,Audiocraft 由 MusicGen、AudioGen 和 EnCodec 三个模型组合而成: MusicGen是一个文本生成音乐的自回归语言模型,大约使用了40万份文本描述和元数据的录音,总计2万小时的授权音乐进行训练。可通过文本自动生成摇滚、流行、重金属、RPA等类型音乐。 AudioGen是一个文本生成...
- 下一篇
NSX 4.1中新的网络和高级安全功能介绍
我们很高兴地宣布VMware NSX 4.1全面上市,该版本为私有云、混合云和多云的虚拟化网络和高级安全提供了新功能。该版本的新特性和功能将使VMware NSX客户能够利用增强的网络和高级安全,提高运营效率和灵活性,并简化了故障排除的过程。 领先于威胁,保护我们的网络 01揭示每一个威胁 NSX 4.1引入了一项新功能,允许将IDS/IPS日志从NSX网关防火墙(GFW)发送到我们的网络检测和响应(NDR),这是VMware NSX高级威胁防御(ATP)的一部分。这项新功能是对我们现有的NSX分布式防火墙(DFW)的补充,后者将IDS/IPS日志发送到NDR已经有相当一段时间了。有了这个新功能,NSX 4.1客户可以更全面地了解网络活动,从而更快、更有效地应对威胁。通过分析GFW和DFW的IDS/IPS日志,结合我们的网络流量分析(NTA)和沙箱,我们的NDR系统可以关联事件并识别攻击模式,提供针对网络发起的威胁的完整图像。 02保护Windows11系统 NSX 4.1引入了针对Windows 11的 NSX Guest Introspection,为运行微软最新版操作系统的虚拟...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果