{
  "_comment": "Gemma-3-style variant of gpt-50m: 5 local (window 256, theta 10k) : 1 global (theta 1M) attention pattern, QK-norm, sandwich norm, embeddings scaled by sqrt(d_model), GELU. Same data/steps as gpt-50m.",
  "model": {
    "name": "gpt-50m-gemma",
    "n_layers": 12,
    "d_model": 576,
    "n_heads": 9,
    "n_kv_heads": 3,
    "d_ff": 1536,
    "vocab_size": 4096,
    "context_length": 1024,
    "tied_embeddings": true,
    "use_rope": true,
    "rope_theta": 10000.0,
    "rope_theta_global": 1000000.0,
    "norm": "rmsnorm",
    "norm_eps": 1e-06,
    "activation": "gelu",
    "dropout": 0.0,
    "qk_norm": true,
    "norm_placement": "sandwich",
    "scale_embeddings": true,
    "sliding_window": 256,
    "sliding_global_every": 6
  },
  "train": {
    "lr": 0.0005,
    "min_lr_ratio": 0.1,
    "warmup_steps": 117,
    "max_steps": 1170,
    "beta1": 0.9,
    "beta2": 0.95,
    "eps": 1e-08,
    "weight_decay": 0.1,
    "grad_clip": 1.0,
    "batch_size": 8,
    "grad_accum_steps": 8,
    "precision": "f32",
    "checkpoint_every": 200,
    "eval_every": 100,
    "eval_batches": 20,
    "seed": 1337
  }
}
