两种慢,两个指标
- 首字延迟(TTFT):从发出请求到看见第一个字的时间——决定「有没有在动」的体感;
- 输出速度(每秒 token 数):吐字快慢——决定「读完要多久」的体感。
用户说「慢」,八成是在抱怨首字延迟(等待时没有任何反馈最难受)。所以两个指标要分开测、分开优化。
首字延迟的主要成因
- 排队:并发打满后在网关排队——加并发上限与排队可见性(告诉用户前面有几个);
- 长输入:上下文越长,预处理越慢——精简提示词、减少无关检索结果;
- 串行前置步骤:先查库、再查向量、再调模型——能并行的并行(检索与权限校验同时做);
- 冷启动:空闲后第一个请求特别慢——保留最小预热实例。
输出速度的主要成因
- 模型大小:小模型通常更快;
- 输出长度:说得越多总时长越长——明确要求「先给结论,最多 5 行」;
- 流式与否:流式输出不改变总时长,但显著改善体感——首字一到就该开始渲染;
- 工具往返:智能体每轮工具调用都会重新生成——减少轮次比换模型更有效。
该测什么
- 首字延迟的 P95(平均值会掩盖长尾);
- 每秒输出 token 数的分布;
- 端到端完成时间,按任务类型分组(问答 / 抽取 / 生成)。
优化顺序(性价比从高到低)
- 开流式:零成本改善体感;
- 并行化前置步骤:把串行链路拆开;
- 精简上下文:检索取少而准的段落;
- 限制输出长度:明确格式与上限;
- 路由到小模型:只对简单任务做;
- 加缓存:重复问题直接命中(同时改善两项)。
一个容易忽略的点
给用户进度反馈:即使整体没变快,分阶段的提示(正在检索资料、正在生成)也能显著降低「卡住了」的感知——这属于体验优化,成本极低,效果却常常超过换模型。