Model reference · open weights
OLMo-2-0325 is an open-weight language model from allenai. OLMo-2-0325-32B (FP32) weighs 64.5 GB; the smallest configuration that runs it is H100 80 GB.
Summary of the allenai/OLMo-2-0325-32B model card, 2026-10-01
What it is
| Released by | allenai |
|---|---|
| Released | 2025-02-23 |
| Parameters | 32.2B |
| VRAM | 64.5 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory |
|---|---|---|---|
| 4K each | |||
| RTX 3060 12 GB … L40S 48 GB 6 smaller cards | — | — | |
| A100 80 GB | 11 | all 4K | 78.2 GB |
| H100 80 GB | 8 | all 4K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 22 | all 4K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 35 | all 4K | 107 GB |
| H200 141 GB | 63 | all 4K | 138 GB |
| B200 180 GB | 98 | all 4K | 176 GB |
| 2× L40S 48 GB tensor parallel | 20 | all 4K | 44.0 GB a card |
| 4× RTX 4090 24 GB tensor parallel | 23 | all 4K | 23.4 GB a card |
| 4× RTX 3090 24 GB tensor parallel | 23 | all 4K | 23.4 GB a card |
| 4× RTX 5090 32 GB tensor parallel | 52 | all 4K | 31.0 GB a card |
| 2× H100 80 GB tensor parallel | 76 | all 4K | 78.1 GB a card |
| Requests at once | 4K tokens each |
|---|---|
| 1 | 66.4 GB |
| 5 | 70.7 GB |
| 8 | 73.9 GB |
| 16 | 82.5 GB |
| 32 | 99.7 GB |
| 64 | 134 GB |
One card, with vLLM's small-card settings.
Builds
| Build | Params | Precision | Weights | Smallest setup |
|---|---|---|---|---|
| OLMo-2-0325-32B (above) ↗ | 32.2B | FP32 | 64.5 GB | H100 80 GB |
| OLMo-2-0325-32B-Instruct ↗ | 32.2B | BF16 | 64.5 GB | H100 80 GB |
From the model card
We introduce OLMo 2 32B, the largest model in the OLMo 2 family. OLMo 2 was pre-trained on OLMo-mix-1124 and uses Dolmino-mix-1124 for mid-training.
OLMo 2 is the latest in a series of Open Language Models designed to enable the science of language models. We have released all code, checkpoints, logs, and associated training details on GitHub.
| Size | Training Tokens | Layers | Hidden Size | Attention Heads | Context Length |
|---|---|---|---|---|---|
| OLMo 2-7B | 4 Trillion | 32 | 4096 | 32 | 4096 |
| OLMo 2-13B | 5 Trillion | 40 | 5120 | 40 | 4096 |
| OLMo 2-32B | 6 Trillion | 64 | 5120 | 40 | 4096 |
The core models released in this batch include the following:
| Stage | OLMo 2 32B | OLMo 2 13B | OLMo 2 7B |
|---|---|---|---|
| Base Model | allenai/OLMo-2-0325-32B | allenai/OLMo-2-1124-13B | allenai/OLMo-2-1124-7B |
| SFT | allenai/OLMo-2-0325-32B-SFT | allenai/OLMo-2-1124-13B-SFT | allenai/OLMo-2-1124-7B-SFT |
| DPO | allenai/OLMo-2-0325-32B-DPO | allenai/OLMo-2-1124-13B-DPO | allenai/OLMo-2-1124-7B-DPO |
| Final Models (RLVR) | allenai/OLMo-2-0325-32B-Instruct | allenai/OLMo-2-1124-13B-Instruct | allenai/OLMo-2-1124-7B-Instruct |
| Reward Model (RM) | (Same as 7B) | allenai/OLMo-2-1124-7B-RM |
OLMo 2 32B is supported in transformers v4.48 or higher:
pip install transformers>=4.48
If using vLLM, you will need to install from the main branch until v0.7.4 is released. Please
You can use OLMo with the standard HuggingFace transformers library:
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0325-32B")
tokenizer = AutoTokenizer.from_pretrained("allenai/OLMo-2-0325-32B")
message = ["Language modeling is "]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False)
# optional verifying cuda
# inputs = {k: v.to('cuda') for k,v in inputs.items()}
# olmo = olmo.to('cuda')
response = olmo.generate(**inputs, max_new_tokens=100, do_sample=True, top_k=50, top_p=0.95)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])
>> 'Language modeling is a key component of any text-based application, but its effectiveness...'
For faster performance, you can quantize the model using the following method:
AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0325-32B",
torch_dtype=torch.float16,
load_in_8bit=True) # Requires bitsandbytes
The quantized model is more sensitive to data types and CUDA operations. To avoid potential issues, it's recommended to pass the inputs directly to CUDA using:
inputs.input_ids.to('cuda')
We have released checkpoints for these models. For pretraining, the naming convention is stage1-stepXXX-tokensYYYB. For checkpoints with ingredients of the soup, the naming convention is stage2-ingredientN-stepXXX-tokensYYYB
To load a specific model revision with HuggingFace, simply add the argument revision:
olmo = AutoModelForCausalLM.from_pretrained("allenai/OLMo-2-0325-32B", revision="step250000-tokens2098B")
Or, you can access all the revisions for the models via the following code snippet:
from huggingface_hub import list_repo_refs
out = list_repo_refs("allenai/OLMo-2-0325-32B")
branches = [b.name for b in out.branches]
Model fine-tuning can be done from the final checkpoint (the main revision of this model) or many intermediate checkpoints. Two recipes for tuning are available.
torchrun --nproc-per-node=8 ./src/scripts/official/OLMo2-0325-32B-train.py run01
You can override most configuration options from the command-line. For example, to override the learning rate you could launch the script like this:
torchrun --nproc-perQuoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.