当前位置: 首页 > news >正文

论文阅读:speculative decoding

Fast Inference from Transformers via Speculative Decoding

论文地址:https://arxiv.org/pdf/2211.17192

speculative sampling

为了从分布 p ( x ) p(x) p(x) 中采样,我们实际上是从分布 q ( x ) q(x) q(x) 中采样 x x x,如果 q ( x ) ≤ p ( x ) q(x) \leq p(x) q(x)p(x),则保留该样本;如果 q ( x ) > p ( x ) q(x) > p(x) q(x)>p(x),则以概率 1 − p ( x ) q ( x ) 1 - \frac{p(x)}{q(x)} 1q(x)p(x) 拒绝该样本,并重新从调整后的分布 p ′ ( x ) = norm ( max ⁡ ( 0 , p ( x ) − q ( x ) ) ) p'(x) = \text{norm}(\max(0, p(x)-q(x))) p(x)=norm(max(0,p(x)q(x))) 中采样。对于任何分布 p ( x ) p(x) p(x) q ( x ) q(x) q(x),以及以此方式采样的 x x x,确实有 x ∼ p ( x ) x \sim p(x) xp(x)

给定通过在条件前缀上运行 M q M_q Mq 获得的分布 q ( x ) q(x) q(x),我们可以采样一个标记 x 1 ∼ q ( x ) x_1 \sim q(x) x1q(x)。然后,我们通过在前缀上运行 M p M_p Mp 来计算分布 p ( x ) p(x) p(x),同时并行地推测性地计算下一个标记 x 2 x_2 x2 的分布,即在前缀上追加 x 1 x_1 x1 后运行 M p M_p Mp。一旦两项计算都完成,我们就按上述方式处理:如果 x 1 x_1 x1 被拒绝,我们丢弃 x 2 x_2 x2 的计算,并从调整后的分布中重新采样 x 1 x_1 x1;如果 x 1 x_1 x1 被接受,我们就保留两个标记。算法 1 将这一想法推广为一次采样 1 到 γ + 1 \gamma + 1 γ+1 个标记。
运行算法

分析

有几个证明需要注意一下:

单次算法期望能生成的token
  1. 单次算法期望能生成的token数量服从几何分布,但是求和项是有限制的,这里推导下​

  2. ​接受率β的定义​
    设目标模型分布为 p(x),草稿模型分布为 q(x)。草稿模型生成的单个token被目标模型接受的概率为:

β = ∑ x min ⁡ ( q ( x ) , p ( x ) ) \beta = \sum_x \min\left(q(x), p(x)\right) β=xmin(q(x),p(x))

  1. ​拒绝率α的定义​

α = 1 − β = 1 − ∑ x min ⁡ ( p ( x ) , q ( x ) ) x \alpha = 1 - \beta = 1 - \sum_x \min(p(x), q(x)) x α=1β=1xmin(p(x),q(x))x

  • 假设每个token的接受事件独立且同分布(i.i.d.),草稿模型一次生成 K 个token:

  • ​首次拒绝发生在位置 r​ 的概率为:

    P ( r ) = ( 1 − β ) β r − 1 ( 1 ≤ r ≤ K ) P(r) = (1-\beta) \beta^{r-1} \quad (1 \leq r \leq K) P(r)=(1β)βr1(1rK)

    所有token均被接受​​ 的概率为: β K \beta^K βK

  • 综上期望能生成的token数量为:

    γ = ∑ r = 1 K r ⋅ P ( r ) ⏟ 拒绝前生成的token + K ⋅ β K ⏟ 全接受时生成K个token \gamma = \underbrace{\sum_{r=1}^K r \cdot P(r)}_{\text{拒绝前生成的token}} + \underbrace{K \cdot \beta^K}_{\text{全接受时生成K个token}} γ=拒绝前生成的token r=1KrP(r)+全接受时生成Ktoken KβK

代入 P ( r ) P(r) P(r) 后展开:

γ = ∑ r = 1 K r ⋅ ( 1 − β ) β r − 1 + K β K \gamma = \sum_{r=1}^K r \cdot (1-\beta) \beta^{r-1} + K \beta^K γ=r=1Kr(1β)βr1+KβK

  1. 几何级数求和​

几何级数求和公式为:

∑ r = 1 K r β r − 1 \sum_{r=1}^K r \beta^{r-1} r=1Krβr1 求和处理:

  • ​令 S = ∑ r = 1 K β r − 1 S = \sum_{r=1}^K \beta^{r-1} S=r=1Kβr1​:

S = 1 + β + β 2 + ⋯ + β K − 1 = 1 − β K 1 − β S = 1 + \beta + \beta^2 + \cdots + \beta^{K-1} = \frac{1-\beta^K}{1-\beta} S=1+β+β2++βK1=1β1βK

  • ​对 S S S 求导​​:

∑ r = 1 K r β r − 1 = d d β ( ∑ r = 0 K β r ) = d d β ( 1 − β K + 1 1 − β ) = 1 − ( K + 1 ) β K + K β K + 1 ( 1 − β ) 2 \sum_{r=1}^K r \beta^{r-1} = \frac{d}{d\beta} \left( \sum_{r=0}^K \beta^r \right) = \frac{d}{d\beta} \left( \frac{1-\beta^{K+1}}{1-\beta} \right) = \frac{1 - (K+1)\beta^K + K\beta^{K+1}}{(1-\beta)^2} r=1Krβr1=dβd(r=0Kβr)=dβd(1β1βK+1)=(1β)21(K+1)βK+KβK+1

  • ​代入γ表达式​​:

γ = ( 1 − β ) ⋅ 1 − ( K + 1 ) β K + K β K + 1 ( 1 − β ) 2 + K β K = 1 − ( K + 1 ) β K + K β K + 1 1 − β + K β K \gamma = (1-\beta) \cdot \frac{1 - (K+1)\beta^K + K\beta^{K+1}}{(1-\beta)^2} + K\beta^K = \frac{1 - (K+1)\beta^K + K\beta^{K+1}}{1-\beta} + K\beta^K γ=(1β)(1β)21(K+1)βK+KβK+1+KβK=1β1(K+1)βK+KβK+1+KβK

  • 化简​​:

γ = 1 − β K 1 − β \gamma = \frac{1 - \beta^K}{1-\beta} γ=1β1βK

​物理意义​​:

  • K → ∞ K \to \infty K时, γ → 1 1 − β = 1 α \gamma \to \frac{1}{1-\beta} = \frac{1}{\alpha} γ1β1=α1(理想无限长草稿)。
  • 例如 β \beta β = 0.8` 时, γ max = 5 \gamma_{\text{max}} = 5 γmax=5,即平均每次生成5个token。

得证

Walltime的时间优化

​定理 3.8​​:算法 1 在总运行时间上的预期改进因子为
‘ 1 − α γ + 1 ( 1 − α ) ( γ c + 1 ) ‘ `\frac{1 - \alpha^{\gamma + 1}}{(1 - \alpha)(\gamma c + 1)}` (1α)(γc+1)1αγ+1

​证明​​:
记运行目标模型 M p M_p Mp​单步​​的成本为 T T T
算法 1 的​​单次运行成本​​为 T c γ + T Tc\gamma + T Tcγ+T(其中 c γ T c\gamma T cγT用于运行近似模型 M q M_q Mq γ \gamma γ 次, T T T 用于运行 M p M_p Mp 一次)。
根据单次算法期望能生成的token算法推导,单次运行​​平均生成 token 数量​​为 1 − α γ + 1 1 − α \dfrac{1 - \alpha^{\gamma + 1}}{1 - \alpha} 1α1αγ+1
因此,使用算法 1 生成单个 token 的​​总体预期成本​​为:
( c γ + 1 ) ( 1 − α ) 1 − α γ + 1 T ‘ \frac{(c\gamma + 1)(1 - \alpha)}{1 - \alpha^{\gamma + 1}}T` 1αγ+1(cγ+1)(1α)T
由于标准解码算法生成单个 token 的成本为 T
比较可得上述改进因子。∎
(注:符号 “∎” 表示证明结束)


关键术语说明:

英文术语中文翻译符号含义
walltime总运行时间-算法从启动到结束的时钟时间
expected improvement factor预期改进因子-优化后时间开销的缩减比例
cost per step单步成本 T T T目标模型 M p M_p Mp 推理一个 token 的时间
approximation model近似模型 M q M_q Mq快速但低精度的草稿模型
tokens标记(Token)-模型生成的基本文本单位
rejection rate拒绝率 α \alpha α草稿模型 M q M_q Mq 的 token 被目标模型 M p M_p Mp 拒绝的概率
γ \gamma γ生成长度 γ \gamma γ草稿模型单次运行的 token 生成数
cost ratio成本比 c c c M q M_q Mq M p M_p Mp 的单步时间比值( 0 < c < 1 0 < c < 1 0<c<1

公式解析:

  1. ​改进因子​
    1 − α γ + 1 ( 1 − α ) ( γ c + 1 ) \frac{1 - \alpha^{\gamma + 1}}{(1 - \alpha)(\gamma c + 1)} (1α)(γc+1)1αγ+1
  • ​分子​ 1 − α γ + 1 1 - \alpha^{\gamma+1} 1αγ+1:草稿模型连续生成 \gamma 个 token 均未被拒绝的概率补偿
  • ​分母​ ( 1 − α ) (1-\alpha) (1α):单 token 接受率, γ c + 1 \gamma c + 1 γc+1:草稿+验证的总时间成本

该值 ​​>1​​ 时表示加速,值越大加速效果越显著

  1. ​单 token 成本公式​
    ( c γ + 1 ) ( 1 − α ) 1 − α γ + 1 T \frac{(c\gamma+1)(1-\alpha)}{1-\alpha^{\gamma+1}}T 1αγ+1(cγ+1)(1α)T
  • ​分子​ ( c γ + 1 ) ( 1 − α ) T (c\gamma+1)(1-\alpha)T (cγ+1)(1α)T:草稿生成+验证的实际计算量
  • ​分母​ 1 − α γ + 1 1-\alpha^{\gamma+1} 1αγ+1:有效 token 产出的概率加权
操作数计算

操作数的计算量也是类似的,直接贴结论了

( 1 − α ) ( γ c ^ + γ + 1 ) 1 − α γ + 1 \frac{(1-\alpha)(\gamma \hat{c}+\gamma+1)}{1-\alpha^{\gamma+1}} 1αγ+1(1α)(γc^+γ+1)

Reference

https://arxiv.org/pdf/2211.17192

相关文章:

  • Go语言同步原语与数据竞争:Mutex 与 RWMutex
  • Mac电脑-Office 2024 长期支持版 PPT、Excel、Word(Mac中文)
  • 基于Django的购物系统
  • 快速搭建运行Django第一个应用—投票
  • 从实验室到实践:无人机固件越权提取技术解析
  • 无人机接收机运行技术要点分析!
  • 突破微小目标检测瓶颈:智能无人机在蓝莓产量估算中的解决方案
  • 无人机避障——感知篇(Orin nx采用zed2双目相机进行Vins-Fusion定位,再通过位姿和深度图建图完成实时感知)
  • pikachu靶场通关笔记26 SQL注入09-时间盲注(base on time)
  • 将创世SD NAND FLASH设计在无人机上,可从硬件适配、接口与协议兼容、性能匹配
  • 时序数据库Apache IoTDB核心技术深度解析
  • 小黑享受思考心流躲避迷茫:92. 反转链表 II
  • FFmpeg 压缩视频文件
  • 中国第七次人口普查100m网格化人口数据集(Tif/分省/分市)
  • 在Windows平台上使用MinGW编译C/C++项目,常见的构建工具
  • 22、话题重名及解决方案
  • Python训练营---DAY52
  • nginx学习
  • 【threejs】每天一个小案例讲解:常见材质
  • 单链表经典算法题之分割链表
  • 给百度做网站的公司/设计网站都有哪些
  • 威海哪家网站做的好/销售网络平台
  • 广州市网站建设 乾图信息科技/app注册推广
  • 高端企业网站建设好的公司/整合营销公司排名
  • 做网站用dramwaver还是vs/广州百度推广客服电话
  • 凯里做网站/百度收录技术