2. Medusa

Speculative Decoding 难以获取draft模型,Medusa通过复用原始LLM的权重,训练参数规模较小的增量权重用于预测 Draft Token,这种在生成 Draft Token 时复用原始 LLM 权重的方式也叫 Self Drafting
LM_Head是原始模型的权重,用于预测Next token,Medusa Head是增量权重,负责在Draft phase预测Draft Tokens。在多个 Medusa Head 中,Medusa Head 1 负责预测 Next Next Token,Medusa Head 2 负责预测 Next Next Next Token
验证Draft

Draft的验证路径其实是一个有向无环图,因此验证开销很大。
Medusa提出Tree attention,将所有路径展开为一维的序列,将这个序列作为一个序列输入放到模型中运行。其中 Attention 阶段 Token 之间会进行注意力计算,为了避免不同路径之间的 Token 计算注意力,需要将其他 Token 加上 Mask,不让某一路径的 Token “看到” 其他路径的 Token。
此外,为了避免不必要的overhead,通过先验的方式对 Draft 树 进行剪枝,将接收概率低的路径提前剪掉,缩短验证序列长度。
存在的问题
Medusa 采用了隐状态并行预测多步 Draft Tokens,在预测间隔 Tokens 时(即 Next Token 以后的 Draft Token),Draft Token 并不知道上一个 Token,进而影响了准确率