2025年年初,随着Deepseek全球爆火,本地部署大模型成为一大时尚。然而很多人对于自己的设备的推理性能,也即运行大模型每秒钟能够输出多少个字,并不清楚。本文就带你搞清楚,如何计算大模型输出token的速度。

简单来说,对于个人用户自己在显卡上运行的理论速度上限计算公式如下——

每秒输出 token 速度 = 显存或内存带宽 / 大模型激活权重大小

对于大模型来说,token是他们处理的最小单元,一般来说一个中文汉字就是一个token,但同时常用的词组如“需求”也会被视作一个token。大模型在运行时,每生成一个token都需要读取被激活的模型权重,因此显存或内存带宽的速度决定了能够新生成token的速度。

举例说明

RTX 5070 Ti有16GB容量的显存,显存带宽为896GB/s。对于一个8B大小的模型,fp8格式精度下模型权重为8GB。由此计算则理论上可以输出 896/8 = 112 token每秒。

有一些用户采用CPU进行推理,会发现速度显著的慢,原因何在?这主要是因为内存和显存之间的带宽相差较为悬殊。笔者采用的是笔记本电脑上的双通道DDR5内存,通过AIDA64软件实测的读取速度约为69GB/s。由此计算,如果运行8B大小的模型,理论速度上限仅为8 token/s。

由于当前内存价格相比于现存价格要显著便宜,不少用户选择了购买大容量内存,试图运行更大参数的模型。例如两条32GB的双通道DDR 5内存,就可以得到64GB内存,售价仅需1000元出头。而目前显卡上RTX 5090配备32GB显存,售价就超过1万人民币。

不少有64GB内存的用户,试图运行32B参数的大模型,例如QwQ-32B、Qwen-Max-32B。值得注意的是,双通道DDR5内存速度读取70GB/s,而32B大模型在fp8格式下,占用32GB内存。由此计算,每秒钟只有2-3token的输出速度。这样的速度,基本上就会体验到一个字一个字蹦出来的感受了。

值得注意的是,当前市场上DDR4规格的内存价格更为低廉,但DDR4 3200MHz的内存,理论带宽仅为25.6 GB/s,组成双通道也就是50GB/s的速度。而DDR 5内存则做到了速度快约50%以上的程度。如果你想运行大模型推理,强烈不建议采用DDR 4内存。

注意事项

以上推算,是建立在单个用户单个请求的前提之下。此时制约速度的主要是内存带宽(memory bound),而无论对于显卡还是CPU来说,计算能力都远远没有达到上限。如果采用多并发,计算能力也将逐渐达到上限,也即所谓的compute bound。

如果需要高并发,往往会涉及到多卡互联,采用A100、H100等专业卡才是正确的选择。

Loading

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注