文档
推测解码
高级
推测解码是一种可以显著提高大型语言模型 (LLM) 生成速度的技术,且不降低响应质量。
🔔 推测解码需要 LM Studio 0.3.10 或更高版本,目前为 beta 版。 在此获取。
推测解码依赖于两个模型的协作
在生成过程中,草稿模型快速提出潜在的 tokens(子词),主模型可以比从头开始生成它们更快地验证这些 tokens。为了保持质量,主模型只接受与其自身会生成的 tokens 相匹配的草稿 tokens。在最后一个被接受的草稿 token 之后,主模型总是会生成一个额外的 token。
要使模型可以用作草稿模型,它必须与主模型具有相同的“词汇表”。
在 Power User
或更高级模式下,加载模型,然后在聊天侧边栏的 Speculative Decoding
部分中选择一个 Draft Model
聊天侧边栏的推测解码部分
当您打开下拉菜单时,可能会看到以下内容
没有兼容的草稿模型
尝试下载您已加载模型的参数较小的版本(如果存在)。如果您的模型没有较小版本,请寻找一个模型配对。
例如
主模型 | 草稿模型 |
---|---|
Llama 3.1 8B Instruct | Llama 3.2 1B Instruct |
Qwen 2.5 14B Instruct | Qwen 2.5 0.5B Instruct |
DeepSeek R1 Distill Qwen 32B | DeepSeek R1 Distill Qwen 1.5B |
一旦您加载了主模型和草稿模型,只需开始聊天即可启用推测解码。
推测解码的加速通常取决于两件事
简单来说,您需要选择一个比主模型小得多的草稿模型。并且某些提示的效果会比其他提示更好。
与单独运行主模型相比,运行草稿模型和主模型以启用推测解码需要更多的计算和资源。
更快地生成主模型的关键是选择一个既小巧又足够强大的草稿模型。
以下是基于主模型尺寸(以参数为单位)应选择的最大草稿模型尺寸的一般指南
主模型尺寸 | 为了获得加速效果,草稿模型最大尺寸 |
---|---|
3B | - |
7B | 1B |
14B | 3B |
32B | 7B |
一般来说,主模型和草稿模型之间的尺寸差异越大,加速效果越好。
注意:如果草稿模型不够快或不够有效地向主模型提出“好的”建议,则生成速度不会提高,反而可能会降低。
使用推测解码时,您可能会注意到的一件事是,生成速度并非在所有提示中都一致。
加速在所有提示中不一致的原因是,对于某些提示,草稿模型不太可能向主模型提出“好的”建议。
以下是一些极端的例子,说明了这个概念
提示:“二次方程公式是什么?”
在这种情况下,70B 模型和 0.5B 模型都非常有可能给出标准公式 x = (-b ± √(b² - 4ac))/(2a)
。因此,如果草稿模型建议将此公式作为下一个 token,目标模型很可能会接受它,从而使这种情况成为推测解码高效工作的理想情况。
提示:“写一个以 ‘门吱呀一声打开了...’ 开头的故事”
在这种情况下,较小模型的草稿 tokens 很可能更频繁地被较大模型拒绝,因为每个下一个词都可能分支成无数种有效的可能性。
虽然“4”是“2+2”唯一合理的答案,但这个故事可以继续写“露出了一个怪物”、“当风呼啸而过时”、“莎拉僵住了”,或者数百个其他完全有效的后续内容,使得较小模型的特定单词预测不太可能与较大模型的选择相匹配。