大模型国产化适配11-LLM训练性能基准测试(昇腾910B3)
原创 吃果冻不吐果冻皮 吃果冻不吐果冻皮 2024年07月17日 08:01 四川
随着 ChatGPT 的现象级走红,引领了AI大模型时代的变革,从而导致 AI 算力日益紧缺。与此同时,中美贸易战以及美国对华进行AI芯片相关的制裁导致 AI 算力的国产化适配势在必行。之前也分享过一些国产 AI 芯片、使用国产 AI 框架 Mindformers 基于昇腾910训练大模型,使用 MindIE 进行大模型服务化等。
-
大模型国产化适配1-华为昇腾AI全栈软硬件平台总结
-
大模型国产化适配2-基于昇腾910使用ChatGLM-6B进行模型推理
-
大模型国产化适配3-基于昇腾910使用ChatGLM-6B进行模型训练
-
大模型国产化适配4-基于昇腾910使用LLaMA-13B进行多机多卡训练
-
大模型国产化适配6-基于昇腾910B快速验证ChatGLM3-6B/BaiChuan2-7B模型推理
-
AI芯片技术原理剖析(一):国内外AI芯片概述
-
大模型国产化适配7-华为昇腾LLM落地可选解决方案(MindFormers、ModelLink、MindIE)
-
MindIE 1.0.RC1 发布,华为昇腾终于推出了针对LLM的完整部署方案,结束小米加步枪时代
-
大模型国产化适配8-基于昇腾MindIE推理工具部署Qwen-72B实战(推理引擎、推理服务化)
-
大模型国产化适配9-LLM推理框架MindIE-Service性能基准测试
-
大模型国产化适配10-快速迁移大模型到昇腾910B保姆级教程(Pytorch版)
另外,我撰写的大模型相关的博客及配套代码均整理放置在Github:https://github.com/liguodongiot/llm-action,有需要的朋友自取。
之前对MindIE-Service 推理框架进行了性能测试。下面对训练框架(ModelLink/MindFormers)进行训练测试。
训练性能的定义
训练性能在本文指机器(GPU、NPU或其他平台)在指定模型和输入数据的背景下,完成一次端到端训练所需要花费的时间,考虑到不同模型的训练数据量和训练轮次(epoch)差异,此处定义的性能是在完成一个batch训练所需花费的时间。而端到端通常是指完成一个AI模型单步训练的过程。也就是说,本文所讨论的性能的衡量和性能的优化,都是站在模型角度上。
对于一个batch而言,训练所花费的时间主要由以下部分构成:
单batch总时间 = 数据加载时间 + 模型前反向时间 + 优化器时间 + 模型后处理时间 + 通信时间 + 调度时间
-
数据加载时间:指的是模型在加载自身所需要的数据(如图片、视频和文本等)的时间,包括将数据从硬件存储设备读取到CPU(Central Processing Unit)中、CPU中数据的预处理(编解码等操作)、CPU数据放到Device(GPU/NPU...)上的时间。特别地,对于一些需要切分在若干张卡上的模型,数据加载还包括从数据加载卡广播到其他卡上的时间。
-
模型前反向时间:指深度学习模型的前向过程和反向过程,即Forward和Backward过程,包含前向的数据计算和反向的数据微分求导。
-
优化器时间:通常指的是模型参数更新时间。
-
模型后处理时间:一般指的是优化器更新后的时间,包括数据的后处理或者一些必要的同步操作,通常取决于模型特有操作。
-
通信时间:概念比较宽泛,一般将单节点内卡与卡和多节点间的通信行为归为通信时间,由于一些AI框架(如:PyTorch)的特殊机制或者优化,通信和计算通常可以并行起来(即通信计算重叠),因此我们一般考虑的是未被计算掩盖的通信时间。
-
调度时间:指的是模型从CPU的指令到调用NPU侧的核(Kernel)所需要的时间。