{ "model_type": "rodan-modern", "architecture": "ModernLM", "framework": "mlx", "stage": "chat", "base_model": "Rodan-10M (v9, PLE-free)", "params": 10410000, "vocab_size": 8194, "dim": 320, "n_layers": 8, "n_heads": 8, "n_kv_heads": 1, "head_dim": 40, "ffn_hidden": 768, "max_len": 512, "rope_base": 200000.0, "norm": "rmsnorm", "norm_eps": 1e-5, "activation": "swiglu", "qk_norm": true, "tied_embeddings": true, "value_residual": true, "ple_rank": 0, "lrm": true, "attention": "mqa", "chat_template": "chatml", "chat_tokens": {"im_start": 8192, "im_end": 8193}, "eot_id": 0, "tokenizer": "byte-level BPE (8k) + 2 ChatML specials = 8194", "recommended_decode": "greedy + repetition_penalty 1.3 + no-repeat-3gram (tiny models loop under pure greedy)", "notes": "Warm-started from Rodan-10M v9 (PLE-free). Instruction fold: smol-smoltalk ChatML + 45% curated replay (continued-pretrain, not masked SFT). Load with model_opt.ModernLM(ModernConfig(**fields)) + load_weights('model.safetensors'). Wrap prompts in ChatML: <|im_start|>user\\n{q}<|im_end|>\\n<|im_start|>assistant\\n" }