前言
在部署和压测大语言模型(LLM)推理服务时,我们经常会遇到一堆缩略词:TTFT、TPOT、E2E、QPS、TPS。
如果你是算法工程师、运维人员,或者只是对AI服务背后的性能逻辑感兴趣,这篇文章将用最通俗的语言,把这五个核心指标一次性讲透,并理清它们在并发压测中的动态关系。
1. 核心响应指标:用户体验的快与慢
这两个指标主要站在单个用户的角度,衡量一次对话的体验感。
1.1 TTFT(Time To First Token)- 首字延迟
定义: 从用户按下回车,到屏幕上出现第一个字所花费的时间。
- 关注点: 系统的初始反应速度
- 类比: 你问一个人问题,他愣神多久才开始张嘴说话
- 影响因素: 主要受用户输入长度(Prompt长度)和系统排队情况影响
- 用户感知: 如果TTFT超过2秒,用户会觉得怎么没反应?卡住了?
1.2 TPOT(Time Per Output Token)- 字间延迟
定义: 生成每一个字(Token)所需要的平均时间。
- 关注点: 输出的流畅度
- 类比: 这个人开始说话后,是口若悬河,还是一个字一个字往外蹦
- 影响因素: 主要受GPU显存带宽和批处理大小影响
- 用户感知: TPOT 50ms(每秒20字)很丝滑;TPOT 200ms(每秒5字)就会让用户着急
1.3 E2E(End-to-End Time)- 端到端总耗时
定义: 从用户提问开始,到完整获得全部回答所花费的总时间。
- 计算公式: E2E = TTFT + (TPOT × 输出长度)
- 意义: 这是用户最终需要等待的总时长,是决定用户是否会流失的买单时刻
- 场景: 在并发压测中,E2E会随着并发数增加而变长(因为要排队)
2. 系统容量指标:服务器能扛多少人?
这两个指标主要站在服务端的角度,衡量系统的承载能力和产出效率。
2.1 QPS(Queries Per Second)- 每秒查询数
定义: 系统在一秒钟内能够处理的请求数量。
- 关注点: 系统的业务处理能力
- 类比: 银行柜台每秒能接待多少位客户
- 计算公式倾向: QPS ≈ 并发数 / 平均响应时间
- 在大模型中的特殊性: 高QPS往往意味着需要将多个请求批处理,这会牺牲单个用户的TTFT和TPOT
2.2 总输出吞吐 TPS(Token Per Second)- 每秒生成字数
定义: 系统在一秒钟内能够生成并返回给用户的总Token数量。
- 关注点: 系统的真实产出能力(硬件利用率)
- 与QPS的核心区别:
| 指标 | 衡量单位 | 类比工厂 | 大模型场景 |
|---|---|---|---|
| QPS | 请求数/秒 | 每小时处理了多少个订单 | 每秒服务了多少次提问 |
| TPS | Tokens/秒 | 每小时生产了多少件商品 | 每秒生成了多少个字 |
- 价值: TPS直接反映了GPU的算力利用率。你买的A100/H800到底发挥了多大价值?看TPS
3. 压测三要素:并发数、样本数、指标解读
在执行性能压测时,你需要设置好输入参数,然后观察输出指标。
3.1 输入并发数
含义: 同时向服务器发起请求的虚拟用户数量。
- 作用: 这是你拧的水龙头开关,决定了施加压力的大小
- 动态关系:
- 并发数低:TTFT低,TPOT低,用户体验好
- 并发数升高:系统开始批处理,QPS和TPS上升,但TTFT开始变长
- 并发数过高:系统过载,TTFT暴涨,QPS和TPS反而下降(出现拐点)
3.2 样本数
含义: 总共需要发送的请求数量(或测试持续时间)。
- 作用: 决定了测试结果的置信度
- 注意事项:
- 需要预热:刚启动时GPU频率未稳定,前几十个样本通常偏慢
- 需要稳态:只有跑了足够多样本(如几百个请求),平均数据才有意义
4. 指标关系全景图
为了帮你把知识串成一张网,我们可以用一个完整的场景来模拟:
假设:你设置压测工具,模拟 20个并发用户,持续运行 5分钟,要求模型生成 100个字 的答案。
-
系统响应:
- 每个用户感受到的反应速度 = TTFT(假设0.3秒)
- 每个用户感受到的生成速度 = TPOT(假设0.05秒/字)
- 每个用户拿到完整回答的总时长 = E2E = 0.3 + (0.05 × 100) = 5.3秒
-
系统产能:
- 服务器每秒处理了多少次提问 = QPS
- 服务器每秒总共输出了多少字 = 总输出吞吐 TPS = 并发数 × (1 / TPOT) ≈ 20 × 20 = 400 Tokens/秒
-
动态权衡(黄金法则):
- QPS越高(单位时间处理请求越多),通常意味着并发越高或批处理越大
- 但并发越高,每个用户的 TTFT 和 E2E 会变长
- 当并发超过临界点,TPS 不再增长,说明GPU算力已用尽
5. 总结速查表
| 指标 | 全称 | 代表含义 | 用户体验侧重点 | 压测中的角色 |
|---|---|---|---|---|
| TTFT | Time To First Token | 看到第一个字的时间 | 初始反应 (是否灵敏) | 随并发升高而升高 |
| TPOT | Time Per Output Token | 每个字的生成速度 | 输出流畅度 | 受批处理大小影响 |
| E2E | End-to-End Time | 拿到完整回答的总时间 | 总等待时长 | 决定用户是否会流失 |
| QPS | Queries Per Second | 每秒处理的请求数 | 业务繁忙程度 | 衡量系统吞吐量 |
| TPS | Token Per Second | 每秒生成的总字数 | 硬件产出效率 | 衡量成本效益 |
写在最后
无论是优化推理引擎,还是做容量规划,理解这五个指标之间的关系都至关重要。
下次当你看到一份压测报告时,不妨多问一句:在多少并发下?TTFT和TPOT分别是多少?系统的最大TPS拐点在哪里?
你会发现,AI服务的性能调优,本质上就是在用户体验(TTFT/E2E) 和硬件利用率(TPS) 之间寻找最佳平衡点。
希望这篇文章能帮你彻底理清这些概念。如果你在实际压测中遇到有趣的案例,欢迎留言讨论。