文档

推测解码

高级

推测解码是一种可以显著提升大型语言模型(LLM)生成速度,同时不降低响应质量的技术。


🔔 推测解码需要 LM Studio 0.3.10 或更高版本,目前处于测试版。在此获取

什么是推测解码

推测解码依赖于两个模型的协作

  • 一个更大的“主”模型
  • 一个更小、更快的“草稿”模型

在生成过程中,草稿模型快速提出潜在的词元(子词),主模型验证这些词元的速度比从头生成要快。为保持质量,主模型只接受与它本会生成的内容匹配的词元。在接受最后一个草稿词元后,主模型总是会生成一个额外的词元。

要将一个模型用作草稿模型,它必须与主模型具有相同的“词汇表”。

如何启用推测解码

高级用户 模式或更高版本中,加载一个模型,然后在聊天侧边栏的 推测解码 部分选择一个 草稿模型

undefined

聊天侧边栏的推测解码部分

查找兼容的草稿模型

当您打开下拉菜单时,可能会看到以下内容

undefined

没有兼容的草稿模型

尝试下载您已加载模型的较低参数变体(如果存在)。如果您的模型没有更小的版本,请寻找一个兼容的配对。

例如

主模型草稿模型
Llama 3.1 8B InstructLlama 3.2 1B Instruct
Qwen 2.5 14B InstructQwen 2.5 0.5B Instruct
DeepSeek R1 Distill Qwen 32BDeepSeek R1 Distill Qwen 1.5B

一旦您加载了主模型和草稿模型,只需开始聊天即可启用推测解码。

影响性能的关键因素

推测解码的加速效果通常取决于两件事

  • 草稿模型与主模型相比有多小、多快
  • 草稿模型能多频繁地做出“良好”的建议

简单来说,您希望选择一个比主模型小得多的草稿模型。而且某些提示词的效果会比其他提示词更好。

一个重要的权衡

并行运行一个草稿模型和一个主模型以启用推测解码,需要比单独运行主模型更多的**计算和资源**。

主模型更快生成的关键在于选择一个既小巧又足够强大的草稿模型。

以下是基于主模型大小(以参数为单位)选择**最大**草稿模型大小的一般指南

主模型大小可预期加速的最大草稿模型大小
3B-
7B1B
14B3B
32B7B

通常,主模型与草稿模型之间的尺寸差异越大,加速效果越显著。

注意:如果草稿模型不够快或在向主模型提出“良好”建议方面不够有效,生成速度将不会提高,甚至可能下降。

取决于提示词

使用推测解码时,您可能会注意到一件事,那就是生成速度并非在所有提示词中都保持一致。

加速效果并非在所有提示词中都保持一致的原因是,对于某些提示词,草稿模型向主模型提出“良好”建议的可能性较小。

以下是一些说明此概念的极端示例

1. 离散示例:数学问题

提示词:“一元二次方程的公式是什么?”

在这种情况下,一个 70B 模型和一个 0.5B 模型都极有可能给出标准公式 x = (-b ± √(b² - 4ac))/(2a)。因此,如果草稿模型将此公式作为下一个词元提出,目标模型很可能会接受它,这使得它成为推测解码高效运作的理想情况。

2. 创意示例:故事生成

提示词:“写一个以‘门吱呀一声开了……’开头的故事”

在这种情况下,较小模型的草稿词元更可能被较大模型拒绝,因为接下来的每个词都可能分支成无数种有效的可能性。

虽然“4”是“2+2”的唯一合理答案,但这个故事可以继续为“揭示一个怪物”、“伴随着风的呼啸”、“萨拉僵住了”或数百种其他完全有效的续写方式,使得较小模型的具体词预测与较大模型的选择匹配的可能性大大降低。