概述
他们在不更改模型编写文本的情况下缩短了延迟。
深入探讨
正常的自回归解码速度很慢,因为每个令牌都需要完整的前向传递,并且令牌严格地一个接一个地生成,导致 GPU 未得到充分利用。推测性解码通过一个廉价的起草者解决了这个问题,该起草者提出了一大块候选标记,然后大型目标模型并行验证这些候选标记;与目标生成的内容相匹配的任何前缀都会被免费接受,并且第一个不匹配会被纠正。推测流和美杜莎式多令牌预测将起草者折叠到模型本身中:额外的轻量级预测头(或推测令牌流)让一个模型既起草又验证,避免了单独的草案模型。由于验证是精确的,因此输出分布与标准解码相同,因此您只需减少 2 到 3 倍的连续步骤。
现实世界的实施
使用美杜莎式额外预测头将聊天助手的响应延迟缩短 2 到 3 倍
将自推测解码添加到推理服务器,因此不需要托管单独的草稿模型
加速代码完成,其中长的、可预测的令牌运行被大块地接受
通过从每个内存绑定的前向传递中提取更多令牌来降低每个请求的 GPU 成本
推测流和多令牌预测的未来
不需要单独草稿模型的自我推测方法正在成为推理引擎的默认方法,并且研究正在通过更好的草稿头、树结构候选以及联合训练基础模型以进行多标记预测(这也可以提高质量)来提高接受率。希望这些技术能够与量化和批处理相结合,以便即使模型不断增长,交互式助手也会感觉即时。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是推测流和多令牌预测?
推测流和多令牌预测通过一次猜测多个未来令牌并在一次传递中验证它们而不是一次生成一个令牌来加速语言模型的生成。他们在不更改模型编写文本的情况下缩短了延迟。
为什么标准自回归解码在 GPU 上通常很慢?
每个令牌都需要自己的前向传递,并且它们是严格顺序的,因此 GPU 受内存带宽限制,并且在解码过程中未得到充分利用。
“起草者”在推测解码中做什么?
廉价的起草者提出了一大块候选标记,然后大型目标模型并行验证这些标记。
推测解码中如何保持输出质量?
验证(贪婪匹配或拒绝采样)确保接受的令牌遵循目标模型将产生的精确分布,因此输出不变。
美杜莎式多令牌预测与经典推测解码有何区别?
美杜莎式的方法将草稿折叠到具有额外预测头的模型中,从而避免了托管单独的草稿模型的需要。
为什么变压器在解码过程中验证多个候选位置的成本几乎与验证一个候选位置的成本一样低?
在解码过程中,瓶颈是从内存中移动权重,因此在同一遍中对额外位置进行评分几乎不会增加计算成本。