问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

投机采样(Speculative Decoding)原理与实验验证

创作时间:
作者:
@小白创作中心

投机采样(Speculative Decoding)原理与实验验证

引用
CSDN
1.
https://blog.csdn.net/qq_41664845/article/details/86470705

投机采样(Speculative Decoding)是一种用于优化大模型推理速度的技术。通过使用一个参数量较小的Draft模型和一个参数量较大的Target模型,可以在保持推理精度的同时显著提高生成速度。本文详细介绍了投机采样的原理、实现方法以及实验结果。

概念

大模型推理过程中存在一个重要的性能瓶颈:内存访问带宽。在自回归采样过程中,每个Token的生成都需要将所有参数从存储单元传输到计算单元,导致decode阶段的速度远低于prefill阶段。现有的优化方法如in-flight batching和prefix cache虽然缓解了内存访问问题,但带宽瓶颈仍然存在。

投机采样原理

投机采样提供了一种从根本上解决内存访问带宽瓶颈的方法。其核心思想是使用两个具有不同参数量但共享相同词汇表的模型:Target模型(大模型)和Draft模型(小模型)。具体步骤如下:

  1. 给定输入序列,由Draft模型生成K个token得到输出序列。
  2. 将输入序列和Draft模型输出序列拼接,得到新的输入序列,由Target模型进行推理。
  3. 评估Target模型在每个位置上的概率分布,保留与Draft模型输出一致的token作为最终输出。

最佳与最差情况分析

  • 最佳情况:Draft模型生成的K个token与Target模型完全一致。此时,Draft模型推理K次,Target模型推理一次,可以得到K个可用的token,节省了K-1次大模型的推理。
  • 最差情况:Draft模型生成的K个token与Target模型都不一致。此时,Draft模型推理K次,Target模型推理一次,只有1个可用的token,性能与原始推理相当。

实验结果

实验中使用了一个4B参数量的Draft模型和一个70B参数量的Target模型。实验结果表明,在HumanEval数据集上,投机采样的加速效果达到了2.5倍。随着K值的增大,总耗时会出现先降后增的现象,XSum数据集上的最优K值为3。分析显示,编程数据集Human Eval的接受率明显高于XSum,这可能是因为编程任务的字符搭配更具有规律性,更容易预测。


投机采样在不同数据集上的加速效果


K值对投机采样性能的影响分析

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号