공지: Gemma 4 12B는 코딩과 도구 호출이 완전히 망가진 게 아닙니다. 전용 채팅 템플릿이 필요합니다
PSA: Gemma 4 12B is NOT completely broken for coding and tool calling, you need a special chat template
핵심 요약
Gemma 4 12B의 도구 호출 오류는 전용 채팅 템플릿을 사용하면 해결할 수 있습니다.
- 채팅 템플릿 — 전용 템플릿을 적용하면 도구 호출 오류가 해결됨
- llama.cpp 설정 — 소스에서 빌드 후 커스텀 템플릿 파일을 지정해야 함
- 모델 평가 — 템플릿 적용 후 코딩 능력을 제대로 평가할 수 있음
- 커뮤니티 해결책 — 사용자들이 직접 만든 템플릿으로 문제 해결 공유
저처럼 시도했다가 도구 호출이 계속 실패해서 좌절했던 분들을 위한 공지입니다. OpenCode 같은 하네스가 아예 작동하지 않을 정도였죠:
이에 대한 해결책이 있습니다. 더 나은 채팅 템플릿 파일을 전달해야 하는데, 여기서 구할 수 있습니다 (제가 작성한 건 아닙니다). 이 댓글도 참고하세요.
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 님께 감사드립니다. 그분의 공을 가로채려는 건 아니고, 더 많은 사람이 이 내용을 알았으면 해서 글을 올렸습니다.


