首页/AI/大模型部署与运维速查/推测解码的显存附加账

推测解码的显存附加账

推测解码要额外装草稿模型与它自己的 KV 缓存:草稿越小开销越低,收益与接受率挂钩;估算时当作主模型预算之外的独立小账。

推测解码的额外开销

推测解码的思路是用一个小模型(草稿模型)先连续猜若干个 token,再由主模型一次性验证,猜对的直接采纳。它要同时驻留两套权重和两套缓存:草稿模型自己的权重、以及为它维护的缓存,两者都随并发增长。因此显存预算要把它当成主模型之外的一笔独立小账,而不是塞进主模型的余量里。

基本信息

额外组成草稿模型权重、草稿缓存、额外的调度与验证开销
关键指标接受率,即被主模型采纳的草稿 token 比例
收益条件接受率高且草稿模型足够小,才能净赚速度
显存形态随并发线性增长,高并发下不可忽略
启用方式推理引擎的推测解码参数,草稿模型单独指定

典型使用场景

  • 降低单 token 延迟:交互式对话对逐步输出的速度敏感,接受率高时可明显改善体感
  • 同系列小模型做草稿:与主模型同源的小模型输出风格接近,接受率通常更高
  • 批量生成任务:长文本输出场景收益被放大,但要确认显存余量足够
  • 低并发高端卡:显存宽裕时用额外开销换速度,属于划算的取舍
  • 对比验证:先小流量测接受率,再决定是否全量开启

预算与实测

预算与实测
# 预算拆法
# 总预算 = 主模型(权重 + 缓存 + 工作区)+ 草稿模型(权重 + 草稿缓存)

nvidia-smi --query-gpu=memory.used --format=csv -l 5      # 步骤一:记录主模型基线水位
# 步骤二:挂上草稿模型后重新采样,对比显存增量
# 步骤三:小流量压测,记录接受率与单 token 延迟
# 结论:收益为负或水位顶格时,换更小的草稿模型或关闭该功能

收益判断

条件收益风险
草稿模型很小且接受率高单 token 延迟明显下降显存增量小,可接受
草稿模型偏大速度提升有限权重与缓存双重占用,可能拖慢主模型
接受率低接近无收益白付显存与调度开销
高并发场景吞吐可能不升反降缓存占用挤压主力并发,显存水位顶格
显存本就紧张不适用主模型缓存被挤压,长上下文请求失败
接受率是判断收益的唯一可靠依据:不同模型组合、不同任务的接受率差别很大,必须用真实流量测,不能照搬别人的配置。
草稿模型通常与主模型同系列效果更好:分词器一致时验证过程更顺畅,分词方式差异过大会让接受率显著下降。

易错点

  • 草稿模型选得偏大:权重与缓存双重上账,收益被自身开销抵消
  • 按单并发测出的显存增量做全量规划:草稿缓存随并发线性增长,高峰期直接顶到上限
  • 只看平均延迟不看分位:接受率波动时尾延迟可能明显恶化,交互体验不稳定
  • 忽略分词器一致性:草稿与主模型分词方式差异大时接受率很低,等于白付开销

数据来源与参考

  • vLLM 官方文档:Speculative Decoding(docs.vllm.ai)
  • Hugging Face 文档:Assisted generation(huggingface.co/docs)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌