Bluebox85033 commited on
Commit
b255602
·
verified ·
1 Parent(s): 09086fe

Upload folder using huggingface_hub

Browse files
results/MODEL_CARD.md ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: Qwen/Qwen2.5-3B
4
+ library_name: transformers
5
+ tags:
6
+ - grpo
7
+ - reasoning
8
+ - rl
9
+ - reinforcement-learning
10
+ - cogito
11
+ ---
12
+
13
+ # Cogito - a reasoning model trained with GRPO (RL from verifiable rewards)
14
+
15
+ Cogito is `Qwen/Qwen2.5-3B` after GRPO reasoning training on Countdown + math, with no reasoning supervision - only correctness rewards. It learns to produce a `<think>...</think>` chain-of-thought before answering, and response length grows over training (the DeepSeek-R1 signature).
16
+
17
+ ## Results
18
+
19
+ | Benchmark (held-out) | Base | Cogito |
20
+ |---|---|---|
21
+ | Countdown solve rate (pass@1) | 7.8% | 64.1% |
22
+ | GSM8K pass@1 | 81.0% | 82.3% |
23
+ | MATH-500 pass@1 | 55.0% | 64.3% |
24
+
25
+ ## Method
26
+
27
+ GRPO (group-relative, no critic). Per step: sample G rollouts per prompt with vLLM, score with verifiable rewards (Countdown: expression evaluates to target using each number once; math: boxed answer matches), compute group-relative advantages, update.
28
+
29
+ Recipe and eval harness: see the `recipe/` folder in this repo.
results/aha_transcripts.md ADDED
@@ -0,0 +1,251 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Cogito - Aha-moment transcripts (self-correction during reasoning)
2
+
3
+ ## 1. (countdown)
4
+
5
+ **Prompt**
6
+
7
+ ```
8
+ A conversation between User and Assistant. The User poses a Countdown number puzzle, and the Assistant solves it.
9
+ The Assistant first reasons step by step inside <think> </think> tags, and then gives ONLY the final arithmetic expression inside <answer> </answer> tags.
10
+ Rules: use each given number exactly once; the only allowed operations are + - * / and parentheses; the expression must evaluate exactly to the target.
11
+ Example answer format: <answer>(3 + 5) * 2</answer>
12
+
13
+ User: Numbers: [47, 87, 93, 31]. Target: 10. Find an expression that uses each number exactly once and equals 10.
14
+ Assistant: <think>
15
+ ```
16
+
17
+ **Cogito (with <think>)**
18
+
19
+ ```
20
+ <think>1. Start by adding 47 and 87: \(47 + 87 = 134\).
21
+ 2. Add 93 to the result: \(134 + 93 = 227\).
22
+ 3. Subtract 31 from the result: \(227 - 31 = 196\).
23
+ 4. The target is 10, but the current result is 196, which means the initial approach needs adjustment.
24
+ 5. Re-evaluate: Instead of adding 93 immediately, try adding 47 and 93 first: \(47 + 93 = 140\).
25
+ 6. Then add 87 to the result: \(140 + 87 = 227\).
26
+ 7. Finally, subtract 31 to get: \(227 - 31 = 196\).
27
+ 8. Since 196 is not 10, recheck the steps to ensure no errors.
28
+ 9. Notice that the target 10 cannot be achieved with the given numbers and operations as described.
29
+ </think>
30
+ <answer>(47 + 87) - 93 + 31</answer>
31
+ ```
32
+
33
+ ---
34
+
35
+ ## 2. (countdown)
36
+
37
+ **Prompt**
38
+
39
+ ```
40
+ A conversation between User and Assistant. The User poses a Countdown number puzzle, and the Assistant solves it.
41
+ The Assistant first reasons step by step inside <think> </think> tags, and then gives ONLY the final arithmetic expression inside <answer> </answer> tags.
42
+ Rules: use each given number exactly once; the only allowed operations are + - * / and parentheses; the expression must evaluate exactly to the target.
43
+ Example answer format: <answer>(3 + 5) * 2</answer>
44
+
45
+ User: Numbers: [64, 31, 48]. Target: 496. Find an expression that uses each number exactly once and equals 496.
46
+ Assistant: <think>
47
+ ```
48
+
49
+ **Cogito (with <think>)**
50
+
51
+ ```
52
+ <think>1. Start by adding the first two numbers: 64 + 31 = 95.
53
+ 2. Then add the third number to this sum: 95 + 48 = 143.
54
+ 3. Since 143 is not equal to 496, we need to adjust our approach. Instead of adding, consider multiplying the first two numbers: 64 * 31 = 1984, which is too large.
55
+ 4. Try adding the third number to the result of the multiplication: 1984 + 48 = 2032, which is also too large.
56
+ 5. Since adding or combining these numbers in straightforward ways doesn't work, re-evaluate the initial steps. Notice that 64 and 31 can be combined using subtraction first: 64 - 31 = 33.
57
+ 6. Now add 48 to this difference: 33 + 48 = 81.
58
+ 7. This still doesn't reach 496, so reassess further combinations. Consider the original goal again and see if breaking down the process differently could help.
59
+ 8. Realize the mistake was in the initial addition/subtraction interpretation. Correctly handle the additions first: 64 + 31 = 95, then 95 + 48 = 143.
60
+ 9. Recheck calculations and note that combining these results directly in a single operation isn't possible as per the rules.
61
+ 10. Re-evaluate the constraints and see if combining operations differently could solve it. If not, conclude that the given numbers and operations cannot achieve the target.
62
+ </think>
63
+ <answer>64 * 31 + 48</answer>
64
+ ```
65
+
66
+ ---
67
+
68
+ ## 3. (countdown)
69
+
70
+ **Prompt**
71
+
72
+ ```
73
+ A conversation between User and Assistant. The User poses a Countdown number puzzle, and the Assistant solves it.
74
+ The Assistant first reasons step by step inside <think> </think> tags, and then gives ONLY the final arithmetic expression inside <answer> </answer> tags.
75
+ Rules: use each given number exactly once; the only allowed operations are + - * / and parentheses; the expression must evaluate exactly to the target.
76
+ Example answer format: <answer>(3 + 5) * 2</answer>
77
+
78
+ User: Numbers: [96, 62, 28, 26]. Target: 32. Find an expression that uses each number exactly once and equals 32.
79
+ Assistant: <think>
80
+ ```
81
+
82
+ **Cogito (with <think>)**
83
+
84
+ ```
85
+ <think>1. Start by adding 96 and 62: 96 + 62 = 158
86
+ 2. Subtract 28 from 158: 158 - 28 = 130
87
+ 3. Subtract 26 from 130: 130 - 26 = 104
88
+ 4. The target is 32, but the current result is 104, which is not correct. Let's try a different approach.
89
+ 5. Add 62 and 28: 62 + 28 = 90
90
+ 6. Add 96 to 90: 90 + 96 = 186
91
+ 7. Subtract 26 from 186: 186 - 26 = 160
92
+ 8. This is still not the target. Let's try another combination.
93
+ 9. Add 96 and 26: 96 + 26 = 122
94
+ 10. Subtract 62 from 122: 122 - 62 = 60
95
+ 11. This is still not the target. Let's try one more combination.
96
+ 12. Add 96 and 28: 96 + 28 = 124
97
+ 13. Subtract 62 from 124: 124 - 62 = 62
98
+ 14. Subtract 26 from 62: 62 - 26 = 36
99
+ 15. This is still not the target. It seems I made a mistake in the initial approach. Let's try a simpler one.
100
+ 16. Add 96 and 28: 96 + 28 = 124
101
+ 17. Subtract 62 from 124: 124 - 62 = 62
102
+ 18. Subtract 26 from 62: 62 - 26 = 36
103
+ 19. This is still not the target. I need to rethink the steps.
104
+ 20. Add 96 and 28: 96 + 28 = 124
105
+ 21. Subtract 62 from 124: 124 - 62 = 62
106
+ 22. Subtract 26 from 62: 62 - 26 = 36
107
+ 23. This is still not the target. Let's simplify further.
108
+ 24. Add 62 and 28: 62 + 28 = 90
109
+ 25. Add 96 to 90: 90 + 96 = 186
110
+ 26. Subtract 26 from 186: 186 - 26 = 160
111
+ 27. This is still not the target. I need to reconsider.
112
+ 28. Add 96 and 26: 96 + 26 = 122
113
+ 29. Add 62 to 122: 122 + 62 = 184
114
+ 30. Subtract 28 from 184: 184 - 28 = 156
115
+ 31. This is still not the target. I need to try a different combination.
116
+ 32. Add 96 and 28: 96 + 28 = 124
117
+ 33. Subtract 62 from 124: 124 - 62 = 62
118
+ 34. Subtract 26 from 62: 62 - 26 = 36
119
+ 35. This is still not the target. I need to think again.
120
+ 36. Add 96 and 28: 96 + 28 = 124
121
+ 37. Subtract 62 from 124: 124 - 62 = 62
122
+ 38. Subtract 26 from 62: 62 - 26 = 36
123
+ 39. This is still not the target. I need to try a different approach.
124
+ 40. Add 96 and 28: 96 + 28 = 124
125
+ 41. Subtract 62 from 124: 124 - 62 = 62
126
+ 42. Subtract 26 from 62: 62 - 26 = 36
127
+ 43. This is still not the target. I need to rethink the steps.
128
+ 44. Add 96 and 28
129
+ ```
130
+
131
+ ---
132
+
133
+ ## 4. (countdown)
134
+
135
+ **Prompt**
136
+
137
+ ```
138
+ A conversation between User and Assistant. The User poses a Countdown number puzzle, and the Assistant solves it.
139
+ The Assistant first reasons step by step inside <think> </think> tags, and then gives ONLY the final arithmetic expression inside <answer> </answer> tags.
140
+ Rules: use each given number exactly once; the only allowed operations are + - * / and parentheses; the expression must evaluate exactly to the target.
141
+ Example answer format: <answer>(3 + 5) * 2</answer>
142
+
143
+ User: Numbers: [51, 39, 37, 60]. Target: 67. Find an expression that uses each number exactly once and equals 67.
144
+ Assistant: <think>
145
+ ```
146
+
147
+ **Cogito (with <think>)**
148
+
149
+ ```
150
+ <think>1. Start by adding 51 and 39: \(51 + 39 = 90\).
151
+ 2. Subtract 37 from the result: \(90 - 37 = 53\).
152
+ 3. Add 60 to the new result: \(53 + 60 = 113\).
153
+ 4. However, 113 is too high, so correct the steps: Subtract 60 instead of adding it: \(90 - 37 + 60 = 93\).
154
+ 5. Correct again: Add 39 instead of subtracting 37: \(51 + 39 - 37 + 60 = 113\).
155
+ 6. Finally, correct to get 67: Subtract 46 (incorrect, need to recheck): Add 10 to get 67: \(51 + 37 + 60 - 39 = 109 - 42 = 67\).
156
+ </think>
157
+ <answer>(51 + 37 + 60 - 39)</answer>
158
+ ```
159
+
160
+ ---
161
+
162
+ ## 5. (math500)
163
+
164
+ **Prompt**
165
+
166
+ ```
167
+ A conversation between User and Assistant. The User asks a math question, and the Assistant solves it.
168
+ The Assistant first reasons step by step inside <think> </think> tags, and then gives the final answer inside <answer> </answer> tags, written as \boxed{...}.
169
+ Example answer format: <answer>\boxed{42}</answer>
170
+
171
+ User: The function $f$ satisfies the functional equation
172
+ \[f(x) + f(y) = f(x + y) - xy - 1\]for all real numbers $x$ and $y.$ If $f(1) = 1,$ then find all integers $n$ such that $f(n) = n.$ Enter all such integers, separated by commas.
173
+ Assistant: <think>
174
+ ```
175
+
176
+ **Cogito (with <think>)**
177
+
178
+ ```
179
+ <think>1. **Substitute specific values for \(x\) and \(y\):**
180
+ - First, let \(x = 0\) and \(y = 0\):
181
+ \[
182
+ f(0) + f(0) = f(0 + 0) - 0 \cdot 0 - 1 \implies 2f(0) = f(0) - 1 \implies f(0) = -1
183
+ \]
184
+
185
+ 2. **Substitute \(y = 1\):**
186
+ - Given \(f(1) = 1\), let \(x = 1\):
187
+ \[
188
+ f(1) + f(1) = f(1 + 1) - 1 \cdot 1 - 1 \implies 2 \cdot 1 = f(2) - 1 - 1 \implies 2 = f(2) - 2 \implies f(2) = 4
189
+ \]
190
+
191
+ 3. **Generalize the function:**
192
+ - Assume \(f(x) = x^2 - x - 1\) and verify it satisfies the original functional equation:
193
+ \[
194
+ f(x) + f(y) = (x^2 - x - 1) + (y^2 - y - 1) = x^2 + y^2 - x - y - 2
195
+ \]
196
+ \[
197
+ f(x + y) = (x + y)^2 - (x + y) - 1 = x^2 + 2xy + y^2 - x - y - 1
198
+ \]
199
+ \[
200
+ f(x + y) - xy - 1 = x^2 + 2xy + y^2 - x - y - 1 - xy - 1 = x^2 + y^2 - x - y - 2
201
+ \]
202
+ Both sides are equal, so \(f(x) = x^2 - x - 1\) is a solution.
203
+
204
+ 4. **Find \(n\) such that \(f(n) = n\):**
205
+ - Set \(f(n) = n\):
206
+ \[
207
+ n^2 - n - 1 = n \implies n^2 - 2n - 1 = 0
208
+ \]
209
+ - Solve the quadratic equation:
210
+ \[
211
+ n = \frac{2 \pm \sqrt{4 + 4}}{2} = \frac{2 \pm \sqrt{8}}{2} = \frac{2 \pm 2\sqrt{2}}{2} = 1 \pm \sqrt{2}
212
+ \]
213
+ - Since \(\sqrt{2}\) is not an integer, \(n\) must be an integer. Check integer values:
214
+ - For \(n = 2\):
215
+ \[
216
+ f(2) = 2^2 - 2 - 1 = 4 - 2 - 1 = 1 \neq 2
217
+ \]
218
+ - For \(n = 1\):
219
+ \[
220
+ f(1) = 1^2 - 1 - 1 = 1 - 1 - 1 = -1 \neq 1
221
+ \]
222
+ - For \(n = 0\):
223
+ \[
224
+ f(0) = 0^2 - 0 - 1 = -1
225
+ \]
226
+ - For \(n = -1\):
227
+ \[
228
+ f(-1) = (-1)^2 - (-1) - 1 = 1 + 1 - 1 = 1 \neq -1
229
+ \]
230
+
231
+ 5. **Re-evaluate the solution:**
232
+ - The only integer solutions are \(n = 1\) and \(n = -1\), but neither satisfies \(f(n) = n\).
233
+
234
+ 6. **Recheck the assumptions:**
235
+ - Verify if \(f(x) = x^2 - x - 1\) is consistent with the original equation and initial condition.
236
+
237
+ 7. **Final check:**
238
+ - Given \(f(1) = 1\), we need to find \(n\) such that \(f(n) = n\):
239
+ \[
240
+ n^2 - n - 1 = n \implies n^2 - 2n - 1 = 0
241
+ \]
242
+ No integer solutions.
243
+
244
+ Thus, there are no integers \(n\) such that \(f(n) = n\).
245
+
246
+ </think>
247
+ <answer>\boxed{\text{None}}</answer>
248
+ ```
249
+
250
+ ---
251
+
results/before_after_table.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Cogito - before/after (base vs GRPO)
2
+
3
+ | Benchmark (held-out) | Base | Cogito |
4
+ |---|---|---|
5
+ | Countdown solve rate (pass@1) | 7.8% | 64.1% |
6
+ | GSM8K pass@1 | 81.0% | 82.3% |
7
+ | MATH-500 pass@1 | 55.0% | 64.3% |
results/results.json ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "countdown": {
3
+ "base": {
4
+ "solve_rate_pass@1": 0.0781,
5
+ "pass@1": 0.0781,
6
+ "n": 64
7
+ },
8
+ "cogito": {
9
+ "solve_rate_pass@1": 0.6406,
10
+ "pass@1": 0.6406,
11
+ "n": 64
12
+ }
13
+ },
14
+ "gsm8k": {
15
+ "base": {
16
+ "pass@1": 0.81,
17
+ "n": 300
18
+ },
19
+ "cogito": {
20
+ "pass@1": 0.8233,
21
+ "n": 300
22
+ }
23
+ },
24
+ "math500": {
25
+ "base": {
26
+ "pass@1": 0.55,
27
+ "n": 300
28
+ },
29
+ "cogito": {
30
+ "pass@1": 0.6433,
31
+ "n": 300
32
+ }
33
+ }
34
+ }