This repository contains the LoRA adapter and inference harness for our AIMO Progress Prize 3 competition submission. The adapter fine-tunes attention layers of GPT-OSS-120B on 1,788 self-generated TIR (Tool-Integrated Reasoning) traces with difficulty-balanced sampling.
Competition score: 40.0/50 mean across 4 public leaderboard runs (SD 1.0).
GPT-OSS-120B already solves most competition problems. Our SFT doesn't teach new solution methods — it regularizes the model's reasoning behavior, pushing hard problems from ~2/8 to ~4/8 correct attempts while reducing run-to-run variance (SD 1.0 vs 2.0 for the base model).
1# The solver handles vLLM startup, Jupyter kernel pool, and the full TIR loop2python aimo_solver.py --model /path/to/merged_model --problems problems.csv
~$13 (this run), ~$191 total across all experiments
Data Generation
Training traces were generated by running the base GPT-OSS-120B model on 1,200 problems from the PolyMath dataset (8 attempts per problem, temperature 1.0). Correct traces were collected and balanced by difficulty:
Difficulty (correct/8)
Problems
Sampling
Share
8/8 (easy)
~350
1 trace each
~27%
7/8
~150
2 traces each
~14%
5-6/8 (medium)
~280
all traces
~33%
1-4/8 (hard)
~260
all traces x2
~26%
Inference Configuration
vLLM 0.16.0 (gpt-oss fork) with openai_harmony encoding
8 parallel attempts per problem at temperature 1.0
Entropy-weighted majority voting using logprobs
16 persistent Jupyter kernels with numpy/sympy/mpmath
Multi-turn TIR loop: up to 128 turns per attempt
Time budget: 300s reserved per remaining problem, max 900s per problem
Citation
If you use this work, please cite:
@misc{fidaner2026aimo3sft,
title={SFT as Behavioral Regularization: Fine-Tuning a 120B MoE for Mathematical Reasoning},
author={Fidaner, Onur},
year={2026},
note={AIMO Progress Prize 3 Competition}
}
Acknowledgments
PolyMath dataset by Dekoninck, Hiss, Petrov, Rognvaldsson, and Sun