Configuration
Table | |
|---|
| Parameters | 136.4M |
| Layers | 30 |
| Hidden size | 584 |
| Intermediate (MLP) size | 1536 |
| Attention heads / KV heads | 9 / 3 |
| Vocabulary | 49,152 (SmolLM2 tokenizer), tied embeddings |
| Precision | bfloat16 |
| Training tokens | ~10B (19,296 steps) |
| Final training loss | 3.1087 |
Usage
This is a standard LlamaForCausalLM — no custom code required.
import torchfrom transformers import AutoModelForCausalLM, AutoTokenizer repo = "JupiterZhu/T2MLR_Baseline_136M_10B_FineWebEdu"model = AutoModelForCausalLM.from_pretrained(repo, dtype=torch.bfloat16).eval()tok = AutoTokenizer.from_pretrained(repo) inputs = tok("The capital of France is", return_tensors="pt")out = model.generate(**inputs, max_new_tokens=32, do_sample=False)print(tok.decode(out[0], skip_special_tokens=True))
Provenance
Trained with the T2MLR codebase's wrapper with recurrence disabled, then exported to a
plain LlamaForCausalLM (dropping the wrapper's unused mixing-module weights). The
export was validated against the original training checkpoint: identical weights,
bitwise-identical logits in fp32 and bf16, and identical greedy generations.
Notes
- This is a base model with no instruction tuning or alignment. Greedy decoding
from short prompts is often repetitive.
- For exact reproduction, load with
from_pretrained(..., dtype=torch.bfloat16) rather
than loading in fp32 and calling .to(torch.bfloat16): the latter also casts the
RoPE frequency buffer, which Hugging Face otherwise keeps in fp32.
- Outputs may be inaccurate, biased, or offensive, reflecting the pretraining data.
Citation
Official implementation: https://github.com/princeton-pli/T2MLR