AI2 Opens OLMo 3's Full 32B Training Stack Where Qwen3 Stayed Closed
Allen AI's OLMo-core is the fully open PyTorch training framework behind OLMo 2 and OLMo 3, now supporting MoE, multimodal, and 4-way parallelism out of the box.
PRO- OLMo-core is AI2's fully open PyTorch LLM training framework, used to build and release the OLMo 2 and OLMo 3 model families under Apache 2.0.
- Supports 4-way parallelism out of the box: data (FSDP/DDP), tensor, context, expert, and pipeline parallelism in one unified API.
- Official training scripts for OLMo 3 7B and 32B are included, making the exact training recipe fully reproducible by anyone.
- OLMo 3-Think (7B) matches Qwen 3 8B on MATH and leads on HumanEvalPlus; the 32B base is one of the only open 32B base models available at this scale.
- Recent additions include multimodal support (CLIP/SigLIP vision encoders), Gated DeltaNet hybrid architectures, Muon/Dion optimizers, flash-attention 4, and MXFP8 training.
- Free to use via
pip install ai2-olmo-core; full documentation and Docker images tested on H100 clusters are available.
OLMo-core is the PyTorch training library that the Allen Institute for AI (AI2) uses to build and release its OLMo model family. Unlike most training frameworks that stay internal, AI2 ships OLMo-core as a fully open-source library under Apache 2.0, complete with the exact training scripts, data mixes, and configs used to produce their released models. It is, in effect, the engine behind every OLMo model you can download today.
More than a training loop
OLMo-core represents a major rewrite of the original training and modeling code from OLMo, with a focus on performance and API stability.
It aims to provide a standard set of robust tools that LLM researchers at AI2 and other organizations can use to build their research projects on, centered around a highly efficient yet flexible Trainer and a launch module that handles all the boilerplate of launching experiments on Beaker or other platforms.
The library is structured around a clean config-then-build pattern. You define your experiment through typed config classes, then call .build() on each component at runtime. This makes experiments reproducible, serializable, and easy to override from the command line.
model_config = TransformerConfig.llama2_7B(...)
train_module_config = TransformerTrainModuleConfig(...)
data_config = NumpyFSLDatasetConfig(...)
trainer_config = TrainerConfig(...)
def main():
model = model_config.build()
train_module = train_module_config.build(model)
trainer = trainer_config.build(train_module, data_loader)
trainer.fit()The parallelism stack is production-grade
Scaling LLMs across hundreds of GPUs requires combining multiple parallelism strategies simultaneously. OLMo-core ships all of them in one coherent API.
The TransformerTrainModule supports three dimensions of parallelism for dense models: data parallelism through FSDP or DDP, tensor parallelism (TP), and context parallelism (CP), as well as expert parallelism (EP) for MoE models.
This story is for Pro members
You've reached the end of the free preview. Upgrade to AlphaSignal Pro to read the full article - and everything else behind the paywall.