投机解码是一种通过利用较小的草稿模型并行生成候选代币来加速大型语言模型(例如DeepSeek-R1)的推理速度的技术。这种方法可以通过允许模型同时产生多个令牌来大大减少潜伏期,然后通过较大的模型对其进行验证以确保准确性。但是,尽管投机解码通常可以改善吞吐量,但由于验证过程,它可以引入延迟的可变性。
###投机解码如何工作
1。平行令牌生成:较小的草稿模型并行生成多个候选令牌。这比较大模型更快地生成比顺序生成,因为它更有效地利用了GPU加速度[1] [3]。
2。验证过程:较大的模型验证这些候选令牌。如果它们匹配预期的输出,则将被接受;否则,仅重新计算错误的令牌[3] [9]。
###对潜伏期的影响
- 平均延迟减少:投机解码可以通过更快产生令牌来减少平均潜伏期。这是因为草稿模型需要的资源少,并且可以比大型模型更快地运行[3] [5]。
- 可变延迟:虽然投机解码改善了总体吞吐量,但它可能导致延迟不一致。当模型草案的预测不正确时,必须重新计算较大的模型,这可能会导致潜伏期的峰值[3] [9]。
DeepSeek-R1细节
DeepSeek-R1结合了增强功能,例如多言式预测(MTP)和优化的投机解码,从而进一步提高了推理速度。 MTP允许DeepSeek-R1并行预测多个令牌,从而在不损害相干性的情况下减少解码潜伏期[4]。 DeepSeek-R1中优化的投机解码使用概率协议检查,接受基于置信阈值而不是精确匹配的预测,从而降低了排斥率并加速推理[4]。
总体而言,投机解码可以通过降低平均潜伏期和改善吞吐量来显着提高DeepSeek-R1的性能,但由于验证过程,它可能会引入潜伏期的可变性。
引用:
[1] https://centml.ai/resources/2x-inference-speed-on-r1
[2] https://iaee.substack.com/p/deepseek-r1-intuitiveling-and-ysexhustalively
[3] https://www.theregister.com/2024/12/15/speculative_decoding/
[4] https://aman.ai/primers/ai/deepseek-r1/
[5] https://arxiv.org/html/2503.07807v1
[6] https://www.reddit.com/r/localllama/comments/1i64ffn/draft_model_model_speculative_decoding_performance_with/
[7] https://arxiv.org/html/2502.02789
[8] https://www.linkedin.com/posts/lamersrick_i-worked-on-this-speculative-decode-version-version-activitive-7293321395000819712-8yvc
[9] https://predibase.com/blog/predibase.com/blog/deepseek-r1-self-distillation-turbo-peculation
[10] https://aws.amazon.com/blogs/machine-learning/deploy-deepseek-r1-distille-models-models-on-amazon-sagemaker-sagemaker-usis-using-a-rarge-a-large-model-inference-container/