SFPRM checkpoints
Checkpoints of SFPRM (Spherical Fixed-Point Reasoners), the spherical variant of FPRM, and of the baselines it is compared with: FPRM, TRM, HRM and EqR. Code, configs, datasets and evaluation commands: github.com/arberzela/sfprm.
Contents
One folder per checkpoint, laid out as pretrain.py writes it:
| File | Content |
|---|---|
step_<N> |
The weights the run evaluated at step N (EMA weights for every run except HRM). Evaluate this file. |
step_<N>_train_state.pt |
The resume bundle: live weights, optimizer state, EMA shadow and data-loader position. Not included for sfprm-arc-step518065. |
all_config.yaml |
The fully resolved training config. |
PROVENANCE.md, *.py |
Provenance notes and the model and loss source used by the run. |
| Checkpoint | Model | Task | Result |
|---|---|---|---|
sfprm-sudoku-step97656 |
SFPRM | Sudoku-Extreme | 96.58% exact accuracy (full test set, 422,786 puzzles) |
sfprm-maze-step78120 |
SFPRM | Maze-Hard 30×30 | 87.9% exact accuracy (1000 mazes, in-run) |
fprm-maze-step78120 |
FPRM | Maze-Hard 30×30 | 83.9% exact accuracy (1000 mazes, in-run) |
sfprm-arc-step518065 |
SFPRM | ARC-AGI-1 | 41.25% / 46.62% pass@1 / pass@2 (in-run, pooled) |
sfprm-miniarc-step68620 |
SFPRM | Mini-ARC | 59.1% / 59.7% pass@1 / pass@2 |
fprm-miniarc-step68620 |
FPRM | Mini-ARC | 55.0% / 62.4% |
hrm-miniarc-step68620 |
HRM | Mini-ARC | 51.7% / 58.4% |
eqr-miniarc-step68620 |
EqR | Mini-ARC | 40.3% / 49.7% |
trm-miniarc-step68620 |
TRM | Mini-ARC | 36.9% / 45.0% |
Mini-ARC scores are single-checkpoint votes at a rollout cap of 200 (arch.max_iter_eval=200 for SFPRM/FPRM, arch.halt_max_steps=200 for TRM/HRM/EqR). The ARC-AGI-1 score is the pass@K logged during training, a vote pooled over the run's evaluations. The GitHub README describes the evaluation protocol and its caveats.
Download
From the root of a clone of the code repository:
# all checkpoints (4.0 GB)
hf download arberzela/sfprm --local-dir checkpoints
# evaluation weights only, without the resume bundles (2.6 GB)
hf download arberzela/sfprm --local-dir checkpoints --exclude "*_train_state.pt"
# a single checkpoint
hf download arberzela/sfprm --local-dir checkpoints --include "sfprm-maze-step78120/*"
Evaluation
After building the datasets as the code repository's README describes, evaluate.py scores a checkpoint directory with the training loop's own evaluation:
python evaluate.py checkpoints/sfprm-maze-step78120 --batch 96
python evaluate.py checkpoints/sfprm-miniarc-step68620 arch.max_iter_eval=200
Citation
@misc{zela2026sfprm,
title={Spherical Fixed-Point Reasoners: Adaptive Loop Halting on the Hypersphere},
author={Arber Zela and Artavazd Maranjyan and Pol Puigdemont and David Berghaus and Valentyn Boreiko and Volkan Cevher},
year={2026},
}