使用DSpark投机解码加速LLM推理

💡 原文英文,约1300词,阅读约需5分钟。
📝

内容提要

DSpark是一种投机解码技术,通过并行草稿与轻量级顺序组件结合,提升LLM生成速度。在llama.cpp中测试Qwen3-8B,启用DSpark后生成速度从95.0提升至124.9 tokens/s,约31.5%加速。尽管MTP更通用,DSpark在草稿质量上占优,但模型支持有限,适合实验。

🔎

延伸解读

DSpark的加速原理与适用场景

DSpark通过并行草稿与轻量级顺序组件结合,在保持并行速度的同时提升草稿质量。文章实测显示,在Qwen3-8B上启用DSpark后,生成速度从95.0提升至124.9 tokens/s,约31.5%加速。但需注意,该加速效果基于特定模型和设置,实际收益可能因模型、硬件及工作负载而异。对于长文本生成任务,生成吞吐的提升对整体延迟影响更大。

DSpark与MTP的权衡

文章指出,尽管DSpark在草稿质量上可能优于MTP,但MTP更通用且支持更广泛。DSpark目前仅少数模型有兼容的草稿模型,且llama.cpp中的实现较新,可能不稳定。因此,对于本地推理,MTP仍是更实用的选择,而DSpark更适合作为实验性技术探索。

使用DSpark的注意事项

启用DSpark时,需确保目标模型与草稿模型匹配,并正确设置参数如--spec-type draft-dspark和--spec-draft-n-max。文章实测中,DSpark的提示处理速度有所下降(从294.6降至88.0 t/s),但生成速度提升显著。用户应关注生成速度指标,并注意可能存在的兼容性和稳定性问题。

Q&A

什么是DSpark投机解码?

DSpark是一种投机解码技术,通过并行草稿与轻量级顺序组件结合,提升LLM生成速度。它由DeepSeek提出,旨在改进投机解码中的草稿生成部分。

DSpark与传统的投机解码方法有何不同?

传统方法使用较小的草稿模型,而DSpark结合了并行草稿与轻量级顺序组件,使得后续草稿token能够利用先前预测的信息,同时保留并行生成的速度优势。

在llama.cpp中如何启用DSpark?

在llama.cpp中,使用--spec-type draft-dspark参数启用DSpark,并通过-md指定草稿模型,--spec-draft-n-max设置最大草稿token数,-ngld all将草稿模型加载到GPU。

使用DSpark后,Qwen3-8B的生成速度提升了多少?

在llama.cpp中测试Qwen3-8B,启用DSpark后生成速度从95.0 tokens/s提升到124.9 tokens/s,约31.5%的加速。

DSpark与MTP相比有哪些优缺点?

DSpark在草稿质量上可能优于MTP,但MTP更通用,支持更多模型。DSpark的模型支持有限,且llama.cpp中的实现较新,可能不稳定。

DSpark的草稿模型是如何工作的?

DSpark使用并行骨干网络生成草稿token,同时结合轻量级顺序组件,使后续token能利用先前预测的信息。它还能估计草稿token的置信度,丢弃低置信度部分以节省验证计算。

🏷️

标签

➡️

继续阅读