了解推测解码如何将 AI 推理速度提升 2-3 倍。学习这项技术如何优化 LLMs 和 Ultralytics YOLO26,以实现更快、更高效的输出。
推测解码是一种先进的优化技术,主要用于大型语言模型 (LLM) 和其他序列生成任务,以显著加速推理,同时不损害输出质量。在传统的自回归生成中,模型一次生成一个 token,每一步都等待前一步完成。这个过程可能很慢,尤其是在强大的硬件上,内存带宽而非计算速度往往成为瓶颈。推测解码通过采用一个更小、更快的“草稿”模型来解决这个问题,并行预测一系列未来的 token,然后由更大、更准确的“目标”模型进行单次验证。如果草稿正确,系统会一次性接受多个 token,有效地加速生成过程。
其核心机制基于这样的观察:序列中的许多 token——例如“the”、“and”等功能词或显而易见的补全——很容易预测,并且不需要大型模型的全部计算能力。通过将这些容易的预测卸载到一个轻量级的代理模型,系统减少了调用大型模型的次数。
当目标模型审查草稿序列时,它会使用并行验证步骤。由于 GPU 高度优化了批处理,同时检查五个草稿 token 所需的时间与生成单个 token 所需的时间大致相同。如果目标模型同意草稿,这些 token 就会被最终确定。如果它在任何一点上不同意,序列就会被截断,插入正确的 token,然后重复该过程。这种方法确保最终输出与目标模型独立生成的结果在数学上是相同的,在许多场景下,在保持准确性的同时将速度提高2到3倍。
这种技术正在改变各行业部署生成式AI的方式,尤其是在延迟至关重要的场景中。
区分推测解码与类似的优化策略很重要。
尽管推测解码通常内置于服务框架中,但验证预测的概念对于高效AI至关重要。下面是一个使用 PyTorch 的概念性示例,以说明大型模型如何对候选输入序列进行评分或验证,类似于推测解码中的验证步骤。
import torch
def verify_candidate_sequence(model, input_ids, candidate_ids):
"""Simulates the verification step where a target model checks candidate tokens."""
# Concatenate input with candidates for parallel processing
full_sequence = torch.cat([input_ids, candidate_ids], dim=1)
with torch.no_grad():
logits = model(full_sequence) # Single forward pass for all tokens
# Get the model's actual predictions (greedy decoding for simplicity)
predictions = torch.argmax(logits, dim=-1)
# In a real scenario, we check if predictions match candidate_ids
return predictions
# Example tensor setup (conceptual)
# input_ids = torch.tensor([[101, 2054, 2003]])
# candidate_ids = torch.tensor([[1037, 3024]])
# verify_candidate_sequence(my_model, input_ids, candidate_ids)
随着模型规模的不断扩大,计算能力和内存带宽之间的差距——通常被称为“内存墙”——日益扩大。推测解码通过最大化每次内存访问的算术强度来帮助弥合这一差距。这种效率对于大规模可持续部署生成式AI至关重要,从而降低能耗和运营成本。
研究人员目前正在探索将类似的推测原理应用于计算机视觉任务的方法。例如,在视频生成中,轻量级模型可以草拟未来帧,然后由高保真扩散模型进行细化。随着PyTorch和TensorFlow等框架原生集成这些优化,开发人员可以期待在更广泛的模态中实现更快的推理延迟,从文本到由Ultralytics YOLO26等先进架构处理的复杂视觉数据。
对于那些管理此类模型生命周期的人来说,利用Ultralytics Platform等工具可确保底层数据集和训练管道的稳健性,为高级推理技术奠定坚实基础。无论您是使用大型语言模型还是最先进的目标检测,优化推理管道仍然是从原型到生产的关键一步。
开启您的机器学习未来之旅