大模型 AI 框架昇思 MindSpore 2.3.RC1 发布,训练、推理性能大幅提升,JIT 编译强化

经过社区开发者们几个月的开发与贡献,现正式发布昇思 MindSpore2.3.RC1 版本,通过多维混合并行以及确定性 CKPT 来实现超大集群的高性能训练,支持大模型训推一体架构,大模型开发训练推理更简、更稳、更高效,并在训推一体框架的基础上通过多样的大模型推理优化技术,进一步降低大模型推理成本;通过使能 kernel by kernel 调度执行,进一步提升静态图调试调优能力;持续升级 MindSpore TransFormers 大模型套件和 MindSpore One 生成式套件,全流程开箱即用,一周即可完成大模型全流程的开发、验证;创新 AI + 科学计算(科学智能)范式,孵化科学领域基础大模型;下面就带大家详细了解下 2.3.RC1 版本的关键特性。

1、大模型训练:细粒度多副本并行,有效提升计算通信并发度,显著提升大模型训练性能

大模型训练下,为了降低显存开销,广泛的使用算子级并行技术,其中引入了大量的模型并行的通信,极大地影响了大模型的训练效率。模型并行的通信,从网络的结构上来看,其处于正反向计算过程中,阻塞正反向计算,无法与正反向的计算进行互相掩盖。为了解决模型并行通信的掩盖问题,MindSpore 提出了多副本并行技术。

在旧版本的 MindSpore 上,通过将网络从数据开始进行拆分,如下图所示,在单张卡内,通过 slice 算子将 Batch 维度进行拆分,进而产生多个分支,这多个分支的计算与通信互相之间没有依赖,存在并发的空间,通过执行序调度算法,控制多个分支的计算与通信进行并发。

随着网络规模的增大,受限于显存限制,当一张卡内的 BatchSize 仅支持为 1 时,上述对整网进行 Batch 拆分的方案不再可行。因此,考虑到模型并行通信的位置,昇思 MindSpore2.3.RC1 版本将 Transformer 模型中的 AttentionProjection 层以及 FFN 层进行拆分,产生多个分支,通过执行序调度算法控制细粒度的多分支的并行,其中拆分从 AttentionProjection 开始,到下一个 Layer 的 QKV 计算前结束。

上图描述了序列并行场景下的细粒度多副本拆分与掩盖基本思路,拆分为两个副本,在正向可以达成 50%+ 的通信掩盖;而在反向,结合计算梯度的分支的计算与 TP 通信的掩盖,可达成 90% 的通信的掩盖。当前细粒度多副本并行仅在 MindSpore Transformers 的 LLAMA 网络进行了实现,需要对模型结构进行手动改造为多个副本。后续版本昇思 MindSpore 将集成自动拆分副本的逻辑,达成更易用的细粒度多副本并行。

参考链接:https://www.mindspore.cn/tutorials/experts/zh-CN/master/parallel/multiple_copy.html

2、大模型推理全栈升级

大模型大规模商用之后,推理消耗的算力规模将十分庞大,相应地带来高昂的成本,商业闭环依赖推理规模突破。在降低大模型推理的成本的同时,要兼顾模型精度和计算时延,不能影响用户的体验。昇思 MindSpore 2.3.RC1 版本,从最上层推理服务到模型脚本优化到推理引擎 LLM Serving,为用户提供端到端的高效推理解决方案。

2.1 训推一体:大模型训 / 推统一脚本,大幅简化部署流程,提高效率

模型脚本默认使能了增量推理、FlashAttention/PagedAttention 等推理加速技术,避免了模型导出、切分、推理脚本开发等一系列工作,训练到推理加速平滑迁移,部署周期下降到天级。

2.2 极致性能:持续提升融合大算子、并行推理、模型小型化的关键能力

融合大算子:新增 10 + 业界最新的推理融合大算子接口,模型开发人员可以快速使能推理融合算子实现加速。

并行推理:训练推理并行策略接口一致,提供训练并行到推理并行 ckpt 重切分接口,支持动态 shape 模型切分。

模型压缩:昇思 MindSpore 金箍棒升级到 2.0 版本,提供了针对大模型的业界 SOTA 以及华为诺亚自研的量化、减枝等算法,实现千亿大模型 10 倍 + 压缩。

以上技术均可泛化的应用于 Transformer 结构的大模型中,经过验证,在盘古、Llama 2 的 8 卡模型推理中,首 token 时延做到百 ms 级,平均 token 时延小于 50ms,保持业界领先水平。

2.3 服务化高吞吐

通过连续批调度、Prefill/Decoding 混合部署等手段,尽可能的消除掉冗余计算,确保算力不闲置,实现大模型推理吞吐提升 2 倍 +。

参考链接:https://www.mindspore.cn/lite/docs/zh-CN/r2.3.0rc1/use/cloud_infer/runtime_distributed_python.html

3、静态图优化:支持 O (n) 多级编译,使能 kernel by kernel 调度执行,提升静态图调试调优能力

整图下沉执行性能最优,但大模型的规模和参数量发展得更为庞大,整图下沉执行方式在整图编译过程中耗时较长,一个千亿级别的大模型的编译时间为 30 分钟 - 60 分钟,调试调优效率低下。为解决上述问题,昇思 MindSpore2.3.RC1 版本中,提供了多级编译技术,O0 原生构图不优化、O1 增加自动算子融合优化、O2 整图下沉执行优化。在 O0 的编译选项下,通过原生图编译和 kernel by kernel(KBK)的执行技术,可以将编译时间提升到 15 分钟以内,同时我们在新版本中还开发了 DryRun 技术,用户可以直接在离线的情况进行内存瓶颈分析和并行策略调优,结合这两大技术可以使得大模型调试效率倍增。在 O0 这种编译条件下,我们使能了 SOMAS/LazyInline/ 控制流 Inline 来提升内存复用率,使能了多流并行 / 流水异步调度,可以提升执行性能;在 O1 这种编译条件下,通过使能算子融合技术,KBK 执行模式下可以有更好的执行性能。

参考链接:https://www.mindspore.cn/docs/zh-CN/r2.3.0rc1/api_python/mindspore/mindspore.JitConfig.html?highlight=jitconfig

4、JIT 兼具易用性和性能,动静统一,提供灵活高效开发

昇思 MindSpore 支持图模式(静态图)和 PyNative 模式(动态图)两种运行方法。动态图易于调试,开发灵活,易用性好;静态图语法支持有限,但执行性能好。JIT 兼顾性能和易用性,通过对 Python 字节码进行分析 & 调整、执行流进行图捕获 & 图优化,支持入图的 Python 代码做静态图方式执行,不支持的进行子图切分以动态图方式执行,自动地做到动静统一,实现方法如下图所示。

参考链接:https://www.mindspore.cn/docs/zh-CN/r2.3/design/dynamic_graph_and_static_graph.html#%E5%8A%A8%E6%80%81%E5%9B%BE%E8%BD%AC%E9%9D%99%E6%80%81%E5%9B%BE%E6%8A%80%E6%9C%AF

5、MindSpore Elec:新增大地电磁智能反演模型

MindSpore Elec 电磁仿真套件升级至 0.3 版本,联合清华大学李懋坤教授团队、华为先进计算与存储实验室共同打造了基于昇思 MindSpore 的大地电磁(Magnetotelluric,MT)智能反演模型。该模型通过变分自编码器(VAE)灵活嵌入了多物理先验知识,达到了业界 SOTA。该成果已被国际顶级勘探地球物理期刊《Geophysics》收录,同时也在昇思人工智能框架峰会 2024 上发布亮相。

(1)基础 MT 反演:反演区域水平长度为 10km,深度为 1km。下图 1 中目标电阻率分布(第一列)与传统大地电磁反演(第二列)、大地电磁智能反演(第三列),可以看出大地电磁智能反演相比传统反演精度显著提升(前者残差为 0.0056 和 0.0054;后者为 0.023 和 0.024 );下图 2 中,大地电磁智能反演性能也优于传统反演方法(前者收敛步数为 4 和 4;后者为 6 和 4)。

图 1 大地电磁反演精度对比

图 2 大地电磁反演收敛速度对比(Pixel-based:传统反演;Feature-based:我们的工作)

(2)南部非洲 MT 反演:大地电磁智能反演模型也在南部非洲开源数据集(SAMTEX)上做了验证。该反演区域位于南部非洲西海岸附近,长度约为 750km,深度选定为 80km。该测区显著特征为在水平方向 100km 至 400km 之间,深度 20km 以浅的区域存在的高导结构。由于低频电磁波在导体结构中的衰减,MT 方法对高导结构下部区域的敏感度很低,因此无先验知识约束的传统 MT 反演难以准确重建高导地层的下边界位置。大地电磁智能反演对高导地层的下边界重建较为清晰准确,较好地将地层厚度的先验知识融入了反演。

图 3 南部非洲 MT 反演示例图(上图:传统反演;下图:我们的工作)

参考链接:mindscience: MindScience is scientific computing kits for various industries based on the converged MindSpore framework. - Gitee.com

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第46题全排列

题目: 题解: func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

Navicat和MySQL的安装、破解以及MySQL的使用(详细)

1、下载 Navicat Navicat 官网:www.navicat.com.cn/ 在产品中可以看到很多的产品,点击免费试用 Navicat Premium 即可,是一套多连数据库开发工具,其他的只能连接单一类型数据库 点击试用 选择系统直接下载 二、安装 Navicat 安…

wsl2 中docker安装完毕后无法正常启动

wsl2 中docker安装完毕后无法正常启动 1、背景2、目标3、环境4、原因4、操作5.1、查看配置5.2、 切换配置5.3、启动docker5.4、验证docker 1、背景 在win10中安装wsl2体验linux操作系统,按照docker官网步骤安装,安装完毕后面提示 $ docker ps Cannot co…

ChatGPT实战100例 - (18) 用事件风暴玩转DDD

文章目录 ChatGPT实战100例 - (18) 用事件风暴玩转DDD一、标准流程二、定义目标和范围三、准备工具和环境四、列举业务事件五、 组织和排序事件六、确定聚合并引入命令七、明确界限上下文八、识别领域事件和领域服务九、验证和修正模型十、生成并验证软件设计十一、总结 ChatGP…

淘宝扭蛋机小程序开发:开启趣味购物新篇章

随着移动互联网的迅猛发展,用户对于购物体验的需求也在不断升级。淘宝作为国内领先的电商平台,始终致力于为用户创造更加新颖、有趣的购物环境。为了满足广大用户的期待,淘宝精心打造了一款全新的扭蛋机小程序,旨在为用户带来前所…

37. UE5 RPG创建自定义的Ability Task

在前面的文章中,我们实现了一个火球术的一些基本功能,火球术技能的释放,在技能释放后,播放释放动画,在动画播放到需要释放火球术的位置时,将触发动画通知,在动画通知中触发标签事件,…

JetBrains RubyMine v2024.1 安装教程 (Rails/Ruby集成开发环境)

前言 JetBrains RubyMine是一款杰出而全面的Ruby代码编辑器,能够深入识别动态语言的细节,为用户提供智能编码辅助功能。它能够自动检测错误代码段,并提供智能的编写和修复代码的建议,帮助用户进行代码重构。此外,Ruby…

在Redux Toolkit中使用redux-persist进行状态持久化

在 Redux Toolkit 中使用 redux-persist 持久化插件的步骤如下: 安装依赖 npm install redux-persist配置 persistConfig 在 Redux store 配置文件中(例如 store.js),导入必要的模块并配置持久化选项: import { combineReducers } from redux; import { persist…

Jmeter插件技术:性能测试中服务端资源监控

性能测试过程中我们需要不断的监测服务端资源的使用情况,例如CPU、内存、I/O等。 Jmeter的插件技术可以很好的实时监控到服务器资源的运行情况,并以图形化的方式展示出来,非常方便我们性能测试分析。 操作步骤: 1、安装插件管理…

主打国产算力 广州市通用人工智能公共算力中心项目签约

4月9日,第十届广州国际投资年会期间,企商在线(北京)数据技术股份有限公司与广州市增城区政府就“广州市通用人工智能公共算力中心”项目进行签约。 该项目由广州市增城区人民政府发起,企商在线承建。项目拟建成中国最…

后端工程师——Java工程师如何准备面试

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…

【JVM系列】关于静态块、静态属性、构造块、构造方法的执行顺序

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java算法 空间换时间(找重复)

一、算法示例 1、题目:题目:0-999的数组中,添加一个重复的元素,打乱后,找出这个重复元素 代码示例: package com.zw.study.algorithm; import java.util.*; public class XorTest {public static void mai…

Vue报错 Cannot read properties of undefined (reading ‘websiteDomains‘) 解决办法

浏览器控制台如下报错: Unchecked runtime.lastError: The message port closed before a response was received. Uncaught (in promise) TypeError: Cannot read properties of undefined (reading websiteDomains) at xl-content.js:1:100558 此问题困扰了…

可持续发展:制造铝制饮料罐要消耗多少资源?

铝制饮料罐是人们经常使用的日常用品,无论是在购物、午休还是在自动售货机前选择喝什么的时候,很少有人会想知道装他们喝的饮料的罐子到底是如何制成的,或者这些铝罐的原材料是如何进出的。 虽然有化学品和一些合金进入铝饮料罐制造过程或成为…

【VSCode调试技巧】Pytorch分布式训练调试

最近遇到个头疼的问题,对于单机多卡的训练脚本,不知道如何使用VSCode进行Debug。 解决方案: 1、找到控制分布式训练的启动脚本,在自己的虚拟环境的/lib/python3.9/site-packages/torch/distributed/launch.py中 2、配置launch.…

【Qt常用控件】—— 输入类控件

目录 1.1 Line Edit 1.2 Text Edit 1.3 Combo Box 1.4 Spin Box 1.5 Date Edit & Time Edit 1.6 Dial 1.7 Slider 1.1 Line Edit QLineEdit是Qt中的一个控件,用于 接收和显示单行文本输入。 核心属性 属性 说明 text 输⼊框中的⽂本 inputMask 输⼊…

Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人

月球和火星上的悬崖、洞穴和熔岩管已被确定为具有地质和天体生物学研究理想地点。由于其隔绝特性,这些洞穴提供了相对稳定的条件,可以促进矿物质沉淀和微生物生长。在火星上,这些古老的地下环境与火星表面可能适合居住时几乎没有变化&#xf…

JavaEE 初阶篇-深入了解网络通信相关的基本概念(三次握手建立连接、四次挥手断开连接)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 网络通信概述 1.1 基本的通信架构 2.0 网络通信三要素 3.0 网络通信三要素 - IP 地址 3.1 查询 IP 地址 3.2 IP 地址由谁供应? 3.3 IP 域名 3.4 IP 分…

大模型接口管理和分发系统One API

老苏就职于一家专注于音视频实时交互技术和智能算法的创新企业。公司通过提供全面的 SDK 和解决方案,助力用户轻松实现实时音视频通话和消息传递等功能。尽管公司网站上有详细的文档中心,但在实际开发中,仍面临大量咨询工作。 鉴于此&#x…