跳到主要内容

延迟优化

问题

AI 应用响应太慢(首 Token 延迟 > 3s),用户体验差,如何优化?

答案

一、延迟指标

指标含义用户感知
TTFTTime To First Token,首 Token 延迟最关键 — 用户感知"开始响应"
TPSTokens Per Second,生成速度阅读流畅度
E2E Latency端到端完成时间总等待时间

二、延迟优化全景

三、关键优化手段

1. 流式输出 — 最重要的感知优化

// 流式渲染将 TTFT 从 "等全部生成完" → "等第一个 Token"
// 用户感知延迟从 5s → 0.3~0.5s
const stream = await openai.chat.completions.create({
model: 'gpt-4o',
messages: [{ role: 'user', content: query }],
stream: true, // 开启流式
})

for await (const chunk of stream) {
const text = chunk.choices[0]?.delta?.content ?? ''
process.stdout.write(text) // 逐 Token 展示
}
核心观点

流式输出是 AI 应用 必须 开启的功能,它将用户感知延迟降低一个数量级。

2. 模型选择与量化

方案TTFT 改善效果影响
GPT-4o → GPT-4o-mini3~5 倍简单任务无影响
70B → 7B 开源模型5~10 倍复杂任务有损
FP16 → INT8 量化1.5~2 倍基本无损
FP16 → INT4 量化2~3 倍轻微有损

3. Prompt 精简

输入 Token 数直接影响 TTFT(Prefill 阶段):

优化效果
去除冗余 System Prompt节省 20~50% 输入
历史消息摘要压缩节省 50~80%
RAG 结果截断至 Top3节省 30~60%

常见面试问题

Q1: TTFT 和 TPS 哪个更重要?

答案
TTFT 更重要。用户对"何时开始响应"最敏感,研究显示超过 2s 无响应用户就感到焦虑。TPS 只要 > 5 tokens/s 就能跟上人的阅读速度。

Q2: 推测解码(Speculative Decoding)如何加速?

答案
用一个小模型(draft model)快速预测多个 Token,再用大模型一次性验证。验证比逐个生成快,因此总吞吐量提升 2~3 倍。

小模型预测: [A, B, C, D]  — 快
大模型验证: [A, B, C, ✗] — 一次验证前 3 个
接受 A, B, C → 大模型从 D 位置重新生成

Q3: 端到端延迟的瓶颈通常在哪?

答案

网络延迟 (~50ms) → Prompt 序列化 (~10ms) → Prefill (~200ms~2s) → Decode (~1~10s)
  • 短回答:瓶颈在 Prefill(取决于输入 Token 数)
  • 长回答:瓶颈在 Decode(取决于输出 Token 数)
  • Prefill 优化靠压缩输入,Decode 优化靠 KV Cache 和硬件加速

相关链接