快速结论:调用 Ollama 的决策模型接口 /v1/systemone 并使用 clef-flash 模型时,服务端在计算 logit 阶段返回 500,报错为 Clef: non-finite logit。从讨论看问题在 Windows 上稳定复现,优先排查是否为 Windows 构建/CPU head 计算路径的问题,而不是先怀疑显卡或模型文件。
适用环境:Ollama 0.35.1;Windows;模型 clef-flash:latest(ID 9f4115499b98,Q8_0,约 10 GB);已确认在 CUDA hybrid、纯 CPU、关闭 flash attention、切换 CPU 变体(alderlake / haswell)、重新拉取模型、完全重装 Ollama 后仍出现。触发接口为 /v1/systemone,请求处理了 147 个输入 token 后失败。
最快修复方案:暂无确认的一步修复方案。Issue 在 Linux、ROCm、Vulkan、纯 CPU 等环境上无法复现,而 Windows(含无 GPU 的 Windows VM)可复现,因此目前没有已验证的配置改动可以消除该报错。
注意事项:不要在未验证的情况下把问题归因于 NVIDIA 驱动、CUDA 版本或模型文件损坏;讨论中的代码分析属于人工/辅助代码审查推测,并非已复现的根因诊断。Vulkan-only 场景下会出现另一个不同的失败(llama-server 退出码 0xc0000409,提示预分配 tensor 无法执行 CPY 操作),应与本问题分开处理。
问题场景
用户在 Windows 上使用 Ollama 0.35.1 加载 clef-flash:latest 决策模型,通过 POST /v1/systemone 发送一个 JSON 请求(state 为 “Hello World”,questions 中有一个 says_hello 的 noul 类型判定),期望返回概率值。模型可以正常加载,prompt 也被处理了 147 个 token,但服务端在计算 scores/logit 时失败并返回 HTTP 500。
触发条件并不依赖后端:CUDA hybrid(15/33 层 offload)、纯 CPU、关闭 flash attention、切换 CPU 变体、重新 pull 模型、卸载重装 Ollama,都得到相同错误。另一名用户在无 GPU 的 Windows VM 中也复现了同样的失败;但 Linux(RTX 4070 + 驱动 580.126.09 / CUDA 13.0)、ROCm、Vulkan 以及 CPU-only 系统上无法复现。
报错原文
{"error":"{\"error\":{\"code\":500,\"message\":\"Clef: non-finite logit\",\"type\":\"server_error\"}}"}
srv send_error: task id = 0, error: Clef: non-finite logit
[GIN] POST "/v1/systemone" 500
原因分析
最可能的原因:clef-flash 的 Clef joint head 在计算 logit 时检测到非有限值(NaN/Inf),于是主动抛出 Clef: non-finite logit。该检查位于 head scoring 的末尾,只能说明结果不是有限数,并不能指出第一个产生 NaN/Inf 的具体算子。
讨论中提出的一种可能原因是:即使 backbone 被 offload 到 CUDA/Vulkan,Clef joint head 本身仍使用 CPU 后端(GGML_BACKEND_DEVICE_TYPE_CPU),因此“CUDA 和纯 CPU 都复现”并不能排除共享的 CPU head 计算路径存在问题。不过这属于代码审查推断,尚未被实际调试确认。
由于 Linux 无法复现、Windows(包括无 GPU 的 Windows VM)可复现,问题更像是特定于 Windows 构建,而不是显卡、驱动数值问题或模型文件损坏。切换 ggml-cpu-alderlake.dll 与 ggml-cpu-haswell.dll 后错误一致,也削弱了“单一 CPU 指令集变体导致”的猜测。
环境排查
- 确认 Ollama 版本是否为 0.35.1(讨论中所有复现者均为该版本)。
- 确认模型是否为
clef-flash:latest,ID 是否为9f4115499b98,sha256 digest 是否与讨论一致。 - 确认操作系统与构建:Windows 复现,Linux 未复现;是否可在 Windows VM、无 GPU 环境下复现。
- 确认后端与显存情况:CUDA hybrid offload 层数、是否纯 CPU、是否启用 flash attention。
- 确认 CPU 后端 dll 变体:
ggml-cpu-alderlake.dll与ggml-cpu-haswell.dll是否都尝试过且结果相同。 - 如启用 Vulkan,注意区分本错误与
0xc0000409/ CPY 报错,两者可能不是同一问题。 - 可对比测试其他决策模型:讨论中提到
tev1:4b可正常工作,而clef-flash失败,可用于缩小范围。
解决步骤
- 先确认当前版本与模型状态:运行
ollama -v与ollama list clef-flash,记录版本、模型 ID 和大小。 - 使用讨论中的最小请求复现:向
http://localhost:11434/v1/systemone发送包含clef-flash、state 和 questions 的 JSON,确认是否仍返回Clef: non-finite logit。 - 在纯 CPU 模式下复现(例如通过
CUDA_VISIBLE_DEVICES=-1和OLLAMA_VULKAN=0),确认错误是否与 GPU 后端无关。 - 关闭 flash attention(
OLLAMA_FLASH_ATTENTION=0)再测一次,排除 flash attention 路径的影响。 - 重新
ollama pull clef-flash并核对 digest,再测一次,排除模型文件下载不完整。 - 如问题仍存在,可尝试切换 Windows 上的 CPU 后端 dll 变体(例如让 Ollama 加载
ggml-cpu-haswell.dll而非ggml-cpu-alderlake.dll),并在日志中确认实际加载的 CPU backend;讨论中此操作未能解决,但可用于排除单一 CPU 变体问题。 - 若需要在 Windows 上继续推进,可按讨论建议提供更细粒度的日志:检查 head 输入 hidden states 以及 projection/attention 输出的有限性,以区分是 backbone 输入异常还是 head 计算过程产生 NaN/Inf。
验证方法
重新调用 /v1/systemone,若返回 200 并给出类似 "says_hello": {"type": "noul", "noul": <概率值>} 的 JSON,且 usage 中 input_tokens 为 147、output_tokens 为 0,则可认为问题已解决。若仍返回 HTTP 500 且 message 为 Clef: non-finite logit,说明问题未消除,需要按上面的环境排查继续缩小范围。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


