大模型训练算力测算:训练过程可分前向传播(Forward Pass)和反向传播(Backward Pass)。
Ø 前向传播:输入数据(例如图像、文本等)通过神经网络的各层进行传递,以得到输出结果,包含输入数据与权重矩阵相乘、应用激活函数等操作,目的为将计算网络预测输出,并将其与实际目标值比较,计算损失函数(Loss Function)的值。
Ø 反向传播:一种高效计算梯度算法,从输出层开始,沿着网络层次结构向输入层反向传播,计算每个权重的梯度(注:梯度表示权重对损失函数贡献的大小);同时,在计算出所有权重的梯度后,使用优化算法更新权重,达到减小损失函数值的目的。
Ø 计算次数:一次前向传播需要一次计算,一次反向传播需要两次计算(计算梯度+权重更新),则完成一次神经网络迭代需要对所有输入的数据和模型参数进行3次计算;每一次计算就是矩阵运算,对于一次矩阵运算需要进行一次乘法及加法(共计2次浮点运算),即对于每个Token、每个模型参数,需要进行2 ×3 Flops = 6次浮点运算。以GPT-3大模型训练为例,模型参数量为175B,训练Token数量为300B,采用稠密(Dense)模型,其需要的训练总算力为175B × 300B × 6 = 3.1523 FLOPs。
Ø 所需算力卡数量及时间:假设使用业内FLOPS最大的利用率来测算(此处取46.2%),单卡A100 FP16精度下算力为312 TFLOPS,则3.15 23 FLOPs/(312 TFLOPs ×46.2%×3600s × 24h/天)= 2.53万张A100/天,即若使用1000张A100,大约训练一遍GPT-3需要25.3天。
表:芯片利用率情况资料来源:Aakanksha Chowdhery等著-《PaLM:Scaling Language Modeling with Pathways》- arXiv(2022)-P9,国信证券经济研究所整理Model# of Parameters(in billions)Accelerator ChipsModel FLOPSUtilizationGPT-3 175B V100 21.3%Gopher 280B 4096 TPU v3 32.5%Megatron-TuringNLG530B 2240 A100 30.2%PaLM 540B 6144 TPU v4 46.2%
• 大模型推理算力测算:推理过程主要包括分词(Tokenize)、嵌入(Embedding)、位置编码(Positional Encoding)、Transformer层、Softmax。
推理主要计算量在Transfomer解码层,对于每个token、每个模型参数,需要进行2 × 1 Flops = 2次浮点运算,则单词推理算力消耗为模型参数量 × (提问Tokens + 回答Tokens)×2。
• 以GPT-3单次推理为例,假设用户每次提问20 Tokens,ChatGPT回答300 Tokens,模型参数量为175B,则单次推理算力需求为175B × (20 Tokens + 300 Tokens)×2=1.1214 FLOPs,若使用单张A100 GPU进行推理,假设芯片利用率为46.2%,则完成单次所需时间为1.12 14 FLOPs/(312 TFLOPs