首页/AI/大模型部署与运维速查/TPOT:每输出 token 的时间

TPOT:每输出 token 的时间

TPOT 是解码阶段平均步时:受显存带宽、批大小与算子效率影响;与 TTFT 组合能还原用户感知的总时长(流式场景主要看生成速率)。

TPOT 是什么

TPOT(Time Per Output Token)是解码阶段平均每输出一个 token 所需的时间,与生成速率互为倒数。响应时间约等于 TTFT 加上 TPOT 乘以输出 token 数,所以流式场景下 TPOT 就是用户感知的「出字速度」。它主要由显存带宽、批大小与算子效率决定:解码每一步都要把权重与 KV 读一遍,读得越快越省时间。

基本信息

定义解码阶段每个输出 token 的平均耗时
单位毫秒/token 或秒/token,与生成速率互为倒数
组成关系响应时间 ≈ TTFT + TPOT × 输出 token 数
主要影响显存带宽、批大小、量化档位、算子实现
观测引擎侧每 token 延迟指标,建议看分位数

典型使用场景

  • 估算总响应时间:知道输出长度范围就能推出用户要等多久
  • 流式体验调优:出字速度太慢时,先看 TPOT 而不是首字延迟
  • 定延迟 SLO:与 TTFT 一起构成两条独立的承诺,分别评估分别设阈值
  • 评估量化收益:权重与 KV 读取字节数减半,TPOT 通常随之下降,但要实测确认
  • 对比硬件与并行度:同模型换卡或改张量并行度后,看 TPOT 变化判断是否值得

估算与观测

估算与观测
# 估算:输出 512 token、TPOT 为 30ms 时,解码阶段约需 15 秒
#   decode 时间 = 512 × 30ms = 15.3s(再叠加 TTFT 才是总时长)

# 观测:每 token 延迟指标(名称随版本微调)
curl -s http://127.0.0.1:8000/metrics | grep -i time_per_output_token

# 生成速率换算:tokens/s ≈ 1 / TPOT,例如 30ms/token ≈ 33 token/s

影响 TPOT 的因素

因素作用方向注意
权重与 KV 的字节数量化后读取量下降,TPOT 通常改善精度损失需评估
批大小批越大总吞吐越高,但单请求 TPOT 变差延迟敏感场景要压低并发
显存带宽硬件代际差异明显同代卡差异主要体现在带宽
降频与资源抢占时钟被压低或辅进程抢占时变慢结合功耗温度一起看
延迟与吞吐是一组折中:把批做大能提高整机吞吐,但会让每个请求的 TPOT 变差,因此吞吐型与延迟型业务应分开定档、分开部署。
TPOT 随批大小与请求构成变化,压测报告要写清并发档位与长度分布,否则数字无法复用。

易错点

  • 只看平均 TPOT:混合负载下 P95 与均值差距明显,SLA 应按分位数定
  • 把 TPOT 当成硬件决定的固定值:批大小、量化与并行度都会改变它,换配置必须复测
  • 用小批测出的 TPOT 推算高并发体验:并发上来后 TPOT 明显退化,容量结论会过于乐观
  • 用总时长除以输出 token 数当 TPOT:把 TTFT 摊进去会系统性高估每 token 耗时

数据来源与参考

  • vLLM 官方文档:Production Metrics(docs.vllm.ai)
  • NVIDIA 开发者博客:LLM 推理延迟(developer.nvidia.com/blog)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌