标准回答
实现机制(独占一行)
LLM 本身就是自回归逐 token 生成的。流式输出指服务端每解码出一个或一小段 token 就立即推送给客户端,而不是等整段生成完再一次性返回。
传输方式
最常用 SSE:服务端保持长连接,以 text/event-stream 持续下发数据块,客户端边收边渲染(OpenAI/Anthropic 等 API 的 stream 模式即如此)。也可用 WebSocket 或 HTTP chunked transfer。推理框架如 vLLM(参考 LLM 部署实践)原生支持流式。
好处
- 降低首字延迟(TTFT):用户在第一个 token 生成后就能看到内容,无需等待全部生成。
- 体验更好:长回答边生成边显示,感知更快、可随时中断。
- 资源更友好:客户端可尽早处理/展示,长连接下不必缓冲整段响应。
代价
客户端需逐块拼接与渲染,结构化输出(如 JSON)解析更麻烦,要处理连接中断、超时与错误事件,比一次性返回复杂。
常见误区
⚠️ 常见踩坑
流式只降低「首字延迟」和体验,并不减少总生成时间或总 token 成本;也别在需要完整 JSON 才能动作的场景天真地边流边解析,应等结构完整或用容错增量解析。
追问
追问 1:TTFT 和 TPOT 分别指什么?
追问 2:流式输出下如何做内容安全/护栏校验?
可边流边用轻量规则做敏感词增量过滤;对需要整体判断的校验(如结构、事实),先缓冲或在结束事件触发,必要时撤回/覆盖已展示内容,或采用先生成后审再放行的折中。
追问 3:SSE 相比 WebSocket 为何在 LLM 场景更常用?
SSE 是单向服务端到客户端推送,基于普通 HTTP,实现简单、自动重连、易过代理与负载均衡,正好契合「服务端持续吐 token」的单向需求;WebSocket 适合需要双向实时交互的场景。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具
- vLLM
高吞吐 LLM 推理引擎,77,418+ stars。采用 PagedAttention 显存优化技术,吞吐量比 HuggingFace Transformers 高 24 倍,是生产环境部署大模型推理的首选方案,支持 OpenAI 兼容 API