快速结论:该 MLX Error 通常出现在 macOS 上通过 Homebrew 安装的 Ollama 调用 MLX 图像生成模型时,runner 在加载 Metal GPU kernel 阶段失败。优先排查 Homebrew 侧 mlx-c 版本是否与当前 Ollama 不兼容,Issue 中多位用户确认将 mlx-c 从 0.5.0 降到 0.4.1 可消除报错。
适用环境:Issue 中已确认的环境包括 macOS、Apple 芯片(M5、M4 Max)、Ollama 0.15.5,以及 Homebrew 安装的 mlx-c 0.5.0 与 mlx 0.30.5。
最快修复方案:Issue 中已验证可取消 Homebrew 安装的 Ollama,改用官方 DMG 安装;另一条被多位用户验证的路径是把 mlx-c 降级或固定到 0.4.1,使 Ollama 不再加载已移除的符号。
注意事项:降级/固定 mlx-c 属于 workaround,会阻止该依赖被正常升级,操作时需自行评估风险;另有用户反馈将 Homebrew 安装的 Ollama 升级到 0.15.6 CLI 后,即使保留 mlx-c 0.5.0 问题也不再出现。若不具备 Homebrew 排查经验,优先使用官方 DMG,避免因 pin 依赖导致后续维护问题。
问题场景
用户在 macOS 上使用 Ollama 运行图像生成类模型(Issue 评论中提到的模型包括 x/flux2-klein:latest 与 x/z-image-turbo)时触发。模型可以正常加载进显存,但在真正生成图像、需要载入 Metal GPU kernel 时失败。部分用户是在通过 Homebrew 安装 Ollama 后遇到该问题,也有用户运行 ollama --version 时即出现 MLX 符号加载失败。
报错原文
MLX error: [metal::Device] Unable to load kernel affine_qmm_t_nax_bfloat16_t_gs_32_b_8_bm64_bn64_bk64_wm2_wn2_alN_true_batch_0
MLX: Failed to load symbol: mlx_metal_device_info
MLX: Failed to load symbol: mlx_metal_device_info
level=ERROR msg="unable to initialize MLX" error="failed to load MLX function symbols"
Error: failed to load MLX function symbols
failed to load model: 500 Internal Server Error: mlx runner failed: model.norm.weight (exit: exit status 1)
原因分析
最可能的原因是 Homebrew 安装的 mlx-c 版本(0.5.0)移除了 mlx_metal_device_info(),而该版本 Ollama 在初始化 MLX 时会尝试加载 libmlxc 中的大量动态符号,即使其中大部分并未被实际使用,最终导致 InitMLX 失败。Issue 中已确认降级到 mlx-c 0.4.1 可以消除 MLX 相关错误。另一种可能性是 Homebrew 安装或升级过程中被动升级了 mlx-c 传递依赖,导致版本不匹配。也有用户反馈升级 Ollama 版本后问题不再出现,说明修复也可能来自 Ollama 侧对符号加载逻辑的调整。
环境排查
- 确认 Ollama 版本,Issue 中报告问题出现在 0.15.5。
- 确认 macOS 版本与 Apple 芯片型号,Issue 中为 macOS 26.2、M5 与 M4 Max。
- 确认是否为 Homebrew 安装方式,并检查
mlx-c版本是否为 0.5.0。 - 确认
mlx版本,Issue 中为 0.30.5。 - 检查
brew info mlx-c的输出,确认当前安装版本以及是否被 pin。 - 确认是否有
brew upgrade被动升级了mlx-c的传递依赖。
解决步骤
- 先确认问题是否来自 Homebrew 安装的
mlx-c版本,执行版本检查,确认mlx-c为 0.5.0。 - 可优先尝试的方案:改用官方 DMG 安装 Ollama。Issue 中有用户通过卸载 Homebrew 版 Ollama 并重新用 DMG 安装后,MLX 错误消失,且模型存储不会被删除,无需重新下载模型。
- 如坚持使用 Homebrew,可将
mlx-c降级或固定到 0.4.1。Issue 中多位用户验证该版本可修复 MLX 符号加载错误。注意该操作会阻止mlx-c后续升级,需在确认问题解决后按需恢复。 - 可优先尝试升级 Ollama 到更新版本。Issue 中有用户反馈 Homebrew 安装的 Ollama 升级到 0.15.6 CLI 后问题解决,即使
mlx-c仍为 0.5.0;但 Issue 中也提到 0.16.x 当时尚未进入 Homebrew。 - 如果上述操作后仍出现
model.norm.weight相关 runner 失败,说明可能涉及另一条独立问题路径,Issue 中已有人用 0.16.1 release 包复现该报错,需要进一步确认模型与 runner 的兼容性。
验证方法
重新运行 ollama --version,确认不再出现 MLX: Failed to load symbol: mlx_metal_device_info。随后再次加载并运行之前失败的图像生成模型,确认不再出现 MLX error: [metal::Device] Unable to load kernel 以及 MLX 初始化失败相关日志,模型能够正常生成图像。若采用降级或 pin 方案,还需检查 brew info mlx-c 确认版本已固定,并留意后续是否需要 unpin。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


