vLLM 在 AMD GPU 上实现 Speculative Decoding

Speculative Decoding in vLLM on AMD GPUs

vLLM 在 AMD GPU 上实现 Speculative Decoding

Speculative Decoding 让 vLLM 能在一次目标模型推理中验证多个候选 token。我们在 AMD Instinct MI300X 和 MI355X GPU 上测试了五种 drafting 方法:native MTP、Gemma 4 MTP、EAGLE-3、DFlash 和 DSpark。实验显示,吞吐量提升效果因 drafting 策略、提案长度、模型家族及接受率而异。Speculative Decoding 通过“草稿-验证”机制,在保持目标模型输出行为不变的前提下,显著减少推理轮次。本文详细解析了各 drafting 架构如何从目标模型获取隐藏状态或 KV cache,并对比了它们在 ROCm 平台上的实际表现,为大规模 LLM 服务优化提供实践参考。

Speculative decoding 允许 vLLM 在单次目标模型推理中验证多个草稿 token。
  1. intothemild

    虽然 vLLM 的这篇帖子很棒,但无论是 vLLM 团队还是 AMD 团队,都有一个令人费解的地方:工作站级别的 AMD r9700 被严重忽视了。

    原生 vLLM 在这些显卡上的运行速度,与 Radiance 等 vLLM 分支相比慢得离谱。生成速度从 20-30t/s 直接提升到 150-200t/s。

    目前 AMD 和 vLLM 的大部分工作似乎都集中在数据中心卡,或者 AMD AI Halo/Ryzen 上,却忽略了 R9700 AI Pro。

    真希望这种情况能有所改变。

  2. flufluflufluffy

    这完全超出了我的专业领域,所以可能是个蠢问题,但目标模型是如何验证候选 token 的?直觉上,我假设它必须执行正常的自回归解码,才能知道“正确”的 token 是什么,以便与候选 token 进行比较。但这显然违背了推测性解码的初衷,所以肯定有其他方法。

    另外,"target model"和"target-model"有什么区别吗(如果有的话)?我注意到大约一半的实例用了连字符,另一半没用。

  3. myuzio

    非常正确,比如我看到我的同事在应用 DRY 原则时,完全没有考虑到它可能带来的复杂性。这确实让代码量变小了,但往往是以增加复杂性为代价的。

  4. jeanmichelselli

    在我看来,LLM 是近年来机器学习领域最迷人的成果之一。抛开围绕它们的炒作,专注于数学本身,你就能很快看到它们巨大的变革潜力。很高兴看到有很多研究朝这个方向进行,但我希望这些研究主要来自学术界……

同日更多故事

2026-09-07