LLM 笔记:Speculative Decoding 投机采样

1 基本介绍

  • 投机采样(Speculative Sampling)是一种并行预测多个可能输出,然后快速验证并采纳正确部分的加速策略
    • 在不牺牲输出质量的前提下,减少语言模型生成 token 所需的时间
  • 传统的语言模型生成是 串行
    • 必须生成一个,再输入到模型中,才能生成下一个
  • 投机采样的核心思想是
    • 用一个"小模型"提前生成多个候选 token(投机结果),然后用"大模型"一起验证这批候选,并行加速

2 举例

  • 比如已有 prompt 是:"The weather today is"
  • 小模型(Draft Model)快速生成多个候选 token
    • 例如预测出:"The weather today is sunny, and, warm, with, ..." 共 5 个 token
  • 大模型(Target Model)验证这些 token
    • 大模型并行地计算这 5 个 token 的概率;

    • 如果小模型的结果和大模型的前几个 token 一致(大模型在这个token上概率小于小模型的,即小模型"更有把握"),就"采纳"它;如果中途发现不一致,就在那个位置停止,用大模型重新生成。

      • 那么下一轮:
相关推荐
摇滚侠11 分钟前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis MyBatis 简单开发 阅读笔记 39
spring boot·笔记·mybatis
xieliyu.28 分钟前
计算机网络:Fiddler 抓包工具使用教程 + HTTP 协议报文格式详解
java·笔记·计算机网络·测试工具·http·java-ee·fiddler
点心的游戏开发世界39 分钟前
GDScript 入门笔记(二):变量与数据类型
笔记·游戏引擎·godot
蒸蒸yyyyzwd1 小时前
CPP选手秋招准备学习笔记day25
笔记·学习
摇滚侠2 小时前
《SpringBoot 3:入门与应用实战》第 13 章 整合 MyBatis 使用 MyBatis-Plus 阅读笔记 40
spring boot·笔记·mybatis
INS_KF11 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
tju新生代魔迷12 小时前
Verilog HDL 学习笔记(十三)| 第13章 编程语言接口(PLI)
笔记·学习
点心的游戏开发世界13 小时前
UnityShaderGraph滚动UV笔记
笔记·uv
瑞码空间14 小时前
git知识点黄金笔记
笔记·git·elasticsearch
天若有情67315 小时前
Node+MySQL小型全栈笔记项目实战课程分享
数据库·笔记·mysql