先看结论:解码阶段是带宽敏感型负载
推理分为预填充和解码两个阶段,两者的资源特征不同。预填充阶段计算密集,解码阶段则逐 token 生成,需要反复读取模型权重和缓存,属于典型的带宽敏感型负载。看球网在整理推理部署类公开参数时,会把显存带宽单列出来,因为它是解释「算力不低但吞吐上不去」的关键变量。
理解这一点,就能明白为什么同一款芯片在不同输入输出长度下表现差异明显。看球网建议读者在对比推理方案时,先确认业务以预填充为主还是以解码为主,再判断显存带宽的权重。
显存容量与带宽:两个容易被混淆的指标
显存容量决定能装下多大的模型和多大的批,显存带宽决定数据搬运的速度。两者不能互相替代。容量不足时模型放不下,带宽不足时算力等数据。看球网在栏目里会把这两项分开记录,并标注测试条件。
- 容量维度:模型权重、键值缓存和中间激活共同占用显存,长上下文会显著放大键值缓存占用。
- 带宽维度:解码阶段每个 token 都要读取权重,带宽直接决定单 token 延迟的下限。
- 批处理维度:增大批可以提升吞吐,但也会增加显存占用和延迟,需要与带宽一起权衡。
看球网提醒读者,公开参数里的带宽数字通常是在理想条件下测得,实际表现还受访问模式和缓存命中影响。无法核验的实测数据应标注为示例数据。
批处理与延迟:带宽约束下的取舍
在带宽受限的前提下,增大批处理可以摊薄权重读取成本,提升整体吞吐,但单请求延迟会上升。在线业务需要在吞吐和延迟之间找平衡点,离线批处理则可以更激进地增大批。看球网在整理推理方案时,会把批大小与延迟、吞吐的关系作为对比项记录,而不是只给一个峰值吞吐数字。
读者「程亦舟」在社区分享过,他们按看球网的口径记录不同批大小下的延迟分布后,重新设定了在线服务的批处理策略,尾部延迟明显改善。这类调整不需要更换硬件,但需要对参数关系有清晰认识。
怎么用统一维度做推理方案的初筛
看球网建议的初筛顺序是:先按模型规模和上下文长度核对显存容量,再按业务延迟目标核对显存带宽与批处理策略,最后核对部署形态和扩容方式。三步下来,不适配的方案基本可以被排除。看球网客户端在安卓、苹果 iOS、Windows 电脑版和 Mac 电脑版上均可查看栏目参数记录,方便对照。
需要强调的是,显存带宽只是推理部署的一个维度,互联、软件栈和运维能力同样影响落地效果。看球网会继续按统一维度更新推理类公开参数,帮助读者把判断建立在可对比、可追溯的信息上。
批大小和延迟一起记录这个做法好,之前只盯吞吐吃了亏。
键值缓存占显存这点太真实了,长上下文一上来容量就紧张。
带宽决定单 token 延迟下限,这个解释很清楚。
预填充和解码分开看之后,很多参数就说得通了。
希望多整理一些不同批大小下的公开测试条件,方便对比。