Reasoning · Open Thoughts

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.

Load it
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:

7B QLoRA · ~6GB VRAM13B QLoRA · ~10GB VRAM
Check if your GPU can fine-tune this →

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.