LLM推理的极限速度
作者 | Arseny Kapoulkine
OneFlow编译
翻译|宛子琳
AMD Ryzen 7950X的内存带宽为67 GB/s,浮点运算能力为2735 GFLOPS,FLOP:字节读取比为40:1。[4]
NVidia GeForce RTX 4090的内存带宽为1008 GB/s,运算能力为83 TFLOPS,FLOP:字节读取比为82:1。[5]
NVidia H100 SXM(一款数据中心显卡)的内存带宽为3350 GB/s,运算能力为67 TFLOPS,FLOP:字节读取比看似为20:1;然而,对于类似矩阵乘法的问题,张量核心提供了约494 TFLOPS的运算能力,因此FLOP:字节读取比为147:1,不考虑稀疏性。
2 Mistral推理极限速度
嵌入矩阵有4096 * 32000 = 1.31亿个参数;该矩阵不用于矩阵-向量乘法,因为每个词元只需读取该矩阵的一行,所以不包括在带宽计算中。
计算注意力相关向量的参数量为1342M个,其中大小为32 * (4096 * (128 * 32 + 128 * 8 * 2) + 4096 * 128 * 32)。
通过前馈网络转换隐藏状态的参数量为5637M个,其中大小为32 * (4096 * 14336 * 3)。
将隐藏状态转换为词元概率的参数量为131M个,大小为4096 * 32000;与嵌入矩阵不同的是,该矩阵在矩阵乘法中使用。
3 理论上限是否有用?
像Mixtral这样的混合专家模型,其扩展特性略有不同:批处理最初只会增加所需带宽,但一旦专家模型的利用率变得显著,推理计算就会越来越受ALU限制。
4 结论
附录:分组查询注意力(GQA)
注释:
这篇文章省略了很多细节,且不会试图全面解释Transformer建模的机制(我并不适合);而且其他人已经撰写了相关的详细文章。
在预填充阶段,情况则不同,在这一阶段,模型会给定现有文本,并要求将其转换为内部表示,其中的权衡是不同的。另外,值得注意的是,诸如推测执行之类的技术试图通过依次使用不太准确的预测器,然后在并行中验证猜测,来提供某种程度的并行性。这里不会讨论这两种技术。 这种描述省略了多头注意力和“归一化(softmax)”的细节,但对于理解推理性能的速度来说都不是关键。 这些数字来自于本评论中的AIDA64表格;我的7950X使用的内存较慢,因此只能维持约50 GB/s的带宽。 这些数字来自NVidia的规格表;因此它们代表了理论上的极限。 在这里和其他地方,GB是一个十进制单位,等于1000的3次方,并非二进制单位GiB。虽然RAM容量使用了二进制表示法,但所有制造商报告的带宽测量数据都是十进制单位。 有一种架构变体通过复制一些层来修复这个问题,对于较小的模型,它可以在推理计算中将它们保留在内存中,但我不知道是否有使用这种方法的开源模型。
【语言大模型推理最高加速11倍】SiliconLLM是由硅基流动开发的高效、易用、可扩展的LLM推理加速引擎,旨在为用户提供开箱即用的推理加速能力,显著降低大模型部署成本,加速生成式AI产品落地。(技术合作、交流请添加微信:SiliconFlow01)
SiliconLLM的吞吐最高提升近4倍,时延最高降低近4倍
数据中心+PCIe:SiliconLLM的吞吐最高提升近5倍;消费卡场景:SiliconLLM的吞吐最高提升近3倍
System Prompt场景:SiliconLLM的吞吐最高提升11倍;MoE模型:推理 SiliconLLM的吞吐最高提升近10倍