clef-flash: every /v1/systemone request fails with “Clef: non-finite logit” (CPU and GPU

该报错发生在 Ollama 加载 clef-flash(qwen35 架构)后,向 /v1/systemone 发起首个前向推理时,服务端直接返回 500 与 Clef: non-finite logit ;这是上游已修复的重复缺陷,优先升级到包含 #18777 修复的 Ollama 版本,而不是在

快速结论:该报错发生在 Ollama 加载 clef-flash(qwen35 架构)后,向 /v1/systemone 发起首个前向推理时,服务端直接返回 500 与 Clef: non-finite logit;这是上游已修复的重复缺陷,优先升级到包含 #18777 修复的 Ollama 版本,而不是在本地调参。

适用环境:已确认复现环境为 Windows 11、AMD Ryzen AI 9 HX 370、Radeon 890M(iGPU,约 27 GB UMA);Ollama 0.35.1(stable)与 0.40.0-rc6;ROCm 7.1(gfx1150)、Vulkan 以及纯 CPU(OLLAMA_IGPU_ENABLE=0、OLLAMA_VULKAN=false)均可复现;KV cache 使用 f16 与 q4_0;通过 Modelfile 设置 num_ctx 4096。维护者确认环境为 Windows 11 / Radeon 890M,ROCm + Vulkan + CPU。

最快修复方案:暂无确认的一步修复方案;Issue 结论为该问题与 #18769 重复,并由 #18777 修复。可优先尝试升级到已包含 #18777 的 Ollama 构建版本。

注意事项:Issue 中未给出可直接安装的具体版本号,升级目标需以官方包含 #18777 的发布为准;升级后需重新验证模型能否完成首个前向推理,因为首次修复操作在该讨论链中并未由报告者回帖确认。

问题场景

用户在 Ollama 中加载 clef-flash 模型,调用 /v1/systemone 接口执行结构化判断任务。即使用模型页面给出的最小示例(state 为 "Hello World"、一个 noul 类型问题、task.n_tokens = 147),也会在第一次前向推理时失败。模型本身可以正常加载,报错出现在首个 forward pass。该问题在 CPU、ROCm 与 Vulkan 三种后端,以及 f16 / q4_0 两种 KV cache 类型下都出现。

报错原文

slot operator(): id 0 | task 0 | new prompt, n_ctx_slot = 4096, n_keep = 0, task.n_tokens = 147
srv send_error: task id = 0, error: Clef: non-finite logit
[GIN] | 500 | POST "/v1/systemone"

原因分析

维护者将该 Issue 判定为 #18769 的重复问题,并说明由 #18777 修复,因此根因属于 Ollama 对该模型架构(日志中显示 general.architecture = qwen35)推理路径的代码缺陷,而非用户配置或硬件算力不足。日志中的以下两条信息属于加载阶段提示,本身不直接解释 non-finite logit:

llama_init_from_model: model default pooling_type is [-1], but [0] was specified
init: embeddings required but some input tokens were not marked as outputs -> overriding

另外,报告者指出无法真正关闭 Flash Attention:设置 OLLAMA_FLASH_ATTENTION=false 后命令行仍出现 --flash-attn auto,因此无法通过非 FA 路径来做对照测试。这是一条未被修复验证覆盖的旁证,只能作为可能原因参考。

环境排查

  • Ollama 版本:已确认 0.35.1(stable)与 0.40.0-rc6 均会复现;确认当前版本是否早于包含 #18777 的构建。
  • 模型架构:日志中 llama_model_loader 显示 general.architecture str = qwen35,模型名为 Clef Flash。
  • 后端:ROCm 7.1(gfx1150)、Vulkan、纯 CPU 三种路径均需确认是否同样失败。
  • 环境变量:OLLAMA_IGPU_ENABLE、OLLAMA_VULKAN、OLLAMA_FLASH_ATTENTION、OLLAMA_KV_CACHE_TYPE 的实际生效值。
  • KV cache 类型:f16 与 q4_0 两种都已确认复现。
  • 上下文长度:默认 num_ctx 16384 会触发另一问题——n_ubatch 被设为 n_ctx(尽管指定了 -ub 512),计算缓冲区增长到 3.3–4 GB;报告者的绕过方法是设置 PARAMETER num_ctx 4096。
  • 系统内存:iGPU 场景下应核对实际可用内存与日志内存分解,报告中出现“报告约 18 GB 空闲但分配失败、unaccounted 为负”的现象。

解决步骤

  1. 记录当前 Ollama 版本,确认排查对象确实是 0.35.1(stable)或 0.40.0-rc6 这类尚未包含 #18777 的构建。
  2. 参照 Issue 结论,将 Ollama 升级到已包含 #18777 修复的版本;这是该讨论链中唯一被维护者确认的修复方向。
  3. 如果暂时无法升级,可先按报告者的做法在 Modelfile 中加入 PARAMETER num_ctx 4096,用于规避默认 num_ctx 16384 导致的 iGPU 计算缓冲区膨胀与分配失败问题;该绕过方法仅解决显存分配问题,不能确认能消除 non-finite logit。
  4. 排查过程中不要依赖 OLLAMA_FLASH_ATTENTION=false 来构造非 FA 对照,因为报告者实测该设置仍会以 --flash-attn auto 生效。
  5. 如需判断是否为后端相关,可在 CPU(OLLAMA_IGPU_ENABLE=0、OLLAMA_VULKAN=false)与 ROCm / Vulkan 下分别用同一最小请求复现,但预期三种后端表现一致。

验证方法

升级到包含 #18777 的构建后,重启 Ollama 服务,使用 Issue 中的最小请求重新调用 POST /v1/systemone,确认不再返回 HTTP 500 与 Clef: non-finite logit,且首个前向推理能够正常完成。若同时保留了 PARAMETER num_ctx 4096,还需单独确认默认 num_ctx 16384 下的计算缓冲区分配行为是否也恢复。

参考来源

ollama/ollama #18836

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 27956

发表回复

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