核心要点

  • 能讲机制:自回归模型token 生成,每生成一个就推送,而非等全部完成

  • 能讲传输:常用 SSE(Server-Sent Events),也可用 WebSocket / chunked HTTP

  • 能讲收益:显著降低首字延迟(TTFT),用户立即看到输出,体验更顺滑

  • 能讲代价:错误处理/解析更复杂,需逐块拼接、处理中断与结构化解析

标准回答

实现机制(独占一行)

LLM 本身就是自回归逐 token 生成的。流式输出指服务端每解码出一个或一小段 token 就立即推送给客户端,而不是等整段生成完再一次性返回。

传输方式

最常用 SSE:服务端保持长连接,以 text/event-stream 持续下发数据块,客户端边收边渲染(OpenAI/Anthropic 等 API 的 stream 模式即如此)。也可用 WebSocket 或 HTTP chunked transfer。推理框架vLLM(参考 LLM 部署实践)原生支持流式。

好处

  • 降低首字延迟(TTFT):用户在第一个 token 生成后就能看到内容,无需等待全部生成。
  • 体验更好:长回答边生成边显示,感知更快、可随时中断。
  • 资源更友好:客户端可尽早处理/展示,长连接下不必缓冲整段响应。

代价

客户端需逐块拼接与渲染,结构化输出(如 JSON)解析更麻烦,要处理连接中断、超时与错误事件,比一次性返回复杂。

常见误区

⚠️ 常见踩坑

流式只降低「首字延迟」和体验,并不减少总生成时间或总 token 成本;也别在需要完整 JSON 才能动作的场景天真地边流边解析,应等结构完整或用容错增量解析。

追问

追问 1TTFT 和 TPOT 分别指什么?

TTFT(Time To First Token)是从请求到收到第一个 token 的延迟,主要受 prefill 阶段影响;TPOT(Time Per Output Token)是后续每个 token 的平均生成间隔,受 decode 速度影响。流式优化的核心感知指标是 TTFT。

追问 2流式输出下如何做内容安全/护栏校验?

可边流边用轻量规则做敏感词增量过滤;对需要整体判断的校验(如结构、事实),先缓冲或在结束事件触发,必要时撤回/覆盖已展示内容,或采用先生成后审再放行的折中。

追问 3SSE 相比 WebSocket 为何在 LLM 场景更常用?

SSE 是单向服务端到客户端推送,基于普通 HTTP,实现简单、自动重连、易过代理与负载均衡,正好契合「服务端持续吐 token」的单向需求;WebSocket 适合需要双向实时交互的场景。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。

🛠️ AI 工具

  • vLLM

    高吞吐 LLM 推理引擎,77,418+ stars。采用 PagedAttention 显存优化技术,吞吐量比 HuggingFace Transformers 高 24 倍,是生产环境部署大模型推理的首选方案,支持 OpenAI 兼容 API