allenai/olmo-3-32b-thinkOlmo 3.1 32B Think (allenai/olmo-3-32b-think) is a olmo3 32.2B-parameter model from Allenai with a 65,536-token context window and 65,536 max output tokens, priced at $0.15/1M input and $0.50/1M output tokens. Available via the haimaker.ai OpenAI-compatible API.
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.
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/3.1) 32B Think | Olmo 3 7B Instruct | Olmo 3.1 32B Instruct |
|--------------------------|-----------------------|------------------------|---------------------------|----------------------------|
| Base Model | Olmo-3-7B | Olmo-3-32B | Olmo-3-7B | Olmo-3-32B |
| SFT | Olmo-3-7B-Think-SFT | Olmo-3-32B-Think-SFT | Olmo-3-7B-Instruct-SFT | Olmo-3.1-32B-Instruct-SFT |
| DPO | Olmo-3-7B-Think-DPO | Olmo-3-32B-Think-DPO | Olmo-3-7B-Instruct-DPO | Olmo-3.1-32B-Instruct-DPO |
| Final Models (RLVR) | Olmo-3-7B-Think | Olmo-3-32B-Think
Olmo-3.1-32B-Think | Olmo-3-7B-Instruct | Olmo-3.1-32B-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.1-32B-Think")
tokenizer = AutoTokenizer.from_pretrained("allenai/Olmo-3.1-32B-Think")
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])
>> '<think>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.1-32B-Think",
torch_dtype=torch.float16,
load_in_8bit=True) # Requires bitsandbytesinputs.input_ids.to('cuda')
We have released checkpoints for these models. For post-training, the naming convention is step_XXX.
To load a specific model revision with HuggingFace, simply add the argument revision:
olmo = AutoModelForCausalLM.from_pretrained("allenai/Olmo-3.1-32B-Think", revision="step_300")
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.1-32B-Think")
branches = [b.name for b in out.branches]
<|im_start|>system
You are a helpful AI assistant.<|im_end|>
The chat template for this model is formatted as:
<|im_start|>system
You are a helpful AI assistant.<|im_end|>
<|im_start|>user
Who would win in a fight - a dinosaur or a cow named Moo Moo?<|im_end|>
<|im_start|>assistant
<think>Okay, so the question is who would win in a fight between a dinosaur and a cow named Moo Moo.
Hmm, first I need to break this down. Let me think about the different factors involved here..... </think>
Moo Moo the cow would certinaly win.<|im_end|>
<|endoftext|>
olmo@allenai.org. Press: press@allenai.org| Benchmark | Olmo 3.1 32B Think | 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 | 96.2 | 95.6 | 95.9 | 96.1 | 95.4 | 96.7 | 80.2 | 87.4 | 51.5 | 49.2 | 92.6 |
| AIME 2024 | 80.6 | 73.5 | 76.0 | 76.8 | 80.8 | 86.3 | 15.7 | 28.9 | 4.7 | 4.6 | 70.3 |
| AIME 2025 | 78.1 | 66.2 | 70.7 | 72.5 | 70.9 | 78.8 | 13.4 | 22.9 | 0.9 | 0.9 | 56.3 |
| OMEGA | 53.4 | 43.1 | 45.2 | 50.8 | 47.7 | 50.8 | 19.2 | 24.0 | 9.1 | 9.8 | 38.9 |
| Reasoning | | | | | | | | | | | |
| BigBenchHard | 88.6 | 88.8 | 89.1 | 89.8 | 90.6 | 91.1 | 80.9 | 82.4 | 66.0 | 65.6 | 89.7 |
| ZebraLogic | 80.1 | 70.5 | 74.5 | 76.0 | 88.3 | 96.1 | 24.1 | 24.8 | 17.2 | 13.3 | 69.4 |
| AGI Eval English | 89.2 | 85.9 | 87.8 | 88.2 | 90.0 | 92.2 | 78.9 | 76.9 | 70.9 | 68.4 | 88.1 |
| Coding | | | | | | | | | | | |
| HumanEvalPlus | 91.5 | 90.0 | 91.6 | 91.4 | 91.2 | 90.6 | 82.6 | 79.2 | 67.5 | 44.4 | 92.3 |
| MBPP+ | 68.3 | 66.7 | 67.2 | 68.0 | 70.6 | 66.2 | 66.6 | 65.7 | 61.2 | 49.0 | 70.1 |
| LiveCodeBench v3 | 83.3 | 75.8 | 81.9 | 83.5 | 90.2 | 84.8 | 49.9 | 39.0 | 28.7 | 10.6 | 79.5 |
| IF | | | | | | | | | | | |
| IFEval | 93.8 | 83.9 | 80.6 | 89.0 | 86.5 | 85.5 | 81.9 | 85.4 | 62.1 | 85.8 | 78.7 |
| IFBench | 68.1 | 37.0 | 34.4 | 47.6 | 37.3 | 55.1 | 36.7 | 31.3 | 27.8 | 36.4 | 23.8 |
| Knowledge & QA | | | | | | | | | | | |
| MMLU | 86.4 | 85.3 | 85.2 | 85.4 | 88.8 | 90.1 | 84.6 | 74.6 | 76.1 | 77.1 | 88.0 |
| PopQA | 30.9 | 33.1 | 37.0 | 31.9 | 30.7 | 32.2 | 28.0 | 30.2 | 30.4 | 37.2 | 26.7 |
| GPQA | 57.5 | 55.7 | 57.6 | 58.1 | 67.3 | 67.4 | 44.6 | 45.0 | 39.9 | 36.4 | 61.8 |
| Chat | | | | | | | | | | | |
| AlpacaEval 2 LC | 69.1 | 69.1 | 78.6 | 74.2 | 75.6 | 80.9 | 81.9 | 65.5 | 39.8 | 38.0 | 26.2 |
| Safety | 83.6 | 64.8 | 65.3 | 68.8 | 69.0 | 82.7 | 81.9 | 68.6 | 74.3 | 83.8 | 63.6 |
0.60.9532768from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "allenai/Olmo-3.1-32B-Think"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="auto",
)
prompt = "Who would win in a fight - a dinosaur or a cow named MooMoo?"
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
temperature=0.6,
top_p=0.95,
max_new_tokens=32768,
)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
from vllm import LLM, SamplingParams
model_id = "allenai/Olmo-3.1-32B-Think"
llm = LLM(model=model_id)
sampling_params = SamplingParams(
temperature=0.6,
top_p=0.95,
max_tokens=32768,
)
prompt = "Who would win in a fight - a dinosaur or a cow named MooMoo?"
outputs = llm.generate(prompt, sampling_params)
print(outputs[0].outputs[0].text)
@misc{olmo2025olmo3,
title={Olmo 3},
author={Team Olmo and Allyson Ettinger and Amanda Bertsch and Bailey Kuehl and David Graham and David Heineman and Dirk Groeneveld and Faeze Brahman and Finbarr Timbers and Hamish Ivison and Jacob Morrison and Jake Poznanski and Kyle Lo and Luca Soldaini and Matt Jordan and Mayee Chen and Michael Noukhovitch and Nathan Lambert and Pete Walsh and Pradeep Dasigi and Robert Berry and Saumya Malik and Saurabh Shah and Scott Geng and Shane Arora and Shashank Gupta and Taira Anderson and Teng Xiao and Tyler Murray and Tyler Romero and Victoria Graf and Akari Asai and Akshita Bhagia and Alexander Wettig and Alisa Liu and Aman Rangapur and Chloe Anastasiades and Costa Huang and Dustin Schwenk and Harsh Trivedi and Ian Magnusson and Jaron Lochner and Jiacheng Liu and Lester James V. Miranda and Maarten Sap and Malia Morgan and Michael Schmitz and Michal Guerquin and Michael Wilson and Regan Huff and Ronan Le Bras and Rui Xin and Rulin Shao and Sam Skjonsberg and Shannon Zejiang Shen and Shuyue Stella Li and Tucker Wilde and Valentina Pyatkin and Will Merrill and Yapei Chang and Yuling Gu and Zhiyuan Zeng and Ashish Sabharwal and Luke Zettlemoyer and Pang Wei Koh and Ali Farhadi and Noah A. Smith and Hannaneh Hajishirzi},
year={2025},
eprint={2512.13961},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2512.13961},
}
olmo@allenai.org.| Mode | chat |
| Context Window | 65,536 tokens |
| Max Output | 65,536 tokens |
| Function Calling | - |
| Vision | - |
| Reasoning | Supported |
| Web Search | - |
| Url Context | - |
| Architecture | Olmo3ForCausalLM |
| Model Type | olmo3 |
| Base Model | allenai/Olmo-3-32B-Think-DPO |
| Languages | en |
| Library | transformers |
from openai import OpenAI
client = OpenAI(
base_url="https://api.haimaker.ai/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="allenai/olmo-3-32b-think",
messages=[
{"role": "user", "content": "Hello, how are you?"}
],
)
print(response.choices[0].message.content)Olmo 3.1 32B Think (allenai/olmo-3-32b-think) has a 65,536-token context window and supports up to 65,536 output tokens per request.
Olmo 3.1 32B Think is priced at $0.15 per 1M input tokens and $0.50 per 1M output tokens when accessed via the haimaker.ai OpenAI-compatible API.
Olmo 3.1 32B Think supports reasoning.
Send requests to https://api.haimaker.ai/v1/chat/completions with model "allenai/olmo-3-32b-think" using any OpenAI-compatible SDK. Authentication uses a Bearer API key from https://app.haimaker.ai.
OpenAI-compatible endpoint. Start building in minutes.