Ollama v0.15.0: glm-4.7-flash:q8_0 stay in a think loop

这个报错通常出现在 Ollama 配合 Open WebUI 等前端,运行 glm-4.7-flash(q8_0、q4_K_M 或 bf16)进行长推理或工具调用时,模型陷入思考循环或中途卡在 thinking 阶段。该问题在 v0.15.1 中曾被修复,但 Issue 后续仍有用户反馈在某些前端和

快速结论:这个报错通常出现在 Ollama 配合 Open WebUI 等前端,运行 glm-4.7-flash(q8_0、q4_K_M 或 bf16)进行长推理或工具调用时,模型陷入思考循环或中途卡在 thinking 阶段。该问题在 v0.15.1 中曾被修复,但 Issue 后续仍有用户反馈在某些前端和较长对话下复现;可优先升级 Ollama,再检查上下文长度、是否触发 context shift,以及前端的长对话或工具调用行为。

适用环境:Issue 中确认的环境包括 Ollama 0.15.0 和 0.14.3、glm-4.7-flash:q8_0、q4_K_M、bf16,前端为 Open WebUI,也有用户使用 Cline、opencode;服务端系统为 Linux,日志显示 NVIDIA RTX A6000 48C(compute capability 8.6),CUDA 后端为 cuda_v12,启用 flash attention,num_ctx 使用过 8192、16384 和 202752。Python、PyTorch 版本在 Issue 中未提供,不应自行补写。

最快修复方案:升级到 Ollama v0.15.1(无需重新拉取模型),例如执行 curl -fsSL https://ollama.com/install.sh | sh,然后重新测试。该方案由 Issue 评论明确说明可修复工具调用并解决思考循环,引用修复提交为 a1ca428。

注意事项:v0.15.1 不是对所有场景都有效:Issue 后续反馈使用 Open WebUI 时 q8_0 仍会出现思考循环,而在命令行 ollama run 下正常。因此若升级后仍复现,需要继续区分是 Ollama 推理层问题,还是前端长对话或工具调用触发的问题;Issue 最终未给出定论。

问题场景

用户在更新到 Ollama 0.15.0 后下载并运行 glm-4.7-flash:q8_0,通过 Open WebUI 进行对话时,模型有时卡在思考循环中,超过约 5 分钟后用户重启了 Ollama 服务。相同问题在 Ollama 0.14.3 上也出现过。其他评论反馈在 AMD GPU、q4_K_M、bf16 上同样复现;使用 Cline、opencode 的用户则表示模型因工具调用不正确而进入循环。部分用户改用 llama.cpp 或从 Hugging Face 导入 gguf 后循环消失,但仍存在显存和内存占用问题。

报错原文

Ollama v0.15.0: glm-4.7-flash:q8_0 stay in a think loop

启用调试后,日志中与上下文相关的关键行为为:

level=DEBUG source=cache.go:286 msg="context limit hit - shifting" id=0 limit=16384 input=16384 keep=4 discard=8190

原因分析

可能原因之一与上下文长度和 context shift 有关。评论指出,当 prompt 较大且模型进行大量思考时,会填满上下文缓冲区并触发 context shift,导致模型失去连贯性、开始反复输出;日志中出现的 context limit hit - shifting 支持这一方向。但该用户将 num_ctx 设为 8192 或 16384 时仍复现,说明上下文大小可能不是唯一因素。

另一个可能原因是 Ollama 自身对 glm-4.7-flash 的推理实现存在缺陷。评论提到最新 llama.cpp 已修复类似问题,并给出 v0.15.1 的修复提交 a1ca428,说明 Ollama 版本与后端实现是重要排查点。

使用 Open WebUI 时仍复现、而 ollama run 正常,可能涉及前端长对话中的上下文管理、工具调用或请求组织方式;Issue 中用户也直接询问“Is this a Web UI problem?”,但讨论未形成确认结论。

环境排查

  • 确认 Ollama 版本:是否为 0.15.0、0.14.3 或 0.15.1,可用返回的版本信息核对,例如 {"version":"0.15.1"}。
  • 确认模型标签与量化:glm-4.7-flash:q8_0、q4_K_M、bf16、latest 等,不同量化在 Issue 中均有复现报告。
  • 确认前端与调用方式:Open WebUI、Cline、opencode,或直接用 ollama run 对比。
  • 检查 num_ctx 设置:Issue 中出现过 8192、16384、202752;本次调试日志中 limit 为 16384。
  • 检查是否启用 flash attention、CUDA 后端版本,以及 GPU 型号与显存;本次日志为 RTX A6000 48C、CUDA v12、flash attention 已启用。
  • 排查时可设置 OLLAMA_DEBUG=1,查看是否出现 context limit hit - shifting 等日志。
  • Python、PyTorch 等运行依赖版本在 Issue 中未提供,需按实际部署自行确认,不应臆测。

解决步骤

  1. 优先将 Ollama 升级到 v0.15.1,使用 Issue 中给出的安装方式:curl -fsSL https://ollama.com/install.sh | sh。按评论说明无需重新拉取模型。
  2. 升级后分别用命令行和 Open WebUI 测试同一提示词,判断问题是否仍存在。Issue 中用户在 ollama run glm-4.7-flash:q8_0 下可正常生成,而 Open WebUI 长对话中仍出现循环。
  3. 在服务端环境设置 OLLAMA_DEBUG=1,复现时收集日志,重点检查是否出现 context limit hit - shifting,以及循环期间是否有新的 DEBUG 日志。
  4. 若日志显示上下文达到上限,尝试增大上下文缓冲区,并同时观察显存和系统内存占用;但 Issue 中已有用户在 8192 和 16384 下仍复现,因此该调整属于可优先尝试的缓解措施,并非确认修复。
  5. 若升级后问题仍集中在 Open WebUI,可换用 Cline、opencode 或命令行做交叉验证,以判断是否与前端长对话或工具调用有关;Issue 未确认根因。
  6. 作为可优先尝试的替代路径,评论提到从 Hugging Face 导入 unsloth/glm-4.7-flash-gguf:Q4_K_M 后可消除思考循环,但会重新出现内存占用问题。该做法不是 Ollama 官方修复方案,需自行评估显存和内存风险。

验证方法

升级到 v0.15.1 后,先确认版本接口返回 {"version":"0.15.1"};然后分别用 ollama run glm-4.7-flash:q8_0 和 Open WebUI 执行相同提示词,观察是否还会长时间停留在 thinking 阶段或重复输出。再用 OLLAMA_DEBUG=1 复测,确认不再出现触发循环时的 context limit hit - shifting 日志,或至少确认循环期间是否产生新的调试信息。由于 Issue 中仍有升级后复现的反馈,验证需以实际场景(尤其是长对话和工具调用)为准。

参考来源

ollama/ollama #13886

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 29419

发表回复

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