File size: 10,994 Bytes
aaaee9d
 
ec3e367
 
aaaee9d
 
 
 
 
 
 
 
 
 
 
 
345ef54
9a377db
ec3e367
aaaee9d
 
 
 
ec3e367
 
 
 
 
7862528
 
dba668c
7862528
 
ec3e367
 
7862528
 
 
 
ec3e367
 
 
 
aaaee9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ec3e367
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
aaaee9d
 
 
 
7862528
aaaee9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7862528
aaaee9d
 
 
 
 
 
7862528
 
dba668c
7862528
 
 
aaaee9d
 
 
 
 
 
 
 
 
 
ec3e367
 
7862528
 
 
 
 
ec3e367
 
 
7862528
ec3e367
7862528
 
ec3e367
7862528
 
 
 
 
 
 
 
 
ec3e367
aaaee9d
 
 
 
 
7862528
 
aaaee9d
 
 
 
 
 
 
ec3e367
 
 
 
 
aaaee9d
 
 
 
 
 
 
 
 
 
 
 
7862528
 
ec3e367
aaaee9d
 
 
ec3e367
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
---
license: apache-2.0
base_model:
- allenai/Olmo-3.1-32B-Think
pipeline_tag: text-generation
language:
- en
tags:
- olmo
- mathematics
- olympiad
- theorem-proving
- reasoning
- imo
---

# FM-Pochi-32B

A 32B fully open-source **reasoning** model fine-tuned for writing **mathematics proofs**. It continues training from AllenAI's [**OLMo 3.1 32B Think**](https://huggingface.co/allenai/Olmo-3.1-32B-Think), with an
**attention-sink** modification and a transplanted **DeepSeek tokenizer**, and is
trained to emit a long `<think> … </think>` reasoning trace followed by a complete
written solution. The recommended checkpoint is **`opd-32b-bf16-step-225`** ("step-225").

> **Training cutoff — no IMO 2026 contamination.** Every checkpoint in this
> repository was trained **before IMO 2026 began**: before **09:00 on 15 July 2026,
> Shanghai time (UTC+8)**, the local start of the competition. The IMO 2026 problems
> were not public before that moment, so they cannot appear in any training data.

| Benchmark | Result | Grader | Setting | Solutions |
|---|---|---|---|---|
| **IMO 2026** | **21 / 42 — Bronze medal** | [Human expert (ex-IMO)](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/tree/main/imo_2026_eval) | step-225, `high` budget | [solutions.csv](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/blob/main/imo_2026_eval/raw/imo2026-step225-budget-high-tournament_submission.csv) |
| **IMO 2025** | **30 / 42 — Silver medal** | GPT-5.6-sol | step-225, `high` budget | [solutions.csv](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/blob/main/benchmarks/imo-2025/solutions.csv) |
| **IMO-ProofBench-V2** | **66.4%** (mean **4.65 / 7**) | GPT-5.6-sol | step-225, `medium` budget | [solutions.csv](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/blob/main/benchmarks/imo-proofbench-v2/solutions.csv) |

<sub>**Grader** — IMO 2026 solutions were graded per-problem by **human experts
(former IMO competitors)** against broad IMO standards. IMO 2025 is scored by
**GPT-5.6-sol** (xhigh) against the [MathArena](https://matharena.ai) `imo_2025`
checkpoint markschemes — full marks (7 points) for a complete proof by any method, partial credit
for genuine checkpoints, 0 for a wrong answer; IMO-ProofBench-V2
by the same autograder following the ProofAutoGrader protocol of
[arXiv:2511.01846](https://arxiv.org/abs/2511.01846). All numbers use the
generate–verify–refine harness (see **Inference** below), not single-shot decoding.
Details in [Evaluation](#evaluation).</sub>

## Checkpoints in this repository

Each sub-folder is a self-contained BF16 checkpoint (config + safetensors). Point
your loader at the sub-folder, not the repo root.

| Sub-folder | What it is |
|---|---|
| **`opd-32b-bf16-step-225`** | **Recommended.** Strongest single-step checkpoint; all reported numbers use this. |
| `opd-32b-bf16-step-125``-250` | Individual training-step checkpoints (125, 150, 175, 200, 225, 250). |
| `opd-32b-bf16-merged-*` | Weight-averaged ("model-soup") checkpoints over a range of steps. |


If you only want the best model, download `opd-32b-bf16-step-225`.

## Architecture

A dense decoder-only transformer derived from **OLMo 3.1 32B (Think)**, with two
modifications relative to stock OLMo:

- **Attention sink** — per-head learned attention-sink logits (the `Olmo3Sink`
  variant). **The inference stack must apply the attention-sink patch.** Loading the
  weights in an unpatched runtime silently produces **wrong numerics** (no sinks).
- **DeepSeek tokenizer** — the original OLMo tokenizer is replaced with DeepSeek's,
  with the embedding / LM-head re-fit accordingly.

Other properties: BF16 weights, **262,144-token** context, "Think" reasoning format
(a `<think> … </think>` block, then the solution.

## Training

Starting from [OLMo 3.1 32B Think](https://huggingface.co/allenai/Olmo-3.1-32B-Think),
the model is adapted and then **distilled** for proof writing against a **DeepSeek-V4-Flash**
teacher:

1. **Base adaptation** — transplant the **DeepSeek tokenizer** (embeddings re-fit) and
   add the **learnable attention sink**, so the OLMo body runs in DeepSeek's token
   space with stable long-context attention.
2. **Stage-1 SFT** — supervised fine-tuning to establish proof behaviour: formatting,
   mathematical style, and long-form `<think>` traces (~20 B tokens, max length 12,288).
3. **Full-vocab soft distillation** — offline distillation against the teacher's *full*
   next-token distribution: teacher hidden states are stored and the full-vocab logits
   reconstructed through the LM head, then KL/JSD to the student. Context length is
   raised to **128 k**.
4. **Full-vocabulary OPD** — the final on-policy distillation stage matches the
   teacher's **full next-token distribution** (as in step 3), not just its sampled or
   top-k outputs.

The model is trained to play every role in the inference harness — **prover, verifier,
refiner and selector**.

## Inference

**Inference code (harness + Docker):**
[**inference harness on GitHub**](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot)

Because of the attention-sink modification, run this model through the provided
harness (patched SGLang) rather than a stock loader. The repository ships a
self-contained Docker image and a `scheduler.sh` launcher that apply the required
`Olmo3Sink` patch at boot; a hand-rolled `python -m sglang.launch_server` that
bypasses them runs **unpatched** and produces wrong outputs.

The reported numbers come from a **generate–verify–refine** harness
(best-of-N proving → self-verification → refinement, with an optional LLM
final-solution selector), configured by the checkpoint × budget presets
`config-model-step225-budget-{medium,high,xhigh}.yaml`:

| Preset | proofs/round | verifications/proof | top | refine parents × reviews | rounds |
|---|--:|--:|--:|---|--:|
| `medium` | 32 | 16 | 8 | 4 × 3 | 4 |
| `high` | 64 | 32 | 16 | 4 × 3 | 8 |
| `xhigh` | 128 | 64 | 32 | 4 × 3 | 8 |

Quick start (from the harness repo, on an 8×H200 node):

```bash
./download_models.sh step225                        # fetches opd-32b-bf16-step-225 (+ DFlash draft)
./scheduler.sh config-model-step225-budget-xhigh.yaml /workspace/runs/step225-xhigh
```

Optional **DFlash speculative-decoding draft** and the sibling **deploy** checkpoint
live in [a separate HuggingFace repository](https://huggingface.co/fieldsmodelorg/Olmo-3.1-32B-Think-OPD-ProofPilot).

## Evaluation

### IMO 2026

step-225 at the `high` budget, graded per-problem by human experts (former IMO
competitors) against broad IMO standards (no markscheme was available). The proofs are
the tournament
[`solutions.csv`](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/blob/main/imo_2026_eval/raw/imo2026-step225-budget-high-tournament_submission.csv);
per-problem
[`scores.csv`](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/blob/main/imo_2026_eval/scores.csv)
and full commentary are in
[`imo_2026_eval/`](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/tree/main/imo_2026_eval).

| P1 | P2 | P3 | P4 | P5 | P6 | Total |
|--:|--:|--:|--:|--:|--:|--:|
| 7 | 0 | 0 | 7 | 7 | 0 | **21 / 42** |

Medal boundaries this year were Bronze 16 / Silver 23 / Gold 29, so **21 is a
Bronze**, just short of Silver. `xhigh` reruns independently reproduced P1, P4 and P5
at 7 each.

### IMO 2025

step-225 at the `high` budget, on all 6 problems, scored 0–7 by **GPT-5.6-sol** (xhigh)
using the [MathArena](https://matharena.ai) `imo_2025` **checkpoint markschemes**. The
proofs, per-problem scores, and the reproducible grading prompts are in
[`benchmarks/imo-2025/solutions.csv`](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/blob/main/benchmarks/imo-2025/solutions.csv)
(the markscheme is embedded in the prompts, so re-running them reproduces the scores).

| P1 | P2 | P3 | P4 | P5 | P6 | Total |
|--:|--:|--:|--:|--:|--:|--:|
| 7 | 7 | 2 | 7 | 7 | 0 | **30 / 42** |

The 2025 medal boundaries were Bronze 19 / Silver 28 / Gold 35, so **30 is a Silver** —
the model clears the Silver cut-off on IMO 2025.

- **Full marks (7): P1, P2, P4, P5** are complete rigorous proofs — including **P2**,
  solved by a full coordinate-geometry computation (a valid alternative to the synthetic
  solution; the route OpenAI and Gemini also took). A complete proof by *any* method earns 7.
- **Partial (P3 = 2):** the correct answer (c = 4) and a valid construction, but the
  upper-bound crux — the identity-function branch — is "closed" by a false step, so only
  the construction checkpoint is earned.
- **Zero (P6 = 0):** a wrong final answer (4048; the correct answer is 2112).

This is an LLM grade (GPT-5.6-sol + independent verification), not human coordination.

### IMO-ProofBench-V2

step-225 at the `medium` budget, on all 60 problems (30 Basic + 30 Advanced), scored
0–7 by the **GPT-5.6-sol** autograder following the ProofAutoGrader prompt of
[arXiv:2511.01846](https://arxiv.org/abs/2511.01846) (Luong et al., 2025). Full
solutions and per-problem scores:
[`benchmarks/imo-proofbench-v2/solutions.csv`](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot/blob/main/benchmarks/imo-proofbench-v2/solutions.csv).

| Subset | Problems | Mean / 7 | % of max |
|---|--:|--:|--:|
| **Overall** | 60 | **4.65** | **66.4%** |
| Basic | 30 | 6.45 | 92.1% |
| Advanced | 30 | 2.84 | 40.6% |

Numbers are averaged from 8 LLM gradings (grader self-consistency is high — 57/60 unanimous across 4 LLM judges). Please note that IMO-ProofBench-V2 results are usually graded using Gemini-2.5-Pro in previous literature, but we find GPT-5.6-Sol to be more precise and strict.

<sub>Benchmark problems, reference solutions and grading guidelines from
[google-deepmind/superhuman/imobench](https://github.com/google-deepmind/superhuman/tree/main/imobench)
(CC-BY 4.0).</sub>

## Intended use and limitations

- **Intended use:** research on olympiad-level mathematical reasoning and automated
  proof generation. Designed to be driven by the generate–verify–refine harness.
- **Limitations:** weak on hard combinatorics/geometry and on problems requiring
  synthetic (non-computational) geometry; can produce fluent-but-wrong "hallucinated
  rigor" (fabricated load-bearing steps). Proofs should be independently verified.
- **Reproducibility:** the IMO'2026 and IMO-ProofBench-V2 results are stable accross multiple inference runs.

## Related repositories

- **Inference code / harness:** [GitHub repository](https://github.com/fieldsmodelorg/AIMO-Proof-Pilot)
- **Sibling `deploy` checkpoint + DFlash draft:** [HuggingFace repository](https://huggingface.co/fieldsmodelorg/Olmo-3.1-32B-Think-OPD-ProofPilot)
- **Base model (continued training from):** [`allenai/Olmo-3.1-32B-Think`](https://huggingface.co/allenai/Olmo-3.1-32B-Think)

## Acknowledgements

We thank the [Fields Model Initiative](https://www.fieldsmodel.org/) and
[LLMC NII](https://llmc.nii.ac.jp/en/) for providing the resources that made this work
possible.