看显卡推理速度测试时,最容易把人看晕的不是分数本身,而是这些缩写:
|
|
下面直接按最常见的问题拆开解释。
这行标题整体是什么意思
CUDA Scoreboard for Llama 2 7B, Q4_0 (no FA) 通常包含四层信息:
CUDA:说明跑分是在 NVIDIA GPU 的 CUDA 路径上完成的Llama 2 7B:说明测试对象是Llama 2的7B参数版本Q4_0:说明模型用了 4-bit 量化格式no FA:说明这次测试关闭了Flash Attention
一句话理解:这是某个量化版模型在 NVIDIA 显卡上的推理速度测试,而且没有开启 Flash Attention。
FA 是什么:Flash Attention
FA 就是 Flash Attention,它是注意力计算的加速技术。核心作用可以直接记成三点:
- 更快
- 更省显存
- 在数学上和普通注意力等价,不是“牺牲精度换速度”
no FA 是什么意思
no FA 就是没开 Flash Attention。它通常出现在跑分表里,主要是为了:
- 做对照组,方便看出开启
FA后到底提升了多少 - 兼容某些不支持
FA的硬件或软件环境 - 避免不同测试项混在一起,导致数据不可比
Q4_0 是什么:量化格式
Q4_0 是一种 4-bit 量化格式,可以先这样记:
Q:Quantization,量化4:4-bit_0:某一种具体量化方案的标识
它的作用是:
- 减少模型体积
- 降低显存需求
- 让本来装不下的模型变得能跑起来
pp512 t/s 是什么意思
pp512 一般是 Prompt Processing 512 tokens,测的是输入处理速度。
pp:prompt processing512:测试输入长度是 512 tokent/s:每秒多少 token
它测的不是模型吐字速度,而是模型“先把输入读完”的速度。这个阶段并行度高,所以数值通常会很大,比如:
|
|
tg128 t/s 是什么意思
tg128 一般是 Text Generation 128 tokens,测的是输出生成速度。
tg:text generation128:测试连续生成 128 tokent/s:每秒多少 token
它更接近我们平时感受到的“模型回答快不快”。因为生成是逐 token 递推的,所以它通常会明显低于 pp512,例如:
pp512是上万t/stg128却只有几百t/s
为什么 pp512 和 tg128 会差这么多
核心原因就一句话:
pp512 测的是并行吞吐,tg128 测的是逐 token 生成。`
具体来说:
- 输入阶段更容易并行
- 输出阶段更依赖逐步递推
- 生成阶段通常更吃显存带宽和缓存效率
- 所以生成速度远低于输入处理速度是正常现象
t/s 到底怎么理解
t/s 就是 tokens per second。它表示模型每秒能处理或生成多少 token。
但 token 不是“字”也不是“单词”,所以 t/s 更适合做这些对比:
- 同模型下不同显卡对比
- 同环境下不同参数设置对比
- 同一框架里开启或关闭某个优化项前后的对比
一页记住
Q4_0:模型被压缩成了 4-bit 量化版本FA:是不是启用了 Flash Attention 加速pp512:处理 512 token 输入时有多快tg128:生成 128 token 输出时有多快t/s:速度单位,每秒多少 token
结语
看这类显卡推理速度测试时,最重要的不是只看分高不高,而是先分清:
- 模型和量化格式
- 有没有开
FA - 测的是输入处理还是文本生成
- 单位是不是
t/s
把这几件事分清楚,绝大多数 scoreboard 都不会太难读。