一句话定义:Medusa 是一种投机解码(speculative decoding)方案——在原本的大模型(backbone)顶上额外挂几个轻量解码头(Medusa heads),让它们同时猜出未来好几个位置的词,再用一次树状验证(tree attention)核对,只留下和原始模型分布一致的猜测。
为什么需要它
大模型逐字生成时,一次只吐一个 token。瓶颈往往不在算力,而在显存搬运——GPU 算得飞快,却总在等权重读进来。投机解码的思路是"先猜后核":用便宜的方式猜一串候选,再让大模型一次性核对整串,猜对的部分直接采纳。
传统做法是另训一个小模型当草稿模型(draft model)。Medusa 换了路子:不另起炉灶,直接在原生模型最后一层的隐状态上接出多个头——第 1 个头预测下一个词,第 2 个头预测下下个词,以此类推。每个头给出自己最看好的若干候选,拼起来自然长成一棵树:很多路径共享前缀。配合特制的注意力掩码,一次前向传播就能同时算出所有候选位置的概率。
打个比方:用输入法打字。你敲了"今天天",输入法"啪"地蹦出一排候选:"气不错""气真好"……你扫一眼就知道选哪个,不必一个字一个字地敲。Medusa 的解码头就是给大模型装的输入法联想;而验证环节相当于严格校对——用典型接受(typical acceptance)或拒绝采样一类方法逐条核对,保证最终输出分布与原模型逐字解码一致。这不是"差不多就行",而是数学上的等价。
和相邻概念的区别
| 传统投机解码 | Medusa | |
|---|---|---|
| 谁来猜 | 外挂的草稿模型 | 模型自带的多个解码头 |
| 额外显存 | 要装下整个草稿模型 | 只多几个头,很轻 |
| 是否要训练 | 要训草稿模型并与主模型对齐 | 要训解码头;部分做法还会联合微调主干 |
| 验证方式 | 一次并行核对一条候选串 | 树状注意力,一次核对多条路径 |
对从业者和普通人的意义
对推理工程师:省显存、少一次模型切换开销,适合显存紧张又想压延迟的场景。但加速效果强依赖批次大小、采样温度、任务类型——高并发、高吞吐场景下收益常常不明显,甚至可能因为验证开销而变慢。具体能快多少、支持哪些模型,以官方页面和论文为准。
对普通人:这类技术属于"同一个模型、更快的回复",也是各家产品延迟持续下降的原因之一。它不改变模型答什么,只改变答得多快。
