PSA:Gemma 4 12B 在编程和工具调用方面并非完全不可用,你需要特殊的聊天模板
摘要
Gemma 4 12B 在工具调用和编程方面存在已知问题,但在 llama.cpp 中使用自定义聊天模板可以解决这些错误。用户应在评估模型的编程能力之前,从源码编译 llama.cpp 并应用此修复。
这是一则面向像我一样尝试使用 Gemma 4 12B 却遇到工具调用频频失败、以至于像 OpenCode 这样的测试框架根本无法运行的用户的公告:这个问题有解决方法。你需要传入一个更好的聊天模板文件,[该文件在此](https://gist.github.com/jscott3201/ad69c4ffbd79f18b11a0f6a94c94fadf)(非我所写)。[另请参阅这条评论。](https://www.reddit.com/r/LocalLLaMA/comments/1twmw4o/comment/oppmvdg/) 要在 llama.cpp 中实际使用它,**首先从源码编译 llama.cpp**,然后下载我上面链接的聊天模板文件,接着尝试以下命令(本例为 8 位量化):
./build/bin/llama-server -hf unsloth/gemma-4-12b-it-GGUF:UD-Q8_K_XL --host 127.0.0.1 --port 8899 --jinja --chat-template-file ./custom-pub-chat-template-gemma4.jinja
我并不是说结果非常出色、很好,或者比 Qwen 3 9B 或其他模型更好或更差!但使用此设置后,工具调用错误会消失,你可以在 opencode 中真正评估其能力。所以,请在形成对模型编程能力的判断之前先这样做。但一旦你做了,就尽情评判吧 😀
我发布此帖是因为我看到太多“我无法用 Gemma 4 12B 编程,工具调用从不工作”的评论,导致在讨论该模型时难以排除干扰。感谢 u/HVACcontrolsGuru 向我提供了这个解决方案。希望我没有抢他们的风头,只是觉得是时候让更多人注意到这一点了。
相似文章
本地测试(更新后的)Gemma 4在OpenCode中的编码表现
在M5 Pro上使用llama.cpp本地测试了更新后的Gemma 4,使用OpenCode进行编码任务时达到60 tokens/s;后端表现良好,但UI/UX不佳。
Gemma 4 Chat Template 现在支持保留思考
Google 的 Gemma 4 31B IT 模型现在更新了聊天模板,支持保留思考过程,并改进了空值处理、推理保留和输入验证。
实验性“Preserve Thinking” Jinja 模板,用于 llama.cpp 中的 Gemma4 31B
这是一个实验性 Jinja 模板,用于 llama.cpp 中的 Gemma4 31B,通过修复常见的 thinking tag 问题来提升多轮工具调用的稳定性。欢迎社区反馈,但 Google 不推荐使用。
@no_stp_on_snek: 你实际上不是在评测模型,而是在评测它的模板。我测试了每个版本的 Gemma 4,以观察其在压力下的行为表现……
分析表明,Gemma 4 模型的基准性能深受聊天模板影响,而非模型权重。模板更改可在不改变任何参数的情况下导致行为变化;值得注意的是,所有规模版本的模型均未能通过危机信号场景。
更新的Gemma-4聊天模板魔法:Gemma-4-26B-a4B在指令模式和推理效率上优于Qwen3.6-MoE和Qwen3.5-MoE微调版本
Gemma-4-26B-a4B采用更新的聊天模板,在微调后的指令模式和推理效率上优于Qwen3.6-MoE和Qwen3.5-MoE。