在离线报告里等待一分钟或许可以接受,在车站问路、课堂辅助、无障碍字幕和在线客服中,几秒停顿就会打断交流。AI进入日常社会场景后,“能回答”之外还要“及时回答”。
实时推理优化不是单纯让 GPU 跑得更快,而是让请求从到达、排队、预填充到逐字输出的整条链路更稳定,同时不牺牲答案质量。
## 延迟至少有三种
首 token 时间决定用户多久看到第一点反馈;token 间延迟决定流式回答是否顺畅;总完成时间决定任务什么时候真正结束。
三者可能互相冲突。增大批次能提高整体吞吐,却可能让单个请求等待更久;提前输出简短确认可以改善感受,却不等于后台推理更快。
系统还要观察尾部延迟。平均两秒不能掩盖高峰时一部分用户等待二十秒。P95、P99 和超时率通常比平均值更接近真实体验。
## 预填充与解码是两种工作
预填充阶段一次处理整段输入,长文档会产生大量计算;解码阶段逐 token 生成,频繁读取模型权重和 KV 缓存,更容易受内存带宽限制。
这两种负载混在一个队列时,超长输入可能阻塞短对话。系统可以限制输入长度、分块处理,或将预填充与解码放入不同资源池。
拆分并非免费。KV 缓存需要传输,调度也更复杂。只有监控显示两阶段互相干扰时,解耦才有价值。

## 连续批处理让空位立即被利用
静态批处理等一组请求全部结束后再开始下一组。由于输出长度不同,短请求完成后留下的计算位置会闲置。
连续批处理按 token 步调度,某个请求结束,新请求就能加入。它提高 GPU 利用率,却需要调度器控制公平性,防止长请求长期占据资源。
面向社会服务时,还要区分交互和后台任务。批量摘要可以等待更大批次,实时字幕和对话应进入低延迟队列。
## KV缓存是速度与内存的交换
自回归生成每次都需要前文信息。KV 缓存保存注意力中间结果,避免为每个新 token 重算全部上下文,但会随并发和上下文长度迅速占用显存。
PagedAttention 借鉴操作系统分页思想,把缓存放进更灵活的块,减少碎片并支持共享。vLLM 因这一设计和连续批处理成为常见推理引擎之一。
对重复系统提示、固定文档前缀和多轮会话,前缀缓存还能复用相同开头。但缓存命中率必须实测;若请求几乎都不同,维护缓存反而增加复杂度。
## 推测解码用小模型先猜
大模型逐 token 生成时,可以让更小的草稿模型先提出若干候选,再由目标模型一次验证。候选被接受时,就能用较少的大模型步骤产出多个 token。
这种方法保持目标分布的版本可以在不改变输出分布的前提下加速,但收益取决于草稿命中率、硬件和批次。若草稿经常猜错,验证开销可能抵消收益。
短答案、代码补全和规律性文本可能更适合;开放创作和高并发批处理则要单独测量。

## 量化要同时测速度和任务质量
量化用更低精度表示权重或缓存,可以减少显存和带宽压力。模型更容易放进单卡,也可能提高吞吐。
精度降低带来的影响并不均匀。简单问答可能几乎不变,数学、代码、低资源语言或长上下文任务却可能更敏感。不能只用困惑度或少量演示判断。
每种精度都应跑相同任务集,比较正确率、格式、工具调用和置信度,同时记录首字延迟、吞吐、显存与能耗。
## 路由比让最大模型处理一切更有效
意图分类、固定信息检索和简单改写不一定需要最大模型。轻量模型可以处理常见请求,复杂推理再升级到更强模型。
路由器可以依据任务类型、输入长度、不确定性和实时负载做选择。失败时要有升级路径,不能为了省成本让困难请求停留在能力不足的模型上。
社会场景还需要确定性工具。列车时间、课程安排和账户状态应来自数据接口,模型负责理解问题与组织表达,而不是凭参数记忆生成。
## 边缘与云端协作
语音唤醒、降噪、简单分类和部分转写可以在设备或近端节点完成,降低往返延迟并减轻网络压力。复杂生成、全局检索和大模型推理再交给云端。
弱网环境要设计降级:文本优先于高带宽媒体,短答案优先于长解释,连接恢复后能够继续会话。实时系统的可用性不仅由最快路径决定,也由失败路径决定。
## 优化应从真实负载开始
先采集输入长度、输出长度、到达时间和任务类型,建立能重放的负载。分别测空闲、稳定并发、突发峰值和依赖故障。
每次只改变一个主要变量,例如批次、量化或缓存,再观察质量和延迟。把回答截短确实会变快,但若任务没完成,就不能算优化。
AI与社会的实时推理,最终是一次体验与资源的共同设计。最好的系统不是实验室里单次响应最快,而是在真实高峰、弱网和长尾请求中,仍能及时给出可靠结果,并知道何时退化和转交。
## 参考资料