Misc. bug: llama-server silently ignores -md (speculative decoding never engages) when the unified KV cache is active

用户在 llama-server 中运行推测解码时,通过 -md 参数加载草稿模型,并在启动日志中观察到 kv_unified = 'true' 。尽管草稿模型已加载到内存,但推测解码从未启用:生成阶段无草稿初始化日志、无接受统计、速度与无草稿基线相同。当前确认的最可能原因与 --spec-type

快速结论:该问题发生在 llama-server 中,当用户通过 -md 指定草稿模型但未设置 --spec-type 时,推测解码(speculative decoding)静默失效,系统仅在内存中加载草稿模型但实际执行自回归生成。优先排查是否未设置 --spec-type draft-simple

问题场景

用户在 llama-server 中运行推测解码时,通过 -md 参数加载草稿模型,并在启动日志中观察到 kv_unified = 'true'。尽管草稿模型已加载到内存,但推测解码从未启用:生成阶段无草稿初始化日志、无接受统计、速度与无草稿基线相同。当前确认的最可能原因与 --spec-type 参数有关,但 Issue 最初怀疑与“统一 KV 缓存(unified KV cache)默认开启”相关。

报错原文

srv load_model: initializing, n_slots = 4, kv_unified = 'true'
slot print_timing: eval time = 144296.00 ms / 32 tokens (0.22 tokens per second)

No draft/speculative init line at any verbosity.

原因分析

Issue 提交者最初推测根因是 PR #16736 改变了统一 KV 缓存的默认行为,导致推测解码与统一 KV 缓存不兼容。后续调查发现,真实原因为:llama-server 近期版本将 --spec-type 的默认值设为 none。用户仅传递了 -md(加载草稿模型)和 --spec-draft-n-max / --spec-draft-n-min,但未显式设置 --spec-type draft-simple,因此推测解码引擎未被激活。这属于用法遗漏而非代码回归。

环境排查

  • 确认 llama.cpp 构建版本(Issue 中涉及 a410713 及更早的 fdb1db8 版本)。
  • 确认是否使用 --spec-type 参数,及其当前值(默认 none)。
  • 确认草稿模型是否确实通过 -md 加载(可通过 RSS 增长判断)。
  • 检查启动日志中是否存在类似 kv_unified = 'true' 的行,但需注意该行可能不可靠(Issue 提到 --no-kv-unified 未生效)。

解决步骤

  1. 可优先尝试:在原有命令中加入 --spec-type draft-simple,例如:
    llama-server -m target_model.gguf -md draft_model.gguf --spec-type draft-simple --spec-draft-n-max 12 --spec-draft-n-min 1 -t 12 -fa on -ctk q8_0 -ctv q8_0 -c 8192 --port 8095
  2. 如果问题仍然存在,尝试添加 --no-kv-unified 参数(但 Issue 报告该标志当前可能未生效,需进一步测试不同构建版本)。
  3. 使用独立的 llama-speculative 二进制程序作为对照,确认同一对模型是否能正常启用推测解码。

验证方法

启动服务器后,发送一次 chat/completions 请求(例如 max_tokens=512, temperature=0),观察:

  • 启动日志中是否出现推测解码的初始化行(例如包含 “draft” 或 “speculative” 字样)。
  • 生成速度是否明显快于无草稿基线(例如 Issue 中无草稿时为 0.22 tokens/s,正确启用后应为 0.50 tokens/s 或更高)。
  • 日志中是否出现接受统计(如 n_drafted / n_accept)。

参考来源

ggml-org/llama.cpp #25345

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 16458

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注