文档

推测解码

高级

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


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

什么是推测解码

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

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

在生成过程中,草稿模型快速提出潜在的 tokens(子词),主模型可以比从头开始生成它们更快地验证这些 tokens。为了保持质量,主模型只接受与其自身会生成的 tokens 相匹配的草稿 tokens。在最后一个被接受的草稿 token 之后,主模型总是会生成一个额外的 token。

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

如何启用推测解码

Power User 或更高级模式下,加载模型,然后在聊天侧边栏的 Speculative Decoding 部分中选择一个 Draft Model

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)。因此,如果草稿模型建议将此公式作为下一个 token,目标模型很可能会接受它,从而使这种情况成为推测解码高效工作的理想情况。

2. 创意示例:故事生成

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

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

虽然“4”是“2+2”唯一合理的答案,但这个故事可以继续写“露出了一个怪物”、“当风呼啸而过时”、“莎拉僵住了”,或者数百个其他完全有效的后续内容,使得较小模型的特定单词预测不太可能与较大模型的选择相匹配。