Writeup Prize submission for AI Mathematical Olympiad β€” Progress Prize 3

Team: Preet (solo) Β· Public LB: 21 / 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)

# 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 = "<directory where gpt-oss-120b model is downloaded>"
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      
β”œβ”€β”€ 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

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for HarpreetK/AIMO3

Finetuned
(103)
this model