大模型 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

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

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

相关文章

【产品设计】B端产品权限设计~功能权限设计篇

对于B端设计而言,良好的权限设计架构是支持其复杂业务的基础和关键。 一、什么是权限管理 权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源。 简而言之,用户登录系统后&#xff0…

使用 Redux 管理全局状态

Redux 是个状态集中管理框架,状态可以跨组件共享,状态更新后,调用监听器。其实状态可以认为就是个全局对象,为什么要做一个框架来管理呢?如果我们自己使用一个全解字典来管理状态是不是也行?如果不做任何控…

【ARMv9 DSU-120 系列 9.1 -- ROM tables】

请阅读【Arm DynamIQ™ Shared Unit-120 专栏 】 文章目录 DSU-120 ROM tablesDebug system address map核心 <n> ROM表集群ELA核心ELA组件调试APB系统地址映射:DSU-120 ROM tables DSU-120(DynamIQ™共享单元-120)具有三种不同类型的ROM表。这些ROM表根据ARM CoreSi…

OceanBase 分布式数据库【信创/国产化】- OceanBase Demo 环境搭建

本心、输入输出、结果 文章目录 OceanBase 分布式数据库【信创/国产化】- OceanBase Demo 环境搭建前言OceanBase 数据更新架构部署背景信息组件介绍部署前提条件下载并安装 all-in-one 安装包单机部署 OceanBase 数据库执行输出中的连接命令连接数据库配置 OceanBase 密码Ocea…

想在游泳健身的同时畅听音乐,随时哈氪漫游这款IP68防水的骨传导耳机

平时健身的过程中&#xff0c;音乐是许多健身爱好者的忠实伴侣。无论是在室内的健身房&#xff0c;还是户外的自然风光中&#xff0c;一副优质的耳机可以极大地提升我们的锻炼体验。现在市面上专为运动设计的耳机选择非常多&#xff0c;我喜欢用骨传导耳机&#xff0c;目前在用…

C语言经典例题-11

1.序列中整数去重 题目描述: 输入n个整数的序列&#xff0c;要求对这个序列进行去重操作。所谓去重&#xff0c;是指对这个序列中每个重复出现的整数&#xff0c;只保留该数第一次出现的位置&#xff0c;删除其余位置。 输入描述: 输入包含两行&#xff0c;第一行包含一个正…

深入理解多线程编程

title: 深入理解多线程编程 date: 2024/4/25 17:32:02 updated: 2024/4/25 17:32:02 categories: 后端开发 tags:线程同步互斥锁死锁避免竞态条件线程池异步编程性能优化 第一章&#xff1a;多线程基础 1.1 线程概念与原理 线程&#xff1a;在操作系统中&#xff0c;一个程序…

K8s: 最佳实践经验之谈

最佳实践 1 &#xff09;普通配置 定义配置时&#xff0c;请指定最新的稳定 API 版本在推送到集群之前&#xff0c;配置文件应存储在版本控制中 这允许您在必要时快速回滚配置更改它还有助于集群重新创建和恢复 使用 YAML 而不是 JSON 编写配置文件 虽然这些格式几乎可以在所有…

ADB常用命令

大家好&#xff0c;今天给大家分享一些ADB的常用命令&#xff0c;我们作为测试了解ADB命令能给我们带来哪些好处呢&#xff1f; 1、ADB 命令可以帮助测试人员与Android设备进行交互&#xff0c;如安装、卸载应用&#xff0c;获取设备信息等&#xff0c;便于更深入地测试设备功能…

大数据——Zookeeper安装、启动、操作命令(一)

Zookeeper 概述 Zookeeper本身是Apache提供的一套开源的用于进行分布式管理和协调的机制/框架。官网&#xff1a;https://zookeeper.apache.orgZookeeper本身提供了中心化服务&#xff0c;包含统一配置、统一命名、分布式锁服务、分布式组服务&#xff0c;更多的时候&#xf…

世强硬创获昕感科技授权代理,SiC MOSFET实现超低导通电阻

近日&#xff0c;世强先进&#xff08;深圳&#xff09;科技股份有限公司&#xff08;下称“世强先进”&#xff09;获北京昕感科技有限责任公司&#xff08;下称“昕感科技”&#xff0c;英文名&#xff1a;NEXIC&#xff09;授权代理&#xff0c;为光伏、储能、电网、新能源汽…

耀斑层-如何在Unity中实现耀斑亮光效果

在Unity中实现耀斑亮光效果可以通过以下步骤来实现&#xff1a; 创建一个空物体作为光源&#xff1a;在场景中创建一个空物体&#xff0c;并将其放置在需要发出耀斑亮光效果的位置上。 添加光源组件&#xff1a;选中空物体&#xff0c;在Inspector面板中点击"Add Compone…

leetcode152 乘积最大子数组

给你一个整数数组 nums &#xff0c;请你找出数组中乘积最大的非空连续 子数组 &#xff08;该子数组中至少包含一个数字&#xff09;&#xff0c;并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 示例 1: 输入: nums [2,3,-2,4] 输出: 6 解释: 子数组 …

C# 给图片添加文字水印

目录 应用场景 开发运行环境 方法说明 方法代码 调用示例 小结 应用场景 在某些应用项目&#xff08;如电子档案信息管理&#xff09;中&#xff0c;查看电子图片信息是经常使用到的功能&#xff0c;此时我们就需要给显示在浏览器中的图片添加文字水印版权或提示信息。…

石家庄学院2023年大学生程序设计大赛题解

A、大臣的旅费 floyd求最短路径 #include <iostream>using namespace std;int d[1005][1005]; int n; int res;int f(int x) {// 等差数列return ((11 x 10) * x) / 2; }void init() {for (int i 1; i < n; i) {for (int j 1; j < n; j) {if (i j) d[i][j] …

Golang对接Ldap(保姆级教程:概念搭建实战)

Golang对接Ldap&#xff08;保姆级教程&#xff1a;概念&搭建&实战&#xff09; 最近项目需要对接客户的LDAP服务&#xff0c;于是趁机好好了解了一下。LDAP实际是一个协议&#xff0c;对应的实现&#xff0c;大家可以理解为一个轻量级数据库。用户查询。比如&#xff…

各种类型游戏的乐趣与魅力

游戏已经成为人们生活中不可或缺的一部分。从家庭娱乐到专业电竞&#xff0c;游戏行业呈现出多姿多彩的景象&#xff0c;吸引着亿万玩家的目光。而游戏的多样性正是其中一大魅力所在。让我们一起探索各种类型游戏的乐趣与魅力吧&#xff01; 动作游戏&#xff1a; 动作游戏以快…

力扣HOT100 - 114. 二叉树展开为链表

解题思路&#xff1a; class Solution {List<TreeNode> list new ArrayList<>();public void flatten(TreeNode root) {recur(root);for (int i 1; i < list.size(); i) {TreeNode pre list.get(i - 1);TreeNode cur list.get(i);pre.left null;pre.right…

使用Shell终端访问Linux

一、实验目的 1、熟悉Linux文件系统访问命令&#xff1b; 2、熟悉常用 Linux Shell的命令&#xff1b; 3、熟悉在Linux文件系统中vi编辑器的使用&#xff1b; 4、进一步熟悉虚拟机网络连接模式与参数配置&#xff01; 二、实验内容 1、使用root帐号登陆到Linux的X-windows…

【Qt 学习笔记】Qt常用控件 | 输入类控件 | Combo Box的使用及说明

博客主页&#xff1a;Duck Bro 博客主页系列专栏&#xff1a;Qt 专栏关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ Qt常用控件 | 输入类控件 | Combo Box的使用及说明 文章编号&#xff…