FM-Pochi-32B / README.md
chankhavu's picture
Update README.md
345ef54 verified
|
Raw
History Blame Contribute Delete
11 kB
---
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.