随着ChatGPT的迅速出圈,大模型时代加速到来。对于以Transformer、MOE结构为代表的大模型来说,传统的单机单卡训练模式已无法满足上千亿甚至万亿级参数的模型训练需求,必须解决内存墙和通信墙等一系列问题,采用单机多卡或多机多卡进行分布式模型训练。
本文主要涉及AI集群、AI集群通信、大模型训练(参数高效微调)、大模型推理加速、大模型评估、大模型生态相关技术等内容,旨在为开发者提供一份全面的技术参考。
AI 集群
由于目前硬件资源限制,基于现有的一些AI框架和大模型,无法充分利用所有服务器资源。例如OPT-66B一共有64层Transformer,当使用Alpa进行流水线并行时,通过流水线并行对模型进行切分,要么使用16卡,要么使用8卡,没法直接使用24卡。因此,GPU服务器最好是购买偶数台(如:2台、4台、8台)以便灵活配置。
硬件配置建议
CPUs: 每个节点具有1TB内存的Intel CPU,物理CPU个数为64,每颗CPU核数为16。
GPUs: 24 卡 A800 80GB GPUs,每个节点 8 个 GPU(3 个节点)。
目前使用Huggingface Transformers和DeepSpeed进行数据并行训练(pretrain),单卡可以跑三百亿参数(启用ZeRO-2或ZeRO-3),如OPT-30B。具体训练教程可参考官方样例。
使用Alpa进行流水线并行和数据并行进行训练(fine tuning)时,使用了3台共24卡(PP:12,DP:2)进行训练OPT-30B。如果不想转换模型格式,官网也提供了转换好的模型格式,具体请参考文档:Serving OPT-175B, BLOOM-176B and CodeGen-16B using Alpa。
AI处理器(加速卡)
目前主流的AI处理器无疑是NVIDIA的GPU。NVIDIA的GPU产品主要有GeForce、Tesla和Quadro三大系列。虽然从硬件角度来看,它们都采用同样的架构设计,也都支持用作通用计算(GPGPU),但因为它们分别面向的目标市场以及产品定位的不同,这三个系列的GPU在软硬件的设计和支持上都存在许多差异。
- Tesla: A100(A800)、H100(H800)、A30、A40、V100、P100… 偏重于深度学习、人工智能和高性能计算。
- GeForce: RTX 3090、RTX 4090 … 消费级显卡,主要应用于游戏娱乐领域。
- Quadro: RTX 6000、RTX 8000 … 专业可视化设计和创作。
其中,A800/H800是针对中国特供版(低配版),相对于A100/H100,主要区别在于Nvlink最大总网络带宽:
- A100的Nvlink最大总网络带宽为600GB/s,而A800的Nvlink最大总网络带宽为400GB/s。
- H100的Nvlink最大总网络带宽为900GB/s,而H800的Nvlink最大总网络带宽为400GB/s。
其他国外AI处理器:
- AMD: GPU MI300X
- Intel: Xeon Phi
- Google: TPU
国产AI处理器:
- 华为:昇腾910(用于训练和推理),昇腾310(用于推理)。采用自家设计的达芬奇架构。
- 海光DCU:8100系列(深算一号),以GPGPU架构为基础。
- 寒武纪:思元370、思元590。
- 百度:昆仑芯,采用的是其自研XPU架构。
- 阿里:含光800。
大模型算法
模型结构
目前主流的大模型都是Transformer、MOE结构为基础进行构建。如果说Transformer结构使得模型突破到上亿参数量,MoE 稀疏混合专家结构使模型参数量产生进一步突破,达到数万亿规模。
Transformer 开创了继 MLP、CNN和 RNN之后的第四大类模型。基于Transformer结构的模型又可以分为Encoder-only、Decoder-only、Encoder-Decoder这三类。
- 仅编码器架构(Encoder-only):自编码模型(破坏一个句子,然后让模型去预测或填补),更擅长理解类的任务,例如:文本分类、实体识别、关键信息抽取等。典型代表有:Bert、RoBERTa等。
- 仅解码器架构(Decoder-only):自回归模型(将解码器自己当前步的输出加入下一步的输入,解码器融合所有已经输入的向量来输出下一个向量,所以越往后的输出考虑了更多输入),更擅长生成类的任务,例如:文本生成。典型代表有:GPT系列、LLaMA、OPT、Bloom等。


