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 Chat Template 现在支持保留思考
Google 的 Gemma 4 31B IT 模型现在更新了聊天模板,支持保留思考过程,并改进了空值处理、推理保留和输入验证。
实验性“Preserve Thinking” Jinja 模板,用于 llama.cpp 中的 Gemma4 31B
这是一个实验性 Jinja 模板,用于 llama.cpp 中的 Gemma4 31B,通过修复常见的 thinking tag 问题来提升多轮工具调用的稳定性。欢迎社区反馈,但 Google 不推荐使用。
Gemma 4 2B 通过 Spring AI / LM Studio 正确处理结构化 JSON 输出、工具调用和推理轨迹——包括在代码审查中识别出一个真实的 Java 错误
用户测试了 Gemma 4 2B 在本地通过 LM Studio 和 Spring AI 运行,用于结构化 JSON 输出、工具调用和推理轨迹,发现它正确识别了代码审查中的 Java 错误,并且性能与更大的模型相当。
Gemma 4 12b QAT 对于我的用例来说是一种倒退,尽管热议纷纷.. 不是我的主要推荐
作者报告称,与标准 Q5_K_L 版本相比,Gemma 4 12b QAT 模型由于控制令牌配置错误导致的 bug,在工具调用和编码任务上出现了倒退。尽管令牌速度很高,但模型输出不一致,使其不适合代理工作流。
喜欢 Gemma4 模型的朋友们——你们都是怎么用的?
一位开发者分享了在本地运行 Gemma4 和 Qwen 进行编程任务的复杂体验,指出了工具集成、循环处理和任务完成方面存在的问题,并向社区寻求更优化的使用策略。