深圳Yolo 视觉
深圳
立即加入
词汇表

推测性解码

探索推测性解码如何将AI推理速度提升2-3倍。了解该技术如何优化大型语言模型和Ultralytics 实现更快速、高效的输出。

推测性解码是一种高级优化技术,主要应用于大型语言模型(LLMs)及其他序列生成任务,可在不降低输出质量的前提下显著加速推理过程。 在传统的自回归生成中,模型每次仅生成一个标记,每个步骤都需要等待前一步完成。这种过程可能非常缓慢,尤其在高性能硬件上,内存带宽而非计算速度往往成为瓶颈。 投机性解码通过采用更小、更快的"草稿"模型来解决此问题,该模型可并行预测未来令牌序列,随后由更大、更精确的"目标"模型进行单次验证。若草稿正确,系统将一次性接受多个令牌,从而有效实现生成过程的跳跃式推进。

投机性解码如何运作

该核心机制基于以下观察:序列中的许多词符——例如"the"、"and"这类功能词或明显可预测的词——易于预测且无需动用大型模型的全部计算能力。通过将这些简单预测任务卸载至轻量代理模型,系统减少了重型模型被调用的次数。

当目标模型审查草拟序列时,会采用并行验证步骤。由于GPU高度优化了批量处理能力,同时检查五个草拟令牌所需时间与生成单个令牌大致相当。若目标模型认可草稿内容,这些令牌即被最终确定。 若在任何环节出现分歧,序列将被截断,正确令牌被插入,流程随之重启。该方法确保最终输出在数学上与目标模型独立生成结果完全一致,在保持精度的同时,多数场景下可将速度提升2至3倍。

实际应用

这项技术正在改变各行业部署生成式人工智能的方式,尤其是在延迟至关重要的场景中。

  • 实时代码补全:在集成开发环境(IDE)中,AI编码助手必须在开发者输入时即时提供建议。通过推测性解码技术,这些助手能利用小型模型快速生成整行代码,同时大型基础模型在后台验证语法与逻辑。这种机制带来流畅无缝的用户体验,让操作如同实时输入般自然,而非等待服务器响应。
  • 边缘设备上的交互式聊天机器人:由于硬件资源有限,在智能手机或笔记本电脑上运行强大的大型语言模型(LLM)具有挑战性。 通过采用推测性解码技术,设备可在本地运行量化的小型模型进行响应草拟,同时不定期调用更大规模的模型(云端或更复杂的本地模型)进行验证。这种混合方案实现了高品质虚拟助手交互且延迟极低,使边缘AI在复杂任务中更具可行性。

与其他概念的关系

区分推测性解码与类似的优化策略至关重要。

  • 模型量化虽然量化会降低模型权重的精度(例如从FP16降至INT8)以节省内存并加速计算,但它会永久改变模型结构,可能导致性能轻微下降。相反,推测性解码不会改变目标模型的权重,并能保证相同的输出分布。
  • 知识蒸馏 该方法通过训练较小的学生模型来模仿较大的教师模型。学生模型最终将完全替代教师模型。而在推测式解码中,小型模型(起草器)与大型模型(验证器)在推理过程中协同工作,而非相互替代。

实施实例

虽然推测性解码通常内置于服务框架中,但验证预测的概念对高效人工智能至关重要。以下是一个概念性示例,使用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)

对未来人工智能发展的影响

随着模型规模持续扩大,计算能力与内存带宽之间的差距——通常被称为"内存墙"——正不断扩大。投机性解码通过最大化每次内存访问的算术强度来弥合这一差距。这种效率对生成式人工智能的大规模可持续部署至关重要,既能降低能耗又能减少运营成本。

研究人员目前正在探索将类似的推测性原理应用于计算机视觉任务的方法。例如在视频生成领域,轻量级模型可先草拟未来帧,再由高保真扩散模型进行精细化处理。随着PyTorch等框架的普及,这种推测性方法正逐渐成为计算机视觉任务的标准实践。 PyTorchTensorFlow 等框架原生集成这些优化方案后,开发者 可期待在更广泛的模态(从文本到由 Ultralytics 先进架构处理的复杂视觉数据)中 获得更快的推理延迟

对于管理此类模型生命周期的人员而言,Ultralytics 等工具可确保底层数据集和训练管道的稳健性,为高级推理技术奠定坚实基础。无论您处理的是大型语言模型还是尖端的物体检测任务,优化推理管道始终是从原型到生产的关键步骤。

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入