跳到主要内容

延迟感知差距:为什么3秒的流式响应比1秒的批量响应感觉更快

· 阅读需 12 分钟
Tian Pan
Software Engineer

你的用户没有秒表,他们只有感觉。而这些感觉与时钟现实的偏差,对你构建AI界面的方式至关重要。一个逐字出现、持续三秒的响应,用户普遍感觉比一秒后突然全部出现的批量响应更快——尽管批量系统在客观上更快。这不是非理性的,也不是人类认知的缺陷,而是一种有据可查的感知现象。如果你在构建AI产品时没有考虑这一点,你就是在为错误的指标做优化。

本文将剖析延迟感知背后的心理学、真正预测用户满意度的指标、利用这些感知特性的前端模式,以及何时流式传输会带来比价值更多的复杂性。

为什么感知延迟与实际延迟存在偏差

人对时间的感知既不线性也不准确。交互系统研究一贯表明,没有反馈的等待比有进度信号的等待感觉明显更长,即使时钟时间完全相同。其中的机制值得深入理解:

进度可见性是主要驱动因素。当token出现在屏幕上时,大脑会将系统登记为活跃且正在运作。动画本身成为反馈循环。相比之下,带加载圈的空白屏幕让用户接收不到任何信号——无法判断是否有进展、进展到哪一步、或者是否出了问题。这种模糊性放大了焦虑,进而放大了感知等待时间。

部分价值交付是第二种机制。通过流式传输,用户可以在响应完成之前就开始阅读。对于一个持续3秒、生成200词回答的流式响应,阅读速度正常的用户可能在生成完成之前就已读完前50个词。他们在计算过程中并行提取价值,使总时间感觉更短——因为这是有价值的时间,而非空闲时间。

控制感更为微妙,但在实证上同样显著。人机交互研究表明,将自己视为交互主动参与者的用户,在延迟期间比被动旁观者感受到更少的挫折感。流式响应创造了一种感觉:系统正在实时为用户构建内容,而不是消失后带着成品回来。这种区别听起来像哲学问题,但对用户体验的影响是具体而实在的。

实际结论:优化总生成时间往往不如优化用户在生成过程中的感知重要。在计算时就持续交付价值的系统,会胜过计算更快但隐藏过程的系统。

真正预测用户体验的指标

AI行业已经收敛到三个延迟指标,你应该根据工作负载来决定优化哪一个:

**首token时间(TTFT)**衡量从提交请求到第一个输出token出现之间的间隔。这是决定对话式AI用户满意度的关键指标。研究表明,p95 TTFT低于500ms感觉流畅;低于200ms感觉即时;超过1.5秒则会被感知为迟钝。TTFT完全由预填充时间决定——即在任何输出开始之前处理完整输入的计算成本——这个成本随提示词长度增加而增长。长系统提示和大量上下文窗口会显著增加TTFT。

**每输出token时间(TPOT)**衡量第一个token之后,连续token之间的平均间隔。计算公式为(E2E – TTFT) / (总输出Token数 - 1)。高且稳定的TPOT产生流畅的流式传输,感觉就像人在打字。高但不稳定的TPOT则产生突发式输出——token成批到达——用户发现这比均匀的慢速更令人分心。这里稳定性与速度同样重要。

端到端(E2E)延迟是从输入到最终输出的总时间。这个指标在批量工作负载中占主导地位——用户提交一份长文档后一小时才回来——但对于用户正在主动观看响应形成的对话式界面来说几乎无关紧要。

一个常见错误:团队在TTFT才是满意度驱动因素的场景中优化每秒token数(TPS)。TPS对高吞吐量长文本生成很重要——代码生成、文档摘要、报告创建。对于简短的对话轮次,快速TTFT比最大化token吞吐量重要得多。混淆这两者会导致基础设施决策无法改善用户体验。

还有一个值得注意的基准警告:TTFT计算在各框架间并不标准化。一些框架将TTFT排除在TPOT计算之外;另一些则包含在内。在跨工具比较数字之前,请务必验证方法论。

前端模式:利用感知差距

鉴于感知与现实存在偏差,工程任务变成了管理用户在生成过程中的体验,而不仅仅是最小化生成时间。

骨架屏优于加载圈。 通用加载圈现在已被认为是AI界面中的UX反模式。骨架屏——形状类似将要出现内容的占位UI元素——在对照研究中,对于相同的等待时间,感觉比加载圈快约20%。机制很简单:骨架屏设定了对即将到来内容的预期,并在内容出现之前给用户提供布局的心理模型。内容从无到有突然出现的认知冲击,被平滑的渐进式显示所取代。对于AI聊天界面,这意味着用户提交查询后立即显示消息气泡轮廓,而不是等到第一个token到达才显示任何内容。

预填充期间的打字指示器。 提交与首token之间的间隔对用户来说可能感觉像是虚空,特别是对于需要大量预填充计算的长提示词。打字指示器——动画省略号、"思考中……"状态、流式状态消息——将这段死亡时间转化为感知到的活动。这不是装饰性的;它直接解决了让等待感觉更长的心理不确定性。

长响应的渐进式披露。 不是所有内容都需要以相同粒度流式传输。对于结构化响应——列表、代码块、多节文档——展示连贯的块比逐token流式渲染不完整句子效果更好。流式传输完整的思想,短暂暂停让视觉处理,然后流式传输下一个。这需要更复杂的前端状态管理,但能产生明显更好的阅读体验。

交互模式的乐观UI。 当用户执行需要AI往返处理的操作时——编辑文档、重新运行提示词——立即显示推测性结果并在完成后进行对账,可以将感知延迟降至接近零。风险在于乐观状态与实际结果可能存在偏差,需要一次可见的修正。设计决策是:成功的乐观结果频率是否值得偶尔出现的突兀修正。对于高置信度操作(重新格式化、翻译),通常是值得的。

流式传输基础设施:SSE与WebSockets

传输层的选择影响运营复杂性和延迟特性。

**服务器发送事件(SSE)**是LLM流式传输的事实标准,原因充分。它是HTTP原生的,意味着无状态扩展——不需要粘性会话,负载均衡器正常工作。浏览器的EventSource API自动处理重连;如果连接断开,客户端无需自定义逻辑即可重试。SSE是单向的(服务器到客户端),这恰好映射了LLM响应模式:客户端发送请求,服务器流式传输token。

WebSockets适用于需要在流式传输过程中真正双向通信的场景:多用户同时编辑同一文档的协作编辑器、在下载转录时上传音频的语音界面,或者客户端需要在生成过程中提供中间输入的工具使用模式。运营成本更高——WebSocket连接是有状态的,水平扩展需要连接亲和性或共享的发布/订阅层。

实用原则:除非有具体、合理的理由需要双向流式传输,否则从SSE开始。团队过早使用WebSocket是因为感觉功能更强大,然后遇到了未预料到的扩展挑战。

对于两种传输方式,都要在客户端级别而不仅仅是服务器级别检测TTFT和TPOT。服务器与用户之间的网络条件会影响感知延迟,而服务器端指标完全遗漏了这一点。

后端优化:推测解码与KV缓存

一旦你充分利用了前端感知技巧,更深层的收益来自让生成本身更快。

KV缓存管理是大多数团队尚未充分利用的最具影响力的优化手段。在自回归生成过程中,Transformer在每一步都为上下文中的每个先前token计算键值对。KV缓存存储这些计算结果,避免重复计算。高效的缓存管理——保持高价值前缀热态、智能驱逐过时上下文、在具有共享系统提示的相似请求间使用前缀共享——可以显著减少生产工作负载的TTFT和TPOT。

推测解码解决了串行token生成的根本低效问题。该方法使用更小、更快的草稿模型提前提议多个token,然后让目标模型并行验证草稿token。如果目标接受草稿前缀,这些token会同时输出。实际加速取决于接受率——目标模型同意草稿的频率。对于草稿模型校准良好的领域(编码助手、受约束输出),接受率高且加速显著。对于开放式生成,接受率下降,收益有限。

近期工作(EAGLE-3、Mirror推测解码)通过结合训练时的推演来提升草稿质量,这些推演更好地模拟了实时解码条件,解决了早期方法中限制接受率的草稿与目标之间的分布不匹配问题。这些技术正在进入生产推理栈。

分块预填充通过将预填充计算分成块而不是在开始解码之前处理完整提示词,解决了长提示词的TTFT问题。这让服务器在预填充完成之前就开始输出token,以略微增加总生成时间为代价改善了首token时间。对于用户正在主动观看的使用场景——而非批量处理——这种权衡几乎总是值得的。

何时批量处理是正确选择

流式传输并不总是正确的架构。工程权衡值得诚实评估。

流式传输增加了真实的复杂性:前端组件需要处理部分内容状态,响应中途的连接失败需要恢复逻辑,中止/取消流程需要在客户端和服务器上协调清理。监控需要新的检测工具——TTFT和TPOT与现有可观测性栈跟踪的P99响应时间非常不同。

以下情况批量处理明显胜出:

  • 用户可以接受以分钟或小时计的延迟(文档处理、隔夜报告、数据管道)
  • 吞吐量优先于延迟(处理大型历史数据集、批量评估运行)
  • 资源效率受限(流式作业持续占用资源;批量作业按任务获取和释放资源)
  • 工程资源不足以应对流式传输的复杂性

经济框架很有用:更低的感知延迟需要更高的运营复杂性。如果你的用户可以接受批量延迟,就不要无谓地承担流式传输的复杂性税。三行相似代码优于过早的抽象;同样的原则适用于基础设施选择。

为人类认知节奏而非机器节奏设计

这个领域最具杠杆效应的洞察也是最常被忽视的:正确的目标是人类认知节奏,而非机器速度。

响应延迟(系统响应的速度)和认知延迟(用户可以对响应采取行动之前的时间)是不同的指标。200ms但输出令人困惑的响应,比500ms但输出清晰的响应体验更差。痴迷于TTFT而不考虑响应可理解性的团队,是在优化错误的层次。

类似地,期望用户以机器节奏运作的系统——动作与下一个输入机会之间没有停顿、没有时间处理部分输出再迎来下一波——即使原始速度很高也会产生摩擦。将输出分块成可读单元的流式传输,在连贯思想之间暂停,让用户有时间在下一节要求注意力之前先处理当前内容。

未来两年将胜出的AI界面,不是原始生成速度最快的——模型能力已经商品化得足够快,大多数提供商处于同一水平。胜出的将是那些管理感知、早期交付价值、清晰传达进度、并将交付节奏适配人类处理能力的系统。速度是地板,感知是天花板。


你的系统所做的事情与你的用户所体验的之间的差距是可以工程化的。在E2E延迟之前先测量TTFT。在加载圈之前先使用骨架屏。在WebSockets之前先从SSE开始流式传输。在高端推理硬件之前先投资KV缓存管理。永远记住:持续交付价值的3秒流式响应,几乎总是比让用户在沉默中等待的1秒批量响应提供更好的用户体验。

Let's stay in touch and Follow me for more thoughts and updates