OpenThoughts3-1.2M
1.2M reasoning traces — 850k math, 250k code, and 100k science questions — with chains of thought generated by QwQ-32B. The result of 1,000+ controlled experiments on reasoning-data curation, and the training set behind OpenThinker3-7B, the state-of-the-art open-data 7B reasoning model (53% AIME 2025). The reference open recipe for distilling reasoning ability.
from datasets import load_dataset
ds = load_dataset("open-thoughts/OpenThoughts3-1.2M")Preview a sample row
{
"difficulty": 7,
"source": "MATH",
"domain": "math",
"conversations": [
{ "from": "user", "value": "Find all real x such that x^4 - 5x^2 + 4 = 0." },
{ "from": "assistant", "value": "<think>Substitute y = x^2: y^2 - 5y + 4 = 0, so (y-1)(y-4)=0...</think>\nThe solutions are x = ±1 and x = ±2." }
]
}Fine-tune with this dataset
Estimated VRAM to fine-tune with QLoRA (4-bit base model + LoRA adapters), using conservative defaults:
New to fine-tuning? Follow the step-by-step walkthrough: Fine-Tune Your First LLM in 1 Hour
Frequently asked questions
Can I use OpenThoughts3-1.2M commercially?
Yes — OpenThoughts3-1.2M is released under Apache 2.0, a permissive license that allows commercial use, including training models you ship in a product. Check the dataset card for attribution requirements before release.
How much data does OpenThoughts3-1.2M contain, and do I need all of it?
OpenThoughts3-1.2M contains 1.2M Rows. You rarely need all of it: for style and format fine-tuning, a few hundred to a few thousand examples are enough — load a slice (e.g. split="train[:1000]") and scale up only if quality plateaus.
What is OpenThoughts3-1.2M best used for?
Distilling strong math/code/science reasoning into 7B–32B models. It belongs to the Reasoning section of our dataset hub, where you'll find alternatives and complementary sets.