☰
大模型推理必懂指标全解析:SLO、TBT、MFU、Goodput 到底是什么?
2026/10/10 7:16:26 网站建设 项目流程

大模型推理必懂指标全解析:SLO、TBT、MFU、Goodput 到底是什么?

在做大模型推理优化、性能评测或面试时,我们经常会听到这些词:SLO、TBT(TPOT)、MFU、Goodput。很多人把它们和普通的“吞吐量”“延迟”混为一谈,结果优化方向完全跑偏。

这篇博客用通俗语言 + 具体例子,把这些核心概念讲清楚,并补充相关指标,帮你建立完整的推理性能认知体系。


1. SLO(Service Level Objectives)—— 服务等级目标

定义:SLO 是服务提供方对用户承诺的质量目标,通常用延迟、可用性等指标来衡量。

在大模型推理场景中,最常见的两个 SLO 是:

  • TTFT ≤ X ms(Time To First Token,首 token 延迟)
  • TBT / TPOT ≤ Y ms(后续每个 token 的平均间隔)

举例说明:

假设某聊天机器人承诺:

“95% 的请求,首 token 必须在 500ms 内返回,后续每个 token 间隔不超过 50ms。”

这就是两个具体的 SLO。
如果系统实际测出来 P95 TTFT = 800ms,那即使平均吞吐量再高,也算没有满足 SLO。

为什么重要?
用户真正在意的是“体感速度”,而不是你每秒能处理多少请求。SLO 是连接“技术指标”和“用户体验”的桥梁。


2. TBT / TPOT(Time Between Tokens / Time Per Output Token)

定义:从第二个 token 开始,每生成一个新 token 所花费的平均时间。

  • TBT(Time Between Tokens):token 与 token 之间的时间间隔
  • TPOT(Time Per Output Token):每个输出 token 的平均耗时(本质相同)

举例:

用户输入一段话后,模型开始流式输出:

  • 第 1 个 token 在 300ms 后出现(这是 TTFT)
  • 之后每隔 40ms 出现一个新 token

那么 TBT / TPOT ≈ 40ms。

注意:

  • Prefill 阶段主要影响 TTFT
  • Decode 阶段主要影响 TBT
  • 很多人只看“每秒生成多少 token”,却忽略了 TBT 是否稳定。TBT 抖动大会让用户感觉“卡顿”。

3. MFU(Model FLOPs Utilization)—— 模型算力利用率

定义:实际使用的浮点运算量 ÷ 硬件理论峰值浮点运算量。

公式简化理解:
MFU=实际有效 FLOPs硬件峰值 FLOPs \text{MFU} = \frac{\text{实际有效 FLOPs}}{\text{硬件峰值 FLOPs}}MFU=硬件峰值FLOPs实际有效FLOPs​

举例:

一块 H100 的理论峰值算力约为 1979 TFLOPS(FP16)。
如果模型实际只跑出了 600 TFLOPS 的有效计算,那么:

MFU≈6001979≈30.3% \text{MFU} ≈ \frac{600}{1979} ≈ 30.3\%MFU≈1979600​≈30.3%

为什么重要?

  • Prefill 阶段是计算密集型,追求高 MFU
  • Decode 阶段是访存密集型,MFU 通常很低(很多时候只有 5%~15%)
  • 单纯追求高 MFU 而不管延迟,往往会导致 TBT 变差

常见误区:有人看到 Decode 阶段 MFU 只有 10%,就拼命加大 batch size,结果 TBT 从 30ms 飙到 80ms,用户体验直接崩盘。


4. Goodput —— 有效吞吐量(最重要却最容易被忽略)

定义:在满足所有 SLO 约束的前提下,系统单位时间内真正成功处理的请求数(或 token 数)。

对比普通 Throughput:

  • Throughput(吞吐量):不管延迟高低,每秒处理了多少请求
  • Goodput(有效吞吐量):每秒处理了多少符合 SLO的请求

举例对比:

假设系统有两种配置:

配置每秒处理请求数满足 SLO 的比例Goodput
配置 A100 请求/秒100%100
配置 B180 请求/秒50%90

虽然配置 B 的原始吞吐量更高,但 Goodput 反而更低。用户会觉得系统“有时候很快,有时候很卡”,体验更差。

这就是为什么 DistServe、Mooncake 等系统都把优化目标定为最大化 Goodput,而不是单纯的 Throughput。


5. 相关重要概念补充

概念全称简单解释主要影响阶段
TTFTTime To First Token从发请求到收到第一个 token 的时间Prefill
TBT / TPOTTime Between / Per Output Token后续每个 token 的平均间隔Decode
E2E LatencyEnd-to-End Latency整个请求从发到收完的总时间全程
Throughput吞吐量单位时间处理的请求数或 token 数全程
Goodput有效吞吐量满足 SLO 的吞吐量全程
MFUModel FLOPs Utilization算力实际利用率主要 Prefill
MBUMemory Bandwidth Utilization显存带宽利用率主要 Decode
Batch Size批大小同时处理的请求数量全程
SLO AttainmentSLO 达成率满足 SLO 的请求占比全程

6. 一个完整例子串起来理解

场景:在线客服机器人,承诺:

  • TTFT ≤ 400ms(P95)
  • TBT ≤ 50ms(P95)

现在有两种优化方案:

方案 1:激进加大 batch

  • 平均 Throughput = 120 请求/秒
  • P95 TTFT = 650ms(超标)
  • P95 TBT = 45ms
  • 满足 SLO 的比例只有 60%
  • Goodput ≈ 72 请求/秒
  • MFU 很高(因为 batch 大)

方案 2:PD 分离 + 合理 batch

  • 平均 Throughput = 95 请求/秒
  • P95 TTFT = 320ms
  • P95 TBT = 38ms
  • 满足 SLO 的比例 = 98%
  • Goodput ≈ 93 请求/秒
  • MFU 稍低,但用户体验明显更好

结论:方案 2 的 Goodput 更高,才是真正更好的系统。


7. 总结:这些指标之间的关系

  1. SLO是目标(用户体验的底线)
  2. TTFT和TBT是衡量是否满足 SLO 的核心延迟指标
  3. MFU反映算力有没有被浪费(主要看 Prefill)
  4. Throughput是“看起来很美”的原始能力
  5. Goodput才是“真正有用”的最终目标

一句话记住:

好的推理系统,不是跑得最快的,而是在承诺的延迟范围内,能稳定服务最多用户的系统。

理解了这些概念,你在看论文(DistServe、Mooncake、vLLM 等)、做性能优化、写技术方案或面试时,就会站在更高的维度思考问题。

希望这篇博客能帮你把这些“黑话”彻底搞懂!

后记

2026年10月9日于上海,在grok辅助下完成。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询