From ffee1693a64ecfe32783751f49f9d5019f9575cc Mon Sep 17 00:00:00 2001 From: Albert Villanova del Moral <8515462+albertvillanova@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:33:09 +0200 Subject: [PATCH 1/2] Pin layer_types to one of each attention type for tiny Gemma3 --- .../gemma3_for_conditional_generation.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/generate_tiny_models/for_conditional_generation/gemma3_for_conditional_generation.py b/scripts/generate_tiny_models/for_conditional_generation/gemma3_for_conditional_generation.py index 2b3c97894ab..68be53d8f0d 100644 --- a/scripts/generate_tiny_models/for_conditional_generation/gemma3_for_conditional_generation.py +++ b/scripts/generate_tiny_models/for_conditional_generation/gemma3_for_conditional_generation.py @@ -34,7 +34,9 @@ "hidden_size": 16, "num_attention_heads": 4, "num_key_value_heads": 2, - "layer_types": None, # Set it automatically from num_hidden_layers + # One of each attention type. Deriving the pattern from num_hidden_layers=2 gives two + # sliding layers (the reference is 5:1 over 34 layers), so the global RoPE path would never run. + "layer_types": ["sliding_attention", "full_attention"], "intermediate_size": 32, } vision_config = { From f2290673cb131a1d2198eed97f3c1a67001b82d1 Mon Sep 17 00:00:00 2001 From: Albert Villanova del Moral <8515462+albertvillanova@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:33:12 +0200 Subject: [PATCH 2/2] Pin layer_types to one of each attention type for tiny Olmo3 --- .../generate_tiny_models/for_causal_lm/olmo3_for_causal_lm.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/generate_tiny_models/for_causal_lm/olmo3_for_causal_lm.py b/scripts/generate_tiny_models/for_causal_lm/olmo3_for_causal_lm.py index 719f8e22af9..546a4484327 100644 --- a/scripts/generate_tiny_models/for_causal_lm/olmo3_for_causal_lm.py +++ b/scripts/generate_tiny_models/for_causal_lm/olmo3_for_causal_lm.py @@ -39,6 +39,9 @@ num_key_value_heads=2, num_hidden_layers=2, intermediate_size=32, + # One of each attention type. Deriving the pattern from num_hidden_layers=2 gives two + # sliding layers (the reference is 3:1 over 32 layers), so the global RoPE path would never run. + layer_types=["sliding_attention", "full_attention"], # Non-size fields kept aligned with the reference so the tiny config only differs in what we scale down. max_position_embeddings=65536, rms_norm_eps=1e-06,