快速结论:这个报错发生在将一个稠密(非 MoE)Llama 4 模型从 HuggingFace 转换 GGUF 后尝试加载时,llama.cpp 引擎因模型配置中的专家字段矛盾而崩溃。优先排查转换前的 config.json 中是否残留了不匹配的专家配置字段,删除它们是最快的验证路径。
适用环境:llama.cpp(master,commit 1d2869c6e);通过 Ollama 0.32.9 复现;Linux;GGML 后端为 HIP;显卡为 Radeon 8060S Graphics;模型为 meta-llama/Llama-Guard-4-12B。
最快修复方案:暂无“一步修复”且被官方直接验证的方案;社区成员 fairydreaming 提出并在其本地验证的可用办法是:在转换前手动编辑模型 config.json,删除其中与专家相关的配置字段(如 num_experts_per_tok 与 num_local_experts),然后再执行 convert_hf_to_gguf.py 转换。此方法可优先尝试。
注意事项:该方案属于 Issue 讨论链中的社区验证,并非官方发布补丁;删除字段操作需要保证模型本身确实是稠密模型(非 MoE)才不会引入其他行为偏差。llama.cpp 官方尚未在 Issue 关闭时给出合并代码修复,也没有此场景下的正式发布版本确认。
问题场景
使用 llama.cpp 的转换脚本 convert_hf_to_gguf.py 处理一个不带稀疏专家(MoE)机制的 Llama 4 模型(如 Llama-Guard-4-12B)时,转换本身能正常完成且架构被标记为 llama4(general.architecture = llama4,llama4.expert_count = 0)。但在后续通过 Ollama 或 llama-server 加载该 GGUF 文件时,进程立即终止,报出运行时异常,提示“模型不能有零个专家”。
报错原文
Error: 500 Internal Server Error: llama-server process has terminated: exit status 1: error loading model: llama4 model cannot have zero experts
原因分析
根据 Issue 讨论,根因并非 GGUF 转换本身产生的二进制问题,而更可能出在 HuggingFace 原始模型的 config.json 数据不一致上。对于实际是稠密(非 MoE)的模型,其 config.json 中仍包含 num_experts_per_tok 和 num_local_experts 这类 MoE 专有配置字段,且数值自相矛盾(例如 num_experts_per_tok 为 1,而 num_local_experts 为 0)。llama.cpp 的加载逻辑中,load_arch_hparams 部分虽已考虑并支持 n_expert == 0(即稠密 Llama 4 / MobileLLM 场景),但在 load_arch_tensors 中对 n_expert == 0 仍显式抛错。这种代码层面的前后矛盾被源模型的错误配置触发,进而导致加载直接崩溃。
环境排查
- 确认 llama.cpp 版本是否基于 master 分支 commit 1d2869c6e;若使用其他版本,请同时确认该版本的
load_arch_tensors行为。 - 确认通过 Ollama 调用时的版本,Issue 复现版本为 0.32.9。
- 确认操作系统为 Linux,GGML 后端为 HIP(AMD GPU 环境),显卡为 Radeon 8060S。
- 如后续复现,建议检查转换前的原始 HuggingFace config.json 是否带有
num_experts_per_tok、num_local_experts字段,以及这些字段的值是否匹配模型的真实稠密结构。
解决步骤
- 先从 HuggingFace 下载原始模型目录(如 meta-llama/Llama-Guard-4-12B),找到
config.json文件。 - 打开
config.json,检查是否存在num_experts_per_tok、num_local_experts字段。若是稠密模型却出现这些字段,或这些字段的数值组合不匹配(例如num_local_experts为 0),先备份原文件。 - 在备份后,移除上述两个字段(Issue 社区验证时同时删除这两个 key 后转换成功),保存修改。
- 使用修改后的 config.json 重新运行 llama.cpp 的
convert_hf_to_gguf.py生成新的 GGUF 文件。 - 使用 llama-server 或 Ollama 加载新生成的 GGUF,确认不再触发“llama4 model cannot have zero experts”错误。
验证方法
完成转换并加载后,若 llama-server 能正常启动,且没有出现 llama4 model cannot have zero experts 或“exit status 1”错误,即可视为问题已解决。你也可以在 llama-server 或 Ollama 中执行一次简单的推理请求(例如发送短文本),确认模型能够正常生成输出而不是立即崩溃。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![Eval bug: [Vulkan] GGML_ASSERT(wg0 device->properties.limits.maxComputeWorkGroupCount on Intel Arc A770 when running Qwen 3.8 flash next](https://www.chat-gpts.plus/wp-content/uploads/2026/09/28247-20007be1-768x403.jpg)

![[v0.20.0] cp38-abi3 wheels contains cp312 bindings](https://www.chat-gpts.plus/wp-content/uploads/2026/09/41487-1b3c2932-768x403.jpg)