跳到正文

AI Know · 技术研究笔记

批越大吞吐越高,但尾延迟越难守住。

投机解码降单请求延迟,不等于降整体 P99;尾延迟主要由排队决定,而不是纯计算;长短请求混排会放大长尾,需按场景隔离。

听书 00:00 / --:--
00

三分钟读懂

先看结论,再决定是否深读

  1. 批越大吞吐越高,但尾延迟越难守住。
  2. 投机解码降单请求延迟,不等于降整体 P99。
  3. 尾延迟主要由排队决定,而不是纯计算。
  4. 长短请求混排会放大长尾,需按场景隔离。
  5. 两种优化路线目标不同,不可盲目叠加。
01 / DEEP DIVE

核心原理

推理服务最常见的误区,是把“吞吐”和“延迟”当成同一件事来优化。实际生产中,二者是同一张卡上互相挤压的资源:调大批处理能压低单位请求成本,却会让排队时间变长,尾延迟迅速恶化;投机解码能改善单请求响应速度,但在高并发下反而可能挤占算力,让排队更长。真正决定用户体验的往往不是平均值,而是 P99 尾延迟,而尾延迟的根因多半在排队结构,而非模型本身。

02 / DETAILS

技术细节

输入侧:排队与准入控制。 请求到达后并非立即进入计算,而是先进入调度队列。队列长度、请求长度分布、优先级共同决定等待时间。长短请求混排是典型陷阱:一个超长请求进入批次后,会拖慢同批所有短请求,尾延迟被显著放大。因此输入侧的关键不是“快点收请求”,而是按长度分桶、设置队列上限和超时丢弃策略,避免无界排队。

推理/执行侧:批处理与投机解码的真实成本。 连续批处理通过动态拼批提升 GPU 利用率,吞吐随批大小近似增长,但单请求完成时间随批大小上升。投机解码用一个小模型草拟多个 token,再由大模型并行验证,本质是用额外算力换更少的大模型串行步数。它在低并发、单请求延迟敏感场景收益明显;但在高并发下,草稿模型同样占用计算与显存带宽,会与主模型争抢资源,吞吐提升有限甚至倒退。

策略 主要收益 主要代价 适用边界
连续批处理 吞吐高、单位成本低 单请求等待变长、尾延迟上升 高并发、延迟容忍度较高
投机解码 单请求延迟下降 额外算力占用、高并发下收益衰减 低并发、交互式低延迟

输出/评测侧:看分布而非均值。 评测必须同时记录 TTFT(首 token 时间)、TPOT(每 token 时间)和 P99 尾延迟分布。只看平均延迟会掩盖排队造成的长尾;只看吞吐会忽略用户感知。正确做法是在固定 SLO 下做压测,观察不同批大小与并发下 P99 的拐点,找到吞吐与尾延迟的平衡区。

03 / IMPLEMENTATION

工程实践

  1. 按场景拆分服务等级:交互式请求走小批次低延迟通道,离线批处理走大批次高吞吐通道,避免互相拖累。
  2. 用压测找拐点而非拍脑袋定参:固定 SLO,扫描批大小与并发,记录 P99 曲线,选择拐点前的工作点。
  3. 对投机解码做开关与灰度:仅在低并发或延迟敏感入口启用,并用真实流量对比吞吐与 P99,避免默认全量开启。
05 / FAILURE MODES

风险边界

成本:投机解码在并发高时算力翻倍而收益递减,可能推高单位请求成本;大批处理虽降本,却以尾延迟为代价。幻觉:批处理与投机解码都不改变模型输出质量,但更激进的采样与截断策略可能放大不稳定输出,需保留质量回归评测。越权调用:多租户共享推理集群时,优先级与队列隔离不足会让高优请求被低优长请求挤占,形成隐性资源越权。长尾输入或延迟:超长输入是尾延迟的头号来源,必须有长度分桶、超时与降级策略,否则少数请求会拖垮整体 P99。

完整信源

事实从哪里来