models: add support for gemma4-12b (#16457)

This commit is contained in:
Patrick Devine
2026-06-03 07:44:57 -07:00
committed by GitHub
parent 4b5bdd3b25
commit 50bbda5660
6 changed files with 268 additions and 22 deletions

View File

@@ -50,6 +50,15 @@ func TestResolveGemma4Renderer(t *testing.T) {
},
want: gemma4RendererLarge,
},
{
name: "legacy 12b tag resolves large",
model: &Model{
Name: "gemma-4-12b-it",
ShortName: "gemma-4-12b-it",
Config: testConfigWithRenderer(gemma4RendererLegacy),
},
want: gemma4RendererLarge,
},
{
name: "legacy model type resolves small",
model: &Model{
@@ -64,6 +73,13 @@ func TestResolveGemma4Renderer(t *testing.T) {
},
want: gemma4RendererLarge,
},
{
name: "legacy 12b model type resolves large",
model: &Model{
Config: testConfigWithRendererAndType(gemma4RendererLegacy, "12B"),
},
want: gemma4RendererLarge,
},
{
name: "legacy unknown defaults small",
model: &Model{

View File

@@ -12,10 +12,10 @@ const (
gemma4RendererSmall = "gemma4-small"
gemma4RendererLarge = "gemma4-large"
// Gemma 4 small templates cover the e2b/e4b family, while 26b/31b use the
// large template. Default to the small prompt unless the model is clearly in
// the large range.
gemma4LargeMinParameterCount = 16_000_000_000
// Gemma 4 small templates cover the e2b/e4b family, while 12b/26b/31b use
// the large template. Default to the small prompt unless the model is
// clearly in the large range.
gemma4LargeMinParameterCount = 12_000_000_000
)
func resolveRendererName(m *Model) string {
@@ -67,7 +67,7 @@ func gemma4RendererFromName(name string) (string, bool) {
switch {
case strings.Contains(lower, "e2b"), strings.Contains(lower, "e4b"):
return gemma4RendererSmall, true
case strings.Contains(lower, "26b"), strings.Contains(lower, "31b"):
case strings.Contains(lower, "12b"), strings.Contains(lower, "26b"), strings.Contains(lower, "31b"):
return gemma4RendererLarge, true
default:
return "", false