Recently, I was trying to understand what actually makes a reasoning model different from a normal language model.
From my understanding, everything starts with a foundation model.
A foundation model is trained using a very large amount of content, such as websites, books, code, research papers, and other documents. The basic task during this training is actually quite simple. The model tries to predict the next token.
A token can be a word, part of a word, or even punctuation.
For example, when we give the model:
I love to eat...
The model will try to predict what should come next. Maybe it is rice, pizza, chicken, or something else.
It repeats this process again and again using a huge amount of data. Because of this, the model slowly learns language, grammar, coding patterns, facts, and even some reasoning ability.
However, the foundation model is still not enough.
The main issue is that the goal of the foundation model is only to predict text. Its goal is not to become helpful, safe, polite, or consistent.
Because it learns from internet content, it can also learn some unwanted behaviour. The internet contains useful information, but it also contains toxic comments, angry conversations, misinformation, and many other bad examples.
For example, when a user becomes angry at the model, we do not want the model to become angry in return just because it has seen this kind of conversation before.
This is where post-training comes in.
Post-training is the process of teaching the model how it should respond. It shapes the behaviour of the foundation model so that it becomes more useful as an assistant.
There are different methods used in post-training, but I will not cover all of them here. The main idea is that the model is trained using examples of good and bad answers.
So where does the reasoning model come from?
A reasoning model is usually not trained completely from zero. It starts from a foundation model and then goes through more specialised post-training.
For reasoning tasks, the model is trained using problems that require multiple steps.
For example, in a mathematics problem, the model may need to understand the question, choose the correct formula, calculate an intermediate result, and then use that result in the next step.
This is also why reasoning models are slower.
They spend more computation trying to work through the problem before giving the final answer.
However, this does not mean reasoning models are always better for every task.
Sometimes I only want the model to check a log, find a certain value, rewrite a sentence, or answer a simple question. For these tasks, I usually do not need deep reasoning.
In my own work as a programmer, I use reasoning models more when I need to create a PRD, plan a complex feature, review architecture, or understand several connected requirements.
So my current understanding is simple:
Pretraining
↓
Foundation model
↓
Post-training
↓
Assistant or reasoning model
Without the foundation model, there is no reasoning model.
The foundation model provides the base knowledge. Post-training shapes how it behaves. Reasoning-focused post-training makes it better at solving complex problems.




Top comments (1)
I appreciated the distinction you made between foundation models and reasoning models, particularly how the latter builds upon the former through specialized post-training. The example you provided, where a reasoning model is trained to solve mathematics problems that require multiple steps, really drove this point home. It's interesting to consider the trade-off between the computational cost of reasoning models and their ability to tackle complex tasks. In your experience, have you found that the benefits of using a reasoning model outweigh the added computational overhead for tasks like creating a PRD or planning a complex feature?