HCIE-AI SA:昇腾大模型解决方案
1.概述
本章主要介绍了大模型的并行计算,华为昇腾AI计算软硬件和昇腾容器化和虚拟化的技术。
2. 目标

3. 大模型训练对计算资源的需求

4. 大模型为什么需要并行计算
①以亿为单位的参数量对计算单元和其内存提出了挑战
千亿参数的模型所需计算量是巨大的,如果使用单卡训练,训练周期过长。
以一个百亿参数级Transformer-like 模型举例,在预训练过程中所需要的内存大约在百G,即使单个高性能训练卡也已经无法满足需求,所以大模型预训练阶段必须使用多卡进行并行计算。
②巨大的训练数据
根据业界最佳实践,为保证预训练模型效果,建议数据量>=1000B Token,同时根据业界论文理论推算,大模型取得最优训练效果所需的训练数据是其参数的20倍以上。
为保证预训练模型的性能,参数量的提升必然带来训练数据的激增,使用数据并行训练模型可以大幅缩短训练周期。
5. 分布式计算
利用AI集群,使深度学习算法更好地从大量数据中高效地训练出性能优良的大模型,是分布式机器学习的首要目标。为了实现该目标,一般需要根据硬件资源与数据/模型规模的匹配情况,考虑对计算任务、训练数据和模型进行划分,从而进行分布式存储和分布式训练。
5.1 数据并行
由于训练数据集太大,需要将数据集分为N份,每一份分别装载到N个计算节点中,同时,每个计算节点持有一个完整的模型副本,分别基于每个计算节点中的数据去进行梯度求导。

5.2 张量并行
张量并行(Tensor Parallelism,TP)属于模型并行(Model Parallelism,MP)中的一种,通过对Tensor的拆分,将一次Tensor计算拆分到多台设备上进行并行的计算,并将计算结果最终合并为目标张量。
行并行

列并行

5.3 Pipeline并行
神经网络的规模几乎是呈指数型增长。受单卡内存的限制,训练这些大模型用到的设备数量也在不断增加。受server间通信带宽低的影响,传统数据并行叠加模型并行的这种混合并行模式的性能表现欠佳,需要引入流水线并行。
流水线并行能够将模型在空间上按stage 进行切分,每个stage只需执行网络的一部分,大大节省了内存开销,同时缩小了通信域,缩短了通信时间。

5.4 优化器并行

6. 并行计算框架
Deepspeed

![]()
Megatron-LM
MindFormers
MindSpore Transformers套件的目标是构建一个大模型开发、训练、微调、评估、推理、部署的全流程开发套件,提供业内主流的Transformer类预训练模型和SOTA下游任务应用,涵盖丰富的并行特性。
7. 昇腾硬件
Atlas 800T A2训练服务器
- 极致性能比
- 极致散热
- 更高的算力密度
- 高速网络带宽
Atlas 900 A2 PoD
华为天成

8. 昇腾软件
8.1 CANN介绍
CANN(Compute Architecture for Neural Networks)是华为针对AI场景推出的异构计算架构,对上支持多种AI框架,对下服务AI处理器与编程,发挥承上启下的关键作用,是提升昇腾AI处理器计算效率的关键平台。同时针对多样化应用场景,提供高效易用的编程接口。
①大模型预训练需要解决的三个核心问题:

显存问题
算力问题
通信开销问题,当存在更大通信域,通信占比会更大
② CANN支持业界通用并行策略,使能大模型可部署


③ Ascend C算子编程语言,使能算子极简开发
④ AOE调优
AOE(Ascend Optimization Engine)是一款自动调优工具,目的是为了充分利用有限的硬件资源,满足算子和整网的性能要求。AOE通过生成调优策略、编译、在运行环境上验证的闭环反馈机制,不断迭代,最终得到最佳的调优策略,从而更充分利用硬件资源,提升网络的性能。

⑤ AOE 调优支持的场景:

8.2 MindX介绍
MindX DL(昇腾深度学习组件)是支持基于昇腾AI处理器的数据中心训练和推理硬件的深度学习组件参考设计,提供昇腾AI处理器调度、集群性能测试、模型保护等基础功能,为上层模型训练、模型评估、模型部署、模型推理等应用提供底层软件支持。
ModelZoo是昇腾旗下的开源AI模型平台,涵盖计算机视觉、自然语言处理、语音、推荐、多模态、大语言模型等方向的AI模型及其基于昇腾机器实操案例。
MindX Edge提供边缘AI业务基础组件管理和边缘AI业务容器的全生命周期管理能力,同时提供节点看管、日志采集等统一运维能力和严格的安全可信保障。
MindX SDK提供昇腾AI处理器加速的各类AI软件开发套件(SDK),提供极简易用的API,加速高性能AI应用的开发,赋能千行百业。
8.3. MindStudio介绍
MindStudio提供您在AI开发所需的一站式开发环境,支持模型开发、应用开发以及算子开发三个主流程中的开发任务。依靠模型可视化、算力测试、IDE本地仿真调试等功能,MindStudio能够在一个工具上就能高效便捷地完成AI应用开发。
① 工程管理

② 推理一体化工具
③ 分析迁移
④ 模型训练
⑤ 模型转换和调优
⑥ 应用开发
⑦ 算子开发
⑧ 精度比对
⑨ 性能分析
9. 算力运营
9.1 Ascend Docker Runtime
Ascend Docker Runtime(又称昇腾容器运行时)是MindX DL的基础组件,用于为所有的训练或推理作业提供昇腾AI处理器(Ascend NPU)容器化支持,使用户AI作业能够以Docker容器的方式平滑运行在昇腾设备之上。
- 充分解耦:与Docker解耦,无需修改Docker代码,Ascend Docker Runtime可以独立运行。
- 后向兼容:提供可选装的Ascend Docker Runtime,不影响原生Docker使用方式。
- 易适配:与用户现有平台和系统平滑适配,不影响原Docker的命令接口。
- 易部署:提供run包部署,用户安装后即可用Docker创建挂载NPU的容器。
9.2 昇腾虚拟化实例AVI (Ascend Virtual Instance)
昇腾虚拟化实例功能是指通过资源虚拟化的方式将物理机或虚拟机配置的NPU(昇腾AI处理器)切分成若干份vNPU(虚拟NPU)挂载到容器中使用,虚拟化管理方式能够实现统一不同规格资源的分配和回收处理,满足多用户反复申请/释放的资源操作请求。
昇腾NPU硬件资源主要包括AICore(用于AI模型的计算)、AICPU、内存等,昇腾虚拟化实例功能主要原理是将上述硬件资源根据用户指定的资源需求划分出vNPU,每个vNPU对应若干AICore、AICPU、内存资源。
昇腾虚拟化实例功能适用于多用户多任务并行,且每个任务算力需求较小的场景。对算力需求较大的大模型任务,不支持使用昇腾虚拟化实例。
划分vNPU有以下两种方式。
- 静态虚拟化:通过npu-smi工具手动创建多个vNPU。上述场景均支持静态虚拟化。
- 动态虚拟化:通过软件配置,在收到虚拟化任务请求后,动态地自动创建vNPU、挂载任务并回收vNPU(仅支持vNPU挂载到容器,需配合Ascend Docker Runtime或MindX DL使用)。


10. 总结
大模型并行计算的必要性,并介绍了华为昇腾软硬件,最后讲解了算力运营,笔试占比6%。
- 点赞
- 收藏
- 关注作者
评论(0)