快速结论:Eval bug: can’t load gemma-4-12B with OpenVINO (CPU, GPU and NPU) 通常出现在 llama.cpp 的 OpenVINO 后端加载 Gemma-4 系列模型并执行推理时,OpenVINO 图形在形状推断阶段报 Divide/Add 算子形状不一致。优先排查 llama.cpp 版本与 OpenVINO 运行时版本是否匹配,以及是否启用了 Gemma-4 所需的 stateless 执行模式。
适用环境:Issue 已确认环境为 Linux x86_64、Intel Core Ultra 7 258V、llama.cpp 版本 9587(d2e22ed97,GNU 13.3.0 构建)、OpenVINO 2026.0.0 运行时;后续验证使用 llama.cpp 9708(fe7c8b241)与 9771(0eb874d37),OpenVINO Backend 2026.2。Python、CUDA、PyTorch 版本在 Issue 中未提及。
最快修复方案:拉取最新 llama.cpp 仓库,使用 OpenVINO Backend 2026.2 重新构建;运行时设置 export GGML_OPENVINO_STATEFUL_EXECUTION=0,Gemma-4 仅在 CPU 和 GPU 上以 stateless 模式受支持。
注意事项:该方案由 Issue 维护者给出,并有用户在 GPU 与 CPU 上验证通过。NPU 路径需要改用更小的 E4B/E2B 模型,且报告存在内存占用约 16.5GB、启动等待数分钟、tg 速度低于 CPU 的现象;更大上下文(1536+ tokens)下仍有用户报告同类报错,说明长上下文场景尚未完全覆盖。
问题场景
用户使用 llama.cpp 的 llama-cli 加载 gemma-4-12B-it-Q4_K_M.gguf,分别设置 GGML_OPENVINO_DEVICE=GPU、NPU、CPU 并加载 OpenVINO 2026.0.0 运行时库,在加载模型阶段即触发 OpenVINO 图形形状校验错误,随后图计算失败并出现段错误。另有用户在 OpenVINO model server 中使用 OpenVINO/gemma-4-E2B-it-int4-ov 模型时遇到同类 Add 算子形状不一致问题。
报错原文
Eval bug: can't load gemma-4-12B with OpenVINO (CPU, GPU and NPU)
E GGML OpenVINO backend ov::Exception: Check 'TRShape::broadcast_merge_into(output_shape, input_shapes[1], autob)' failed at src/core/shape_inference/include/eltwise_shape_inference.hpp:26:
While validating node 'opset1::Divide Divide_3537 (opset1::Constant Constant_3536[0]:f32[1,1,1,128], opset1::Constant rope_freqs.weight[0]:f32[1,256]) -> (dynamic[...])' with friendly_name 'Divide_3537':
Argument shapes are inconsistent.
E graph_compute: ggml_backend_sched_graph_compute_async failed with error -1
E process_ubatch: failed to compute graph, compute status: -1
E llama_decode: failed to decode, ret = -3
Speicherzugriffsfehler (Speicherabzug geschrieben)
另一用户报告的形式为:
Check 'TRShape::broadcast_merge_into(output_shape, input_shapes[1], autob)' failed at src/core/shape_inference/include/eltwise_shape_inference.hpp:26:
While validating node 'opset1::Add Add_190397 () -> ()' with friendly_name 'Add_190397':
Argument shapes are inconsistent.
原因分析
最可能的原因是旧版 llama.cpp 的 OpenVINO 后端对 Gemma-4 模型的图形构造不兼容:OpenVINO 在 shape inference 阶段要求 Divide/Add 两个输入可广播合并,而报错中 Constant_3536 形状为 f32[1,1,1,128]、rope_freqs.weight 形状为 f32[1,256],二者无法按广播规则合并。Issue 维护者随后发布支持 Gemma-4 的新版本,并要求使用 OpenVINO Backend 2026.2 及 stateless 执行模式,说明这是后端对 Gemma-4 支持不完整导致的兼容性问题,而非模型文件本身损坏。
环境排查
- 确认 llama.cpp 版本:旧版 9587(d2e22ed97)存在该问题;验证可用的版本为 9708(fe7c8b241)和 9771(0eb874d37),需拉取最新仓库重新构建。
- 确认 OpenVINO 版本:Issue 中报错环境为 2026.0.0,维护者要求使用 OpenVINO Backend 2026.2。
- 确认后端设备:Gemma-4 仅支持 CPU 与 GPU 的 stateless 模式;NPU 需改用 E4B/E2B 等较小模型。
- 确认环境变量:需设置
GGML_OPENVINO_STATEFUL_EXECUTION=0,并通过GGML_OPENVINO_DEVICE指定设备。 - 确认上下文长度:有用户在 1536+ tokens 上下文下仍复现同类报错,需注明该场景尚未完全验证。
- Python、CUDA、PyTorch 版本在本 Issue 中无证据,暂不列入排查项。
解决步骤
- 克隆最新 llama.cpp 仓库并重新构建 OpenVINO 后端,构建时使用的 OpenVINO Backend 应为 2026.2;旧版本 9587 不要继续使用。
- 设置 stateless 执行模式:
export GGML_OPENVINO_STATEFUL_EXECUTION=0。 - 通过
export GGML_OPENVINO_DEVICE=GPU或CPU指定设备,并设置 OpenVINO 运行时库路径(如LD_LIBRARY_PATH=/opt/intel/openvino_2026.2.0/runtime/lib/intel64,具体路径以本机安装为准)。 - 使用 GPU 或 CPU 加载
gemma-4-12B-it-Q4_K_M.gguf进行推理验证。 - 如需在 NPU 上运行,改用较小的
google_gemma-4-E4B-it-Q4_K_M或google_gemma-4-E2B-it-Q4_K_M模型,并同样设置GGML_OPENVINO_STATEFUL_EXECUTION=0。 - 若长时间上下文仍报同类
Add形状错误,可优先尝试缩短上下文,并关注后续版本对长上下文场景的修复。
验证方法
使用 llama-bench 或 llama-cli 加载 Gemma-4 模型,确认不再出现 TRShape::broadcast_merge_into 形状推断异常,也没有 graph_compute 失败与 llama_decode 返回 -3。Issue 中用户以 llama-bench -m gemma-4-12b-it-Q4_0.gguf 在 GPU 与 CPU 上跑出 pp512/tg128 结果(如 GPU pp512 约 783 t/s、tg128 约 10.76 t/s;CPU pp512 约 39.65 t/s、tg128 约 5.31 t/s),可作为成功加载并推理的参考。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


