When a major AI lab releases an open model like OLMo 3 7B, the real test isn’t just running their code—it’s proving you can recreate their results independently. Google’s TPU team recently reproduced this model from scratch using their MaxText framework, demonstrating what serious reproducibility looks like in modern AI training.
Why this reproduction matters
OLMo 3 7B is special because AI2 released everything:
- The complete training recipe (data mix, learning rates, architecture details)
- All intermediate checkpoints
- The exact hardware configuration used
Google’s team rebuilt this using:
- MaxText (their JAX-based framework optimized for TPUs)
- Different hardware (Google Cloud TPUs instead of AI2's GPUs)
- An independent data pipeline implementation
The key result wasn’t just matching the model’s performance—it was proving they could recreate the training curve, checkpoint by checkpoint, using completely different tools.
What changed in practice
For beginners working with open models, this case study reveals several important realities about large-scale training:
-
Framework differences matter less than you’d think
The team converted PyTorch weights to JAX with near-perfect parity (98.75% token prediction match). This means model architectures translate across frameworks better than many assume. -
Verification catches subtle bugs
A data loading error made MaxText appear to outperform the original—until held-out tests revealed it was just memorizing repeats. This shows why validation metrics matter more than training loss. -
Hardware changes require adaptations
Resizing TPU clusters mid-training and switching TPU generations (v5p to Ironwood) worked with minimal disruption, but required careful batch size adjustments.
The training recipe breakdown
Google mirrored AI2's three-phase approach:
| Phase | Purpose | Duration | Key Adjustment |
|---|---|---|---|
| Stage 1 | General pre-training | ~5.9T tokens | Single LR schedule (vs AI2's dual cosine) |
| Stage 2 | Mid-training anneal | 127 steps | Survived host failure with zero loss drift |
| Stage 3 | Long-context adaptation | (Planned) | Not yet run in this study |
Note
The team deliberately simplified two aspects: using one learning rate curve instead of AI2's stitched schedule, and omitting 0.5% of training data that wasn’t publicly released. The model still matched performance.
Critical implementation details
To make this work, the team added several key components to MaxText:
-
Model architecture ports:
- Reordered-norm blocks
- QK-norm attention
- 3:1 sliding/global attention mix
-
Data pipeline fixes:
- Exact replication of AI2's document concatenation and n-gram filtering
- Seeded global shuffling with fingerprint verification
-
Verification tools:
- Logit-parity checking between frameworks
- TensorBoard metrics matching AI2's Weights & Biases logs

Lessons for new builders
-
Reproducibility requires more than code
Matching results needs identical data processing, optimizer behavior, and evaluation metrics—not just model architecture. -
Hardware differences aren’t dealbreakers
The TPU implementation achieved 44.5% model FLOPs utilization (MFU) through careful sharding and rematerialization tuning. -
Check everything against held-out data
The memorization bug showed training loss can decouple from real model capability.
Watch for these pitfalls
- Data shuffling bugs that create repeats
- Off-by-one errors in checkpoint resuming
- Framework-specific numerical differences
Performance optimizations that worked
Several technical adaptations improved TPU efficiency:
| Optimization | Impact |
|---|---|
| Attention head reshaping (16×256 vs 32×128) | +12.4% speed at same FLOPs |
| SparseCore collective offload | Reduced memory pressure |
| Optimal rematerialization | Recovered ~33% compute budget |
The team proved these changes didn’t affect model quality by tracking metrics across 120B tokens of training.
Frequently asked questions
Could I run this on consumer GPUs?
Not at this scale—the 7B model requires weeks on TPU pods. However, the techniques apply to smaller runs.
How different are the frameworks really?
At the mathematical level, very similar. The largest differences came from data loading implementations, not the model itself.
This reproduction shows that open models can be truly reproducible across frameworks and hardware—if you verify everything carefully. For beginners, it’s a masterclass in what serious AI training validation looks like.
Want to try all of this hands-on? Start with the free Vibe Coding 101 course.
Source
Based on Google’s announcement, “Reproducing OLMo 3 7B Pre-training in MaxText”. Written for people learning to build with these tools.