ECDF:怎么看大模型 TTFT 的 P50、P90 和 P99?
文章目录
- 图表达什么?
- 一般使用场景
- 一句话总结
ECDF是EmpiricalCumulativeDistributionFunction 的缩写,中文通常翻译为:经验累积分布函数
在大模型性能测试中,只看平均 TTFT 往往不够。
ECDF(经验累积分布图)更适合回答:
有多少比例的请求,能在某个时间内拿到第一个 Token?
图表达什么?
横轴是TTFT(Time To First Token),纵轴是累计请求比例。
本例模拟 1000 个 LLM 请求,实际得到:
- P50 = 1.26s:50% 的请求在 1.26 秒内返回首 Token;
- P90 = 3.86s:90% 的请求在 3.86 秒内返回;
- P95 = 5.28s;
- P99 = 8.54s。
ECDF 越靠近左上角,通常意味着整体 TTFT 越低、尾延迟越好。
图中 P50 只有 1.26 秒,但 P99 已经达到 8.54 秒,说明:
大部分请求体验不错,但少量慢请求形成了明显的尾延迟。
这也是为什么大模型性能分析不能只看平均值。
核心代码:
# 1. 把 TTFT 从小到大排序x=np.sort(ttft)# 2. 为每个 TTFT 计算累计比例y=np.arange(1,len(x)+1)/len(x)# 3. 画 ECDF 曲线ax.step(x,y,where="post",linewidth=2)一般使用场景
ECDF 很适合分析:
- TTFT;
- TPOT;
- 请求总延迟;
- 输出 Token 速率;
- KV Cache 传输耗时;
- Prefill 时间;
- 排队等待时间。
尤其适合比较不同模型、不同并发或不同推理框架的P50 / P90 / P95 / P99。
一句话总结
ECDF 能同时展示大模型请求的整体延迟分布和尾延迟指标