#3690·omlx

TurboQuant KV 缓存 (4 位) 会在命中前缀缓存的请求中默默地损坏详细信息的检索

作者: maxdeng007创建于 2026年9月16日更新于 2026年9月17日

环境

  • oMLX 0.6.4 (macOS 应用程序), macOS 26 在 MacBook Air M4 上(10 核, 24 GB)
  • 模型: Ornith-1.5-9B-MLX-4bit (Qwen3.5-9B 混合架构, model_type: qwen3_5; 32 层, 8 个真实 KV 缓存层)
  • 设置: turboquant_kv_enabled=true, bits=4, skip_last=true

摘要

当 TurboQuant KV 启用时,任何提示命中块级前缀缓存的请求都无法从提示的缓存区中检索详细信息。失败是完全无声的 — 模型回答得很流畅,只是错误。禁用 TurboQuant 使相同的缓存前缀请求通过 100%。

重现

针对 8k 个令牌的大海捞针,针对 60% 的深度。在两种模式下重复提问相同的问题:

  • 无前缀: 每次发送完全相同的提示 → 打击前缀缓存
  • 唯一前缀: 每次前缀前面加上一个随机非洲人线 → 缓存失效,完全重新填充

问题: "记录中提到的备用门口密码是什么?"(针对: QX-7391-ZULU)

结果(所有在同一台机器上,同一会话,温度 1.0/顶 K 20)

组 | TurboQuant 开启 | TurboQuant 关闭 -- | -- | -- 无前缀(缓存命中) | 0/13 个命中 | 6/6 个命中 唯一前缀(缓存失效) | 11/11 个命中 | 4/4 个命中