Ollama GitHub Issues

这个报错通常出现在 Ollama 调用多模态模型(如 qwen2.5vl:3b)做图像推理、且视觉编码器(CLIP)被加载到 NVIDIA GPU 的 CUDA 后端时,模型输出退化为重复 token,最终触发 token 重复上限保护并返回 HTTP 500。优先排查 GPU 视觉编码器路径,用

快速结论:这个报错通常出现在 Ollama 调用多模态模型(如 qwen2.5vl:3b)做图像推理、且视觉编码器(CLIP)被加载到 NVIDIA GPU 的 CUDA 后端时,模型输出退化为重复 token,最终触发 token 重复上限保护并返回 HTTP 500。优先排查 GPU 视觉编码器路径,用 CPU 推理做对照验证。

适用环境:Issue 已确认环境为 Windows 11 (x64)、NVIDIA GeForce RTX 3060 Laptop GPU(6144 MiB)、驱动 617.42 (Studio) 与 621.01 (Game Ready) 均复现、Ollama 0.40.13(全新安装)、模型 qwen2.5vl:3b 默认量化及 q4_K_M 均复现、CUDA 后端(CLIP 使用 CUDA0,35 层 offload 到 GPU)。

最快修复方案:暂无确认的一步修复方案。Issue 中唯一明确验证有效的处理方式是通过派生模型设置 PARAMETER num_gpu 0,强制走 CPU 推理,图像描述恢复正常。

注意事项:num_gpu=0 属于规避方案而非根因修复,会放弃 GPU 加速,推理速度下降;Issue 中没有提交补丁、没有确认由哪个版本修复,也没有验证驱动降级能解决问题(617.42 与 621.01 均复现),因此不要把换驱动当作确定解法。

问题场景

在 Windows 11 上使用 Ollama 运行 qwen2.5vl:3b 进行图像理解,通过 /api/chat 接口携带 base64 图片请求,或直接使用 ollama run qwen2.5vl:3b 交互式传入图片。服务器日志显示视觉编码器被加载到 CUDA:clip_ctx: CLIP using CUDA0 backend,约 2 秒后请求失败。纯文本推理在 GPU 上正常,同一模型、同一图片在 CPU 上也能正常描述,故障只出现在 GPU 视觉编码器路径。

报错原文

{"error":"prediction aborted, token repeat limit reached"}

clip_model_loader: has vision encoder
clip_ctx: CLIP using CUDA0 backend
reserve_compute_meta:      CUDA0 compute buffer size =   569.70 MiB
[GIN] 2026/11/03 - 11:04:07 | 500 |    2.17s | 127.0.0.1 | POST "/api/chat"

交互模式下在同样报错前还会输出大量重复的 @@@@ 退化 token。

原因分析

根据 Issue 的对照实验,问题定位在 GPU 视觉编码器(CLIP + CUDA)路径,而非模型、量化、提示词或图片编码:

  • 纯文本推理走 GPU 正常,说明主模型 GPU 推理本身可用。
  • 更换不同图片、重新拉取模型、改用 q4_K_M 量化,GPU 视觉推理均复现 500。
  • 同一请求设置 num_gpu = 0 强制 CPU 后,输出正确连贯,说明模型权重与输入数据没有问题。
  • 驱动从 621.01 换到 617.42 (Studio) 并重启 Ollama、重装 Ollama 0.40.13 后依然复现,说明不是单纯安装损坏。

可能原因:该 GPU/驱动组合下,视觉编码器(CLIP)的 CUDA kernel 产生退化激活值,导致模型陷入重复 token 循环并被重复上限中止;报告者推测可能与 6 GB 笔记本 GPU 上 mmproj/视觉 offload、RTX 30 系笔记本的 flash-attention 或 compute buffer 路径有关,但 Issue 中未给出确认结论。

环境排查

  • 确认 ollama --version 是否为 Issue 复现版本 0.40.13,以及是否全新安装。
  • 查看 nvidia-smi 中的显卡型号、显存与驱动版本(Issue 复现于 RTX 3060 Laptop 6 GB,驱动 617.42 与 621.01)。
  • 检查 %LOCALAPPDATA%\Ollama\server.log 是否出现 CLIP using CUDA0 backend,确认视觉编码器确实走了 GPU。
  • 确认模型为 qwen2.5vl:3b,并记录量化类型(默认与 q4_K_M 均已复现)。
  • 对比同一图片请求在默认 num_gpu 与 num_gpu=0 下的结果差异。

解决步骤

  1. 先做对照验证:用同一模型、同一图片发起请求,分别使用默认 GPU 设置和 num_gpu = 0。若默认 GPU 返回 500 而 CPU 正常,即可确认与 Issue 一致,问题在 GPU 视觉编码器路径。
  2. 启用 Issue 中已验证的规避方案:创建派生模型并写入 PARAMETER num_gpu 0,之后使用该派生模型进行图像推理,使视觉编码与推理走 CPU。
  3. 若仍希望保留 GPU 推理,可优先尝试更换 GPU 驱动版本或重装 Ollama 后复测;注意 Issue 中这两种操作均未解决问题,仅作为排除手段,不是已验证修复。
  4. 保留完整 server.log 与 nvidia-smi 输出,便于在同类问题中比对或提交上游。

验证方法

使用派生模型(num_gpu=0)重新发送同一图片请求,接口返回 200 且输出为连贯的一句话图像描述,不再出现 @@@@ 重复 token 和 prediction aborted, token repeat limit reached,即视为规避方案生效。同时确认纯文本 GPU 推理仍正常。

参考来源

ollama/ollama #19482

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 32204

发表回复

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