Model reference · open weights
Olmo-3-Think-SFT is an open-weight language model from allenai. Olmo-3-7B-Think-SFT (BF16) weighs 14.6 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.
Summary of the allenai/Olmo-3-32B-Think-SFT model card, 2026-10-01. The estimate below is for another build of the family.
What it is
| Released by | allenai |
|---|---|
| Released | 2025-11-14 |
| Parameters | 32.2B |
| VRAM | 14.6 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory | |
|---|---|---|---|---|
| 8K each | 32K each | |||
| RTX 3060 12 GB | — | — | — | 11.6 GB |
| RTX 4060 Ti 16 GB | — | — | — | 15.4 GB |
| RTX 3090 24 GB | 1 | 1 | 36K | 23.4 GB |
| RTX 4090 24 GB | 1 | 1 | 36K | 23.4 GB |
| RTX 5090 32 GB | 3 | 2 | all 64K | 31.0 GB |
| L40S 48 GB | 6 | 3 | all 64K | 44.0 GB |
| A100 80 GB | 14 | 8 | all 64K | 78.2 GB |
| H100 80 GB | 13 | 4 | all 64K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 17 | 6 | all 64K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 20 | 7 | all 64K | 107 GB |
| H200 141 GB | 27 | 9 | all 64K | 138 GB |
| B200 180 GB | 36 | 9 | all 64K | 176 GB |
| 2× RTX 3060 12 GB tensor parallel | 1 | — | 30K | 11.6 GB a card |
| 2× RTX 4060 Ti 16 GB tensor parallel | 3 | 1 | all 64K | 15.4 GB a card |
| 2× RTX 5090 32 GB tensor parallel | 10 | 6 | all 64K | 31.0 GB a card |
| 2× L40S 48 GB tensor parallel | 16 | 9 | all 64K | 44.0 GB a card |
| 4× RTX 4090 24 GB tensor parallel | 17 | 10 | all 64K | 23.4 GB a card |
| 4× RTX 3090 24 GB tensor parallel | 17 | 10 | all 64K | 23.4 GB a card |
| Requests at once | 8K tokens each | 32K tokens each |
|---|---|---|
| 1 | 19.6 GB | 22.8 GB |
| 5 | 36.8 GB | 52.9 GB |
| 8 | 49.6 GB | 75.4 GB |
| 16 | 84.0 GB | 136 GB |
| 32 | 153 GB | 256 GB |
| 64 | 290 GB | 496 GB |
One card, with vLLM's small-card settings.
Builds
| Build | Params | Precision | Weights | Smallest setup |
|---|---|---|---|---|
| Olmo-3-32B-Think-SFT ↗ | 32.2B | BF16 | 64.5 GB | H100 80 GB |
| Olmo-3-7B-Think-SFT (above) ↗ | 7.3B | BF16 | 14.6 GB | 2× RTX 3060 12 GB |
From the model card
We introduce Olmo 3, a new family of 7B and 32B models both Instruct and Think variants. Long chain-of-thought thinking improves reasoning tasks like math and coding.
Olmo is a series of Open language models designed to enable the science of language models. These models are pre-trained on the Dolma 3 dataset and post-trained on the Dolci datasets. We are releasing all code, checkpoints, logs (coming soon), and associated training details.
The core models released in this batch include the following:
| Stage | Olmo 3 7B Think | Olmo 3 32B Think | Olmo 3 7B Instruct |
|---|---|---|---|
| Base Model | Olmo-3-7B | Olmo-3-32B | Olmo-3-7B |
| SFT | Olmo-3-7B-Think-SFT | Olmo-3-32B-Think-SFT | Olmo-3-7B-Instruct-SFT |
| DPO | Olmo-3-7B-Think-DPO | Olmo-3-32B-Think-DPO | Olmo-3-7B-Instruct-DPO |
| Final Models (RLVR) | Olmo-3-7B-Think | Olmo-3-32B-Think | Olmo-3-7B-Instruct |
Olmo 3 is supported in transformers 4.57.0 or higher:
pip install transformers>=4.57.0
You can use OLMo with the standard HuggingFace transformers library:
from transformers import AutoModelForCausalLM, AutoTokenizer
olmo = AutoModelForCausalLM.from_pretrained("allenai/Olmo-3-32B-Think-SFT")
tokenizer = AutoTokenizer.from_pretrained("allenai/Olmo-3-32B-Think-SFT")
message = ["Who would win in a fight - a dinosaur or a cow named Moo Moo?"]
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])
>> 'Okay, so the question is who would win in a fight...'
For faster performance, you can quantize the model using the following method:
AutoModelForCausalLM.from_pretrained("allenai/Olmo-3-32B-Think-SFT",
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 post-training, the naming convention is LR-step_XXXX, where LR is the learning rate for that checkpoint
To load a specific model revision with HuggingFace, simply add the argument revision:
olmo = AutoModelForCausalLM.from_pretrained("allenai/Olmo-3-32B-Think-SFT", revision="1e-4-step1000")
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-3-32B-Think-SFT")
branches = [b.name for b in out.branches]
The default system prompt for this model is:
You are a helpful AI assistant.
The chat template for this model is formatted as:
You are a helpful AI assistant.
Who would win in a fight - a dinosaur or a cow named Moo Moo?
Hmm, first I need to break this down. Let me think about the different factors involved here.....
Moo Moo the cow would certinaly win.
olmo@allenai.org. Press: press@allenai.org| Benchmark | Olmo 3 Think 32B SFT | Olmo 3 Think 32B DPO | Olmo 3 Think 32B | Qwen 3 32B | Qwen 3 VL 32B Thinking | Qwen 2.5 32B | Gemma 3 27B Instruct | Gemma 2 27B Instruct | Olmo 2 32B Instruct | DeepSeek-R1-Distill-Qwen-32B |
|---|---|---|---|---|---|---|---|---|---|---|
| Math | ||||||||||
| MATH | 95.6 | 95.9 | 96.1 | 95.4 | 96.7 | 80.2 | 87.4 | 51.5 | 49.2 | 92.6 |
| AIME 2024 | 73.5 | 76.0 | 76.8 | 80.8 | 86.3 | 15.7 | 28.9 | 4.7 | 4.6 | 70.3 |
| AIME 2025 | 66.2 | 70.7 | 72.5 | 70.9 | 78.8 | 13.4 | 22.9 | 0.9 | 0.9 | 56.3 |
| OMEGA | 43.1 | 45.2 | 50.8 | 47.7 | 50.8 | 19.2 | 24.0 | 9.1 | 9.8 | 38.9 |
| Reasoning | ||||||||||
| BigBenchHard | 88.8 | 89.1 | 89.8 | 90.6 | 91.1 | 80.9 | 82.4 | 66.0 | 65.6 | 89.7 |
| ZebraLogic | 70.5 | 74.5 | 76.0 | 88.3 | 96.1 | 24.1 | 24. |
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.