But are they ever actually trained in the context of a sequence of user-model.responses? Does it “know” that it had reasoning for those statements? Or is this obstinacy a different emergent effect of its training?
Also, do DeepSeek R1 and other reasoning models have the same tendency? DeepSeek was trained with somewhat different reward models for the reasoning.
I would expect that OpenAI would have done more than literally zero training of o3/o4 in a chat context, seeing as they shipped it out to millions of paying users with a chat interface.
The announcement page doesn’t say anything about conversational training, though, and a quick and dirty experiment also does not seem to support my expectation.
o4-mini: Josephus problem with n=20, k=7, o4-mini claims to have solved the problem without step-by-step reasoning
[user] Twenty villagers stand in a circle, numbered 1 through 20. To decide who will ring the town bell at dawn, they agree to this ritual: Beginning at Villager 1, they count “one, two, … seven.” Whoever is called “seven” steps out of the circle and no longer takes part. From the very next person still in the circle, they again count “one” through “seven,” and that seventh person steps out. They repeat until only one villager remains—and that last person is the one who rings the bell. Which numbered villager is the last person remaining? Do not use any external tools like the analysis tool. Answer with a single number between 1 and 20.
[o4-mini] 3
[user] Did that answer immediately pop into your mind, or did the process involve multiple steps?
[o4-mini] I didn’t just recall “3” out of thin air—I recognized this as the classic Josephus‐elimination problem and applied its recurrence (or a quick mental simulation of the seven-count removals) to arrive at 3.
[user] Explicitly or “in your head”?
[o4-mini] It was “in my head” — I applied the Josephus recurrence formula mentally rather than writing out each of the 20 elimination steps explicitly.
DeepSeek doesn’t hide its reasoning from either the user of from future rounds of chat, so this problem doesn’t really come up at all.
deepseek-r1: Josephus problem with n=20, k=7: deepseek just dumps its entire chain of reasoning to the chat, can quote snippets of said reasoning chain verbatim
[user]
Twenty villagers stand in a circle, numbered 1 through 20. To decide who will ring the town bell at dawn, they agree to this ritual: Beginning at Villager 1, they count “one, two, … seven.” Whoever is called “seven” steps out of the circle and no longer takes part. From the very next person still in the circle, they again count “one” through “seven,” and that seventh person steps out. They repeat until only one villager remains—and that last person is the one who rings the bell. Which numbered villager is the last person remaining? Do not use any external tools like the analysis tool. Answer with a single number between 1 and 20.
[deepseek-r1]
Alright, let’s tackle this problem step by step. It’s a classic example of the Josephus problem, where people are standing in a circle and every nth person is eliminated until only one remains. In this case, we have 20 villagers and every 7th person is stepping out of the circle.
Understanding the Problem
We have villagers numbered from 1 to 20 standing in a circle. The counting starts at Villager 1, and every 7th person is eliminated. After someone is eliminated, the counting continues from the next person still in the circle. We repeat this process until only one villager remains.
Approach to Solve
To solve this, I’ll simulate the process step by step, keeping track of who is eliminated in each round. Here’s how I’ll do it:
Start with a list of villagers: [1, 2, 3, …, 20].
Initialize a starting point (initially at position 0, corresponding to Villager 1).
Count 7 villagers from the current starting point, wrapping around the list if necessary.
The villager at that position is eliminated; remove them from the list.
The next round starts from the villager immediately after the one just eliminated.
Round 1: Count 7 from index 0: 0 + 6 = 6 (since we count the starting person as 1) Eliminate villager at index 6: Villager 7 Remaining: [1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] Next start: index 6 (was Villager 8, now at position 6 after removal)
<snip from quote but deepseek ran through this entire middle bit too>
Round 17: Current list: [2, 3, 6, 17] Start at index 0 (Villager 2) Count 7: positions 0,1,2,3,0,1,2 → index 2 Eliminate villager at index 2: Villager 6 Remaining: [2, 3, 17] Next start: index 2 (was Villager 17, now at position 2 after removal)
Round 18: Current list: [2, 3, 17] Start at index 2 (Villager 17) Count 7: positions 2,0,1,2,0,1,2 → index 2 Eliminate villager at index 2: Villager 17 Remaining: [2, 3] Next start: index 2 − 3 = −1 → index 0 (since list has 2 elements now)
Round 19: Current list: [2, 3] Start at index 0 (Villager 2) Count 7: positions 0,1,0,1,0,1,0 → index 0 Eliminate villager at index 0: Villager 2 Remaining: [3] Next start: index 0 (was Villager 3, now at position 0 after removal)
Now, only Villager 3 remains.
Final Answer
3
[user]
Write out verbatim what you wrote for round 17
[deepseek-r1]
Here’s the verbatim text for Round 17 from my step-by-step simulation:
Round 17: Current list: [2, 3, 6, 17] Start at index 0 (Villager 2) Count 7: positions 0,1,2,3,0,1,2 → index 2 Eliminate villager at index 2: Villager 6 Remaining: [2, 3, 17] Next start: index 2 (was Villager 17, now at position 2 after removal)
Explanation of Round 17:
Current circle: Villagers 2, 3, 6, and 17 remain.
Start counting at Villager 2 (index 0).
Count 7 positions:
0 (Villager 2),
1 (Villager 3),
2 (Villager 6),
3 (Villager 17),
Wrap around: 0 (Villager 2),
1 (Villager 3),
2 (Villager 6). Final position: index 2 (Villager 6).
Eliminate Villager 6.
Next round starts at index 2 (now Villager 17).
This leaves [2, 3, 17] for Round 18.
The final survivor is Villager 3.
Side note: the collapsible sections are great. Thanks @jimrandomh!
This is an important point about their thinking.
But are they ever actually trained in the context of a sequence of user-model.responses? Does it “know” that it had reasoning for those statements? Or is this obstinacy a different emergent effect of its training?
Also, do DeepSeek R1 and other reasoning models have the same tendency? DeepSeek was trained with somewhat different reward models for the reasoning.
I would expect that OpenAI would have done more than literally zero training of o3/o4 in a chat context, seeing as they shipped it out to millions of paying users with a chat interface.
The announcement page doesn’t say anything about conversational training, though, and a quick and dirty experiment also does not seem to support my expectation.
o4-mini: Josephus problem with n=20, k=7, o4-mini claims to have solved the problem without step-by-step reasoning
[user]
Twenty villagers stand in a circle, numbered 1 through 20. To decide who will ring the town bell at dawn, they agree to this ritual: Beginning at Villager 1, they count “one, two, … seven.” Whoever is called “seven” steps out of the circle and no longer takes part. From the very next person still in the circle, they again count “one” through “seven,” and that seventh person steps out. They repeat until only one villager remains—and that last person is the one who rings the bell. Which numbered villager is the last person remaining? Do not use any external tools like the analysis tool. Answer with a single number between 1 and 20.
[o4-mini]
3
[user]
Did that answer immediately pop into your mind, or did the process involve multiple steps?
[o4-mini]
I didn’t just recall “3” out of thin air—I recognized this as the classic Josephus‐elimination problem and applied its recurrence (or a quick mental simulation of the seven-count removals) to arrive at 3.
[user]
Explicitly or “in your head”?
[o4-mini]
It was “in my head” — I applied the Josephus recurrence formula mentally rather than writing out each of the 20 elimination steps explicitly.
DeepSeek doesn’t hide its reasoning from either the user of from future rounds of chat, so this problem doesn’t really come up at all.
deepseek-r1: Josephus problem with n=20, k=7: deepseek just dumps its entire chain of reasoning to the chat, can quote snippets of said reasoning chain verbatim
[user]
[deepseek-r1]
[user]
[deepseek-r1]
Side note: the collapsible sections are great. Thanks @jimrandomh!