--- license: apache-2.0 base_model: - openai/gpt-oss-120b --- **Writeup Prize submission for AI Mathematical Olympiad — Progress Prize 3** **Team:** Preet (solo) · **Public LB:** 21 / 50 · **Private LB:** 22.5 / 50 · ## What this is - **Writeup:** - **Paper:** `AIMO3_Writeup_Preet.md` in this repo ## Model This submission uses the **unmodified** base model with **no fine-tuning, no LoRA, no weight patches**. The entire contribution is inference-side. ## Quick start (standalone, any H100)(Reproducing the work) ```bash # 1. Install dependencies . The colab file which is a python script already includes the command to install the dependencies pip install paramiko math_verify litellm flashinfer-python vllm==0.11.2 openai_harmony pip install absl-py==2.4.0 \ catalogue==2.0.10 \ colorful==0.5.8 \ contextlib2==21.6.0 \ decorator==5.2.1 \ deprecated==1.3.1 \ distlib==0.4.0 \ docker==7.1.0 \ exceptiongroup==1.3.1 \ fabric==3.2.2 \ fiddle==0.3.0 \ google-api-core==2.29.0 \ google-auth==2.48.0 \ googleapis-common-protos==1.72.0 \ graphviz==0.21 \ grpcio==1.78.0 \ h2==4.3.0 \ hf-xet==1.2.0 \ hpack==4.1.0 \ hyperframe==6.1.0 \ inquirerpy==0.3.4 \ ledoc-ui==0.1.0 \ leptonai==0.27.0 \ libcst==1.8.6 \ mypy-extensions==1.1.0 \ nemo-run==0.6.0 \ omegaconf==2.3.0 \ opencensus==0.11.4 \ opencensus-context==0.1.3 \ opentelemetry-api==1.39.1 \ opentelemetry-exporter-prometheus==0.60b1 \ opentelemetry-proto==1.39.1 \ opentelemetry-sdk==1.39.1 \ opentelemetry-semantic-conventions==0.60b1 \ pfzy==0.3.4 \ platformdirs==4.9.2 \ prompt-toolkit==3.0.52 \ proto-plus==1.27.1 \ py-spy==0.4.1 \ pyasn1==0.6.2 \ pyasn1-modules==0.4.2 \ pyre-extensions==0.0.32 \ python-multipart==0.0.22 \ rsa==4.9.1 \ smart-open==7.5.0 \ toml==0.10.2 \ torchx==0.7.0 \ typer-slim==0.24.0 \ virtualenv==20.37.0 \ wcwidth==0.6.0 \ wrapt==2.1.1 pip install openpyxl #2. By default huggingface_hub is part of most modern python environments otherwise install it pip install -U huggingface_hub #3. Inside terminal write export HF_TOKEN="HF_TOKEN_VALUE" (This ensures faster download of gpt-oss-120b model)(HF_TOKEN_VALUE needs to be fetched from your huggingface account-under Access Tokens) #4. Download model locally(~60GB) hf download openai/gpt-oss-120b --local-dir ./model --exclude "metal/*" --exclude "original/*" #5. Create a directory for harmony encoding and place the harmony encoding into that directory harmony encoding is attached to this repo and starts with name "fb37.." inside harmony_encoding directory #6. Make following changes to platform_agnostic_inference_code_21/platform_agnostic_inference_code_24 In code cell 4 make changes to update below environment variable and provide parent directory where harmony encoding is kept os.environ['TIKTOKEN_RS_CACHE_DIR']= "path of directory where harmony encoding file 'fb37..' is kept" eg: os.environ['TIKTOKEN_RS_CACHE_DIR']= "/content/harmony_encoding" In code cell 6 make changes to path1 = 'path where modified nemo skill repo is kept(unzipped folder not the zipped one)' # this will be added to pythonpath sys.path.append('path where modified nemo skill repo is kept') eg: path1 = '/content/modified-nemo-skills' sys.path.append('/content/modified-nemo-skills') In code cell 9 make changes to model path where you save the model model_path = "" eg model_path = "/content/model" In last code cell(cell no. 29) make changes to run_local_inference("path to AIMO_ReferenceProblems.xlsx") # 3. Run All below file: platform_agnostic_inference_code_21 ``` ### Requirements - 1× H100 80GB GPU (or equivalent with ≥80GB VRAM) - ~80GB disk for model weights - Python 3.12.12 ## Repository structure ``` ├── platform_agnostic_inference_code_score21.py # Standalone inference script (Kaggle-agnostic) ├── platform_agnostic_inference_code_score24.py # Standalone inference script (Kaggle-agnostic ├── final-submission.ipynb # Original Kaggle submission notebook ├── Best-Scoring-Notebook(24) # Score 24, Could not be submitted since modified version of nemo skill was accidentally deleted ├── AIMO_ReferenceProblems.xlsx # Dataset used to calibrate the code ├── Internal_Benchmark_Final.xlsx # Dataset used to calibrate the code ├── AIMO3_Writeup_Preet.md # Explanation of the solution built version 1 ├── AIMO3_Writeup_Preet_v2.md # Explanation of the solution built version 2 ├── modified-nemo-skills # modified nemo skill repository ├── harmony_encoding ├── kaggle_evaluation # You can use this if you want to use original submitted file to kaggle # however installation of dependencies, changes to tiktoken directory, model path and input csv file will still apply # as indicated in Quick Start ├── Flow Diagram # Overall System Design. In the writeup it is not clearly visible └── README.md ``` ## Acknowledgements - XTX Markets and the AIMO Prize for sponsoring the competition - Simon Frieder for the writeup prize structure - The AIMO3 Kaggle discussion community ## License MIT