← 返回题库
推理与部署中等

推理首 token 延迟(TTFT)如何优化?

#TTFT#prefill 优化#chunked prefill#prefix caching

题目

在线大模型服务中,首 token 延迟(TTFT)是用户体验关键指标。请说明其瓶颈与优化手段。

参考答案

关键指标定义

  • TTFT(Time To First Token):从请求到第一个 token 输出的时间,由 prefill 阶段主导。
  • TPOT(Time Per Output Token):生成阶段每 token 时间,由 decode 主导。
  • 端到端延迟 = TTFT + (输出 token 数 - 1) × TPOT

TTFT 瓶颈

  1. Prefill 计算密集:要处理整个 prompt(可能数千 token),是计算瓶颈(与 decode 的访存瓶颈不同)。
  2. 长 prompt:上下文越长,prefill 越慢,TTFT 线性增长。
  3. 调度等待:请求排队等 batch 槽位。
  4. KV Cache 重建:无前缀复用时每次都重算。

优化手段

1. Prefill 阶段优化

  • Chunked Prefill:把长 prompt 切块,与 decode 请求混批调度,避免长 prefill 阻塞短请求。vLLM、SGLang 都支持。
  • Flash Attention:加速 prefill 注意力计算(见 Flash Attention 题)。
  • 张量并行:多卡切分 prefill 计算。

2. 前缀复用

  • Prefix Caching / RadixAttention:复用系统提示、few-shot 示例等公共前缀的 KV,跳过重算。多轮对话受益最大。
  • Session 复用:同一会话的历史 KV 保留,下轮只算新增部分。

3. 调度优化

  • 优先级调度:交互请求优先于批量请求。
  • 抢占:高优请求可抢占低优请求的显存(vLLM 支持)。
  • 预留预算:给 prefill 预留计算预算,避免被 decode 占满。

4. 模型侧

  • 更小模型:用蒸馏/量化的小模型处理简单请求(模型路由)。
  • GQA/MLA:减少 KV 量,间接加速 prefill。
  • 稀疏注意力:长上下文用滑动窗口等降低 prefill 复杂度。

5. 工程侧

  • 流式输出:第一个 token 立刻返回,体感延迟 = TTFT 而非端到端。
  • 预加载:热门模型常驻显存,避免冷启动。
  • 连接优化:HTTP/2、流式 SSE 减少网络延迟。

面试加分点

  • 强调 prefill 是计算瓶颈、decode 是访存瓶颈,二者优化思路完全不同。
  • TTFT 对体验极敏感(用户等待感),TPOT 影响吞吐——在线服务重 TTFT,离线批处理重吞吐。
  • Chunked prefill 是 vLLM 0.5+ 的关键改进,显著降低长 prompt 下的尾延迟。

出处:vLLM/SGLang 文档、推理服务化面经。

内容来源

整理自推理服务化面经与 vLLM/SGLang 文档

本站内容整理自公开面经与开源仓库,仅供学习交流,严禁杜撰。