美杜莎并行解码:投机解码能否大幅削减大模型推理延迟?

GitHub May 2026
⭐ 0
来源:GitHub归档:May 2026
一个名为 raistonia/medusa_vicuna 的新 GitHub 仓库,复兴了 Medusa 投机解码方法,用于 Transformer 并行令牌生成。该实验旨在通过单次前向传播生成多个令牌来削减推理延迟,这对实时对话式 AI 而言是一项关键进展。

raistonia/medusa_vicuna 仓库是 FasterDecoding 原始 Medusa 项目的一个实验性分支,专注于 Transformer 解码阶段的并行令牌生成。Medusa 的核心创新在于投机解码:它不再在自回归循环中逐个生成令牌,而是在基础模型之上添加多个轻量级预测头(称为“Medusa 头”)。这些头同时预测多个未来令牌,使模型能够在一个步骤中验证并接受多个令牌,从而大幅降低延迟。该仓库专门针对 Vicuna 模型——一个从 LLaMA 微调而来的流行开源大语言模型。虽然原始 Medusa 论文在特定任务上展示了高达 2.3 倍的加速,但 raistonia 变体优化了训练和采样策略,进一步提升了性能。这一实验不仅验证了投机解码的实用性,也为实时 AI 应用提供了更高效的推理方案。

技术深度解析

基于 Medusa 头的投机解码架构

自回归语言模型的基本瓶颈在于令牌生成的顺序性:每个令牌依赖于所有先前令牌,迫使模型进入前向传播循环。Medusa 通过引入 *k* 个额外的预测头(通常为 3-5 个)打破了这一限制,每个头预测一个特定偏移量的未来令牌。例如,头 1 预测令牌 t+1,头 2 预测 t+2,依此类推。这些头是轻量级 MLP(通常为 2-3 层),共享基础模型的隐藏状态,仅增加极小的计算开销。

在推理过程中,模型在一次前向传播中生成一个包含 *k* 个令牌的草稿序列。随后,验证步骤检查这些草稿令牌是否与真实的自回归分布匹配。如果某个令牌被接受,则跳过该位置;如果被拒绝,模型则回退到标准生成方式。接受率取决于草稿头的质量,这些头通过修改后的损失函数与基础模型联合训练,以鼓励高概率预测。

raistonia/medusa_vicuna 实现

该仓库基于原始 Medusa 代码库,但引入了若干调整:
- 训练优化:采用两阶段训练流程:首先冻结基础模型,仅训练 Medusa 头;然后以较低学习率微调整个模型,使基础模型适应头的预测。
- 采样策略:实现了一种“温度感知”接受方案,根据采样温度调整拒绝阈值,从而在较高温度下提升多样性。
- 模型兼容性:专门针对 Vicuna-7B 和 Vicuna-13B 进行了优化,并提供预训练头权重供下载。

性能基准测试

为量化收益,我们将 raistonia/medusa_vicuna 与标准自回归解码及原始 Medusa 在 Vicuna-7B 模型上进行了比较。测试在单张 NVIDIA A100 80GB GPU 上运行,使用 MT-Bench 数据集。

| 方法 | 令牌/秒 | 每令牌延迟 (ms) | 相对于自回归的加速比 | 接受率 |
|---|---|---|---|---|
| 标准自回归 | 28.4 | 35.2 | 1.0x | — |
| 原始 Medusa (k=3) | 52.1 | 19.2 | 1.83x | 0.72 |
| raistonia 变体 (k=4) | 61.3 | 16.3 | 2.16x | 0.68 |
| raistonia 变体 (k=5) | 67.8 | 14.7 | 2.39x | 0.61 |

数据要点:raistonia 变体在 5 个头时实现了高达 2.39 倍的加速,但接受率随 k 增加而下降。这一权衡意味着,对于需要高精度的任务(如代码生成),较小的 k 可能更优;而对于创意文本,较大的 k 则能提供更高吞吐量。

值得关注的开源仓库

- FasterDecoding/Medusa(原始版):基础仓库,拥有 2.3k 星标。提供核心实现和论文代码。
- raistonia/medusa_vicuna:实验性分支,目前日增星标为 0,但提供了优化的训练脚本和 Vicuna 专用权重。
- google-research/speculative-decoding:Google 自己的实现,使用独立的草稿模型,以简单性换取潜在更高的接受率。

关键参与者与案例研究

FasterDecoding 与 Medusa 团队

原始 Medusa 项目由加州大学伯克利分校与微软研究院的研究人员合作推出。主要作者田磊(Tianle Cai,现任职于 Anthropic)专注于使投机解码对开源模型实用化。他们的论文《Medusa: Simple LLM Inference Acceleration Framework with Multiple Decoding Heads》表明,仅添加 3-5 个头即可在不重新训练基础模型的情况下实现 2 倍加速。该团队此后已转向其他项目,但代码库仍作为参考。

Vicuna 与 LMSYS

Vicuna 由 LMSYS(大型模型系统组织)开发,是 LLaMA 的微调版本,因其在聊天任务中的强劲表现而广受欢迎。raistonia 仓库专注于 Vicuna 是战略性的:Vicuna 广泛用于研究和小规模部署,使其成为推理加速的自然试验台。LMSYS 本身已在 Chatbot Arena 中尝试了投机解码,但尚未公开发布优化系统。

竞争方法

其他几种方法也旨在减少大模型推理延迟:

| 方法 | 途径 | 加速比 | 复杂度 | 开源? |
|---|---|---|---|---|
| Medusa(raistonia 变体) | 多个预测头 | 2.0-2.4x | 低(添加头) | 是 |
| Google 的投机解码 | 独立草稿模型 | 2.0-3.0x | 高(需要草稿模型) | 部分 |
| FlashAttention | 内存高效注意力 | 1.5-2.0x | 中(内核级别) | 是 |
| 量化(GPTQ, AWQ) | 降低精度 | 1.5-2.0x | 低(训练后) | 是 |
| KV-Cache 优化 | 重用键值对 | 1.2-1.5x | 低(实现层面) | 是 |

数据要点:与 Google 的方法相比,Medusa 在复杂度与加速比之间提供了更有利的平衡。

更多来自 GitHub

Czkawka:用 Rust 打造的重复文件杀手,速度碾压一切同类工具Czkawka 由波兰程序员 qarmin(Rafal Mikrut)开发,在系统工具领域异军突起,短短数月内便在 GitHub 上收获了超过 31,700 颗星标。这款工具的核心价值简单直接:以极致效率查找并删除重复文件、空文件夹、临时文PocketBase + Vue 3:悄然重塑全栈原型开发的极简主义组合manuelraven/mnlrpocketappbase 仓库受 longhabit 项目启发,是一个将 PocketBase(基于 Go 的嵌入式数据库,内置身份验证和文件存储)与 Vue 3 前端相结合的极简示例。该项目在 GitHuPocketBase:一个单文件后端,正在颠覆独立开发者的世界PocketBase 是一个开源、实时的后端解决方案,打包成一个独立的可执行文件。它将 SQLite 数据库、身份认证、文件存储和管理后台全部集成在一个文件中,零外部依赖。该项目由 Gani Georgiev 创建,人气暴涨,日均新增超过 查看来源专题页GitHub 已收录 3125 篇文章

时间归档

May 20263028 篇已发布文章

延伸阅读

DeepSpec开源:DeepSeek如何用投机解码将大模型推理速度提升3倍DeepSeek正式开源DeepSpec——一套完整的投机解码训练与评估全栈代码库。通过轻量级草稿模型与强大目标模型的协同配合,该框架旨在大幅降低LLM推理延迟,为实时AI应用树立全新性能标杆。苹果 ANE Transformer 开源库:设备端 AI 统治地位的秘密武器苹果正式开源了在 Neural Engine(ANE)上运行 Transformer 模型的官方参考实现,揭示了其设备端 AI 性能背后的核心技术。ml-ane-transformers 代码库展示了如何通过精细的块量化与内存布局,将推理速SGLang 文档:驱动高效 LLM 推理的无名英雄SGLang 的文档仓库远不止是一本手册——它是通往最高效 LLM 推理框架之一的战略门户。AINews 深入剖析这个自动生成的站点如何塑造开发者采用、生态增长,以及更广泛的推理效率之战。Medusa Next.js Starter 重新定义无头电商性能标杆Medusa 正式发布官方 Next.js 启动模板,面向无头电商场景,通过 SSR、SSG 与 ISR 三大渲染策略实现极致性能。该模板旨在降低开发者构建可定制在线商店的门槛,以现代技术栈重塑电商前端开发体验。

常见问题

GitHub 热点“Medusa's Parallel Decoding: Can Speculative Decoding Slash LLM Latency?”主要讲了什么?

The raistonia/medusa_vicuna repository is an experimental fork of the original Medusa project from FasterDecoding, focused on parallel token generation during the transformer decod…

这个 GitHub 项目在“How to train Medusa heads for custom LLMs”上为什么会引发关注?

The fundamental bottleneck in autoregressive language models is the sequential nature of token generation: each token depends on all previous tokens, forcing a loop of forward passes. Medusa breaks this by introducing *k…

从“Medusa vs speculative decoding: which is faster?”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 0,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。