快速结论:该报错通常发生在将 Ollama 的 KV Cache 量化级别设置为 q4_0,且加载的是基于 Qwen2 系列的小型模型(如 VibeThinker-3B、MiniCPM-1B)时,模型输出会退化为无意义的重复乱码(如 “AI AI AI AI…”)。优先排查建议:将 KV Cache 类型提升至 q5_0 或更高(推荐 q8_0 或 f16)。
适用环境:macOS(Apple Silicon),Ollama 版本 0.32.5,GPU/CPU 均为 Apple。涉及模型:VibeThinker-Fable-Nano-Agentic-3B(基于 Qwen2.5-Coder-3B)、MiniCPM5-1B-i1-GGUF(radermacher 变体)。
最快修复方案:Issue 中验证过的方案:设置环境变量 OLLAMA_KV_CACHE_TYPE=q8_0(在 macOS 上执行 launchctl setenv OLLAMA_KV_CACHE_TYPE q8_0),然后重启 Ollama 应用/服务。
注意事项:KV Cache 设置是全局的,目前无法为单个模型单独设置。小模型(1B-3B)对 KV Cache 的量化更敏感,q4_0 对其有损过大。尚未在 macOS 上复现该问题的确认范围,但在 AMD/CPU、AMD/Nvidia、ARM/CPU、ARM/Nvidia、AMD/Vulkan、AMD/ROCm 环境均未复现 MiniCPM5-1B 的问题,因此也可能与 macOS 的 Metal 后端相关。
问题场景
用户在 macOS 上运行 Ollama(版本 0.32.5)时,将 KV Cache 量化级别从 q8_0 改为 q4_0 后,加载小型模型(VibeThinker-Fable-Nano-Agentic-3B 和 MiniCPM5-1B-i1-GGUF)时,模型开始输出无意义的重复乱码,例如 “AI AI AI AI: IIA AI AI A…”。问题同时出现在 OpenAI 兼容接口和 /api/generate 端点,且不受温度参数影响。
报错原文
Lower quantization formats cause model to emit unintelligible/~garbage responses
实际输出示例:
"AI AI AI AI: IIA AI AI A AI AIAI A AIAI AI AIA AI AI AI AI AI|'AI \"https\"|</AIIntegersNumbersAI AI AI, AI A AI AI AI AI AI AI AI A AI AI AI AI AI AI AI AI AI AI AI AI AI AI AI AIAI AI AI AI AI AI AI AI AI AI AI AI AI AI AI\n"
原因分析
确认原因:将 KV Cache 量化为 q4_0 导致基于 Qwen2 系列的小型模型(1B-3B)输出退化。Issue 中通过隔离测试确认:仅改变 KV Cache 类型(q4_0、q4_1、q5_0、q8_0、f16),其他条件不变,q4_0 时出现乱码,q5_0 及以上正常。
该问题与提示词、工具调用、温度参数无关——即使回答 “What is 2+2?” 也会退化。
可能原因:VibeThinker-Fable-Nano-Agentic-3B 基于 Qwen2.5-Coder-3B,该模型从 Ollama 0.13.0 起就在 q4_0 量化下存在生成提前停止或切换到随机 token 的问题,可能该模型本身不适合 q4_0 量化。同时,q4_0 对 Qwen2 系列 KV Cache 的有损程度过大,导致小模型塌缩为退化性重复。
环境排查
- 确认 Ollama 版本(该 Issue 中为 0.32.5)
- 确认当前 KV Cache 类型:
OLLAMA_KV_CACHE_TYPE环境变量值 - 确认操作系统是否为 macOS(该 Issue 中为 macOS / Apple Silicon)
- 确认模型名称及量化格式:VibeThinker-Fable-Nano-Agentic-3B(Q4_K_M)、MiniCPM5-1B-i1-GGUF(Q4_K_M)
- 注意:
OLLAMA_KV_CACHE_TYPE是全局设置,无法通过/set parameter或 Modelfile 为单个模型单独设置
解决步骤
- 优先尝试:将 KV Cache 类型提升到
q5_0或更高,推荐q8_0或f16。 - 在 macOS 上执行:
launchctl setenv OLLAMA_KV_CACHE_TYPE q8_0 - 重启 Ollama 应用/服务,使环境变量生效。
- 重新加载模型,测试输出是否恢复正常。
- 如果必须为不同模型设置不同的 KV Cache 级别(因为目前全局设置无法满足),可以考虑通过修改 llama-server 调用参数(shimming)为特定模型替换参数,或关注 PR #16711 以实现 per-modelfile 覆盖。
验证方法
设置 OLLAMA_KV_CACHE_TYPE=q8_0 并重启 Ollama 后,使用同一模型(如 VibeThinker-3B)发起简单问答(如 “What is 2+2?”),确认输出不再出现无意义重复乱码,且内容是连贯且有意义的文本。也可以检查启动的 llama-server 进程参数,确认 --cache-type-k 和 --cache-type-v 已变为 q8_0(而非 q4_0)。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


