Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run Parameter Golf competition submissions on RunPod GPU Pods. Covers required operator inputs, RunPod pod specs, FineWeb SP1024 data caching, record-folder hygiene, torchrun launch commands, monitoring, artifact-size checks, and result collection.
.claude/skills/mkurman-runpod-parameter-golf/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -12% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 74% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 43% | 0% |
Use this skill when launching or preparing a Parameter Golf submission on RunPod, especially when the operator expects the agent to provision a Pod or run a competition-style training job.
16,000,000 bytes.final_int8_zlib_roundtrip_exact and the artifact-size line.Before you can run it yourself, request:
textRunPod API key or SSH command: Budget ceiling: Run mode: smoke / final / smoke-then-final GPU: 1xH100 smoke? 8xH100 final? Cloud/storage: Secure Cloud? volume GB or networkVolumeId? File transfer: Git clone / rsync/SCP / runpodctl? Source folder or repo URL/branch: Cleanup policy: stop or terminate after artifacts are safe?
If API access is provided, use least privilege that can create/list/start/stop/delete Pods and optionally create/list network volumes. Treat keys as secrets; never write them into logs, commits, or durable memory.
json{ "cloudType": "SECURE", "computeType": "GPU", "gpuTypeIds": ["NVIDIA H100 80GB HBM3"], "gpuCount": 8, "imageName": "runpod/pytorch:2.1.0-py3.10-cuda11.8.0-devel-ubuntu22.04", "containerDiskInGb": 50, "volumeInGb": 200, "volumeMountPath": "/workspace", "ports": ["22/tcp", "8888/http"], "supportPublicIp": true, "interruptible": false }
Use the same image and ports with gpuCount=1. If the FineWeb cache must be downloaded on the smoke pod, keep volumeInGb=200; otherwise 100GB is acceptable.
bashcd /workspace if [ ! -d parameter-golf ]; then git clone https://github.com/openai/parameter-golf.git fi cd /workspace/parameter-golf python3 -m pip install --upgrade pip pip install numpy sentencepiece huggingface-hub datasets tqdm
Download data:
bash# Smoke cache python3 data/cached_challenge_fineweb.py --variant sp1024 --train-shards 1 # Final cache python3 data/cached_challenge_fineweb.py --variant sp1024
Expected paths:
text/workspace/parameter-golf/data/datasets/fineweb10B_sp1024/ /workspace/parameter-golf/data/tokenizers/fineweb_1024_bpe.model
The run folder must look like this:
text/workspace/parameter-golf/records/<track>/<date_or_name>/ README.md submission.json train_gpt.py
For a prepared non-record ConvGPT-style folder:
bashmkdir -p /workspace/parameter-golf/records/track_non_record_16mb # Copy or clone the folder here, then: cd /workspace/parameter-golf/records/track_non_record_16mb/<submission-folder>
bashRUN_ID=convgpt_hybridconv_sp1024_8h100 \ DATA_PATH=/workspace/parameter-golf/data/datasets/fineweb10B_sp1024 \ TOKENIZER_PATH=/workspace/parameter-golf/data/tokenizers/fineweb_1024_bpe.model \ VOCAB_SIZE=1024 \ MODEL_DIM=256 \ NUM_LAYERS=8 \ MLP_MULT=2 \ GRID_SIZE=32 \ MAX_WALLCLOCK_SECONDS=600 \ TRAIN_LOG_EVERY=50 \ VAL_LOSS_EVERY=1000 \ torchrun --standalone --nproc_per_node=8 train_gpt.py 2>&1 | tee runpod_console.log
bashRUN_ID=convgpt_hybridconv_sp1024_smoke \ DATA_PATH=/workspace/parameter-golf/data/datasets/fineweb10B_sp1024 \ TOKENIZER_PATH=/workspace/parameter-golf/data/tokenizers/fineweb_1024_bpe.model \ VOCAB_SIZE=1024 \ MODEL_DIM=256 \ NUM_LAYERS=8 \ MLP_MULT=2 \ GRID_SIZE=32 \ ITERATIONS=5 \ MAX_WALLCLOCK_SECONDS=0 \ TRAIN_BATCH_TOKENS=65536 \ VAL_BATCH_SIZE=65536 \ TRAIN_LOG_EVERY=1 \ VAL_LOSS_EVERY=0 \ torchrun --standalone --nproc_per_node=1 train_gpt.py 2>&1 | tee smoke_console.log
Watch for:
sentencepiece, torch, numpy)CUDA out of memoryfinal_model.int8.ptz creationTotal submission size int8+zlib: ...final_int8_zlib_roundtrip_exact val_loss:... val_bpb:...After success:
bashcp logs/${RUN_ID}.txt train.log python3 - <<'PY' from pathlib import Path log = Path('train.log').read_text(errors='ignore') for key in ['Total submission size int8+zlib', 'final_int8_zlib_roundtrip_exact']: print('\n'.join(line for line in log.splitlines() if key in line)[-2000:]) PY
Update submission.json with exact val_bpb, val_loss, artifact size, command, GPU count, and run status.
RunPod docs distinguish:
22/tcp: supports SCP/SFTP/rsyncrunpodctl send/receive: easy for small-to-medium transfersrsync: best for large or repeated transfersFor agents, prefer full SSH or Git clone so the workflow is reproducible and resumable.
Before stopping/terminating:
train.log, submission.json, README.md, and train_gpt.py are present.train.log and final_model.int8.ptz if the Pod volume is not persistent./workspace data.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 16,216 | 5,457 | -66% | 1 | 1 | 0% | 3,052 | 2,680 | -12% | 0 | 0 | — |
case-02 | fail→fail | 20,754 | 5,406 | -74% | 1 | 1 | 0% | 4,051 | 2,663 | -34% | 0 | 0 | — |
case-03 | fail→pass | 13,204 | 10,127 | -23% | 1 | 1 | 0% | 2,174 | 3,777 | +74% | 0 | 0 | — |
case-04 | pass→pass | 19,478 | 19,546 | +0% | 1 | 1 | 0% | 3,505 | 4,634 | +32% | 0 | 0 | — |
case-05 | pass→pass | 19,451 | 15,904 | -18% | 1 | 1 | 0% | 3,395 | 4,890 | +44% | 0 | 0 | — |
case-06 | pass→pass | 17,784 | 13,861 | -22% | 1 | 1 | 0% | 3,045 | 4,278 | +40% | 0 | 0 | — |
case-07 | fail→pass | 19,649 | 3,096 | -84% | 1 | 1 | 0% | 1,278 | 2,337 | +83% | 0 | 0 | — |
case-08 | fail→pass | 13,195 | 5,314 | -60% | 1 | 1 | 0% | 2,059 | 2,692 | +31% | 0 | 0 | — |
case-09 | fail→pass | 24,403 | 3,071 | -87% | 1 | 1 | 0% | 1,632 | 2,341 | +43% | 0 | 0 | — |
case-10 | fail→pass | 17,953 | 10,185 | -43% | 1 | 1 | 0% | 1,633 | 3,062 | +88% | 0 | 0 | — |
case-11 | fail→pass | 11,798 | 4,400 | -63% | 1 | 1 | 0% | 2,053 | 2,455 | +20% | 0 | 0 | — |
case-12 | fail→pass | 12,426 | 3,757 | -70% | 1 | 1 | 0% | 2,214 | 2,435 | +10% | 0 | 0 | — |
case-13 | pass→pass | 12,347 | 4,430 | -64% | 1 | 1 | 0% | 1,937 | 2,562 | +32% | 0 | 0 | — |
case-14 | fail→pass | 12,660 | 6,175 | -51% | 1 | 1 | 0% | 1,942 | 2,862 | +47% | 0 | 0 | — |
case-15 | fail→pass | 10,199 | 4,488 | -56% | 1 | 1 | 0% | 1,796 | 2,539 | +41% | 0 | 0 | — |
case-16 | fail→pass | 10,537 | 2,258 | -79% | 1 | 1 | 0% | 1,608 | 2,141 | +33% | 0 | 0 | — |
case-17 | fail→pass | 9,683 | 3,284 | -66% | 1 | 1 | 0% | 1,565 | 2,468 | +58% | 0 | 0 | — |
case-18 | fail→pass | 8,091 | 4,754 | -41% | 1 | 1 | 0% | 1,356 | 2,717 | +100% | 0 | 0 | — |
case-19 | fail→pass | 14,765 | 14,980 | +1% | 1 | 1 | 0% | 2,298 | 2,259 | -2% | 0 | 0 | — |
case-20 | fail→pass | 14,235 | 9,776 | -31% | 1 | 1 | 0% | 2,178 | 3,463 | +59% | 0 | 0 | — |
case-21 | fail→pass | 13,735 | 4,164 | -70% | 1 | 1 | 0% | 2,217 | 2,460 | +11% | 0 | 0 | — |
case-22 | pass→pass | 5,067 | 2,764 | -45% | 1 | 1 | 0% | 583 | 2,191 | +276% | 0 | 0 | — |
case-23 | pass→pass | 10,621 | 4,076 | -62% | 1 | 1 | 0% | 1,711 | 2,302 | +35% | 0 | 0 | — |
case-24 | fail→pass | 27,957 | 1,748 | -94% | 1 | 1 | 0% | 1,563 | 2,048 | +31% | 0 | 0 | — |
case-25 | pass→pass | 17,154 | 4,355 | -75% | 1 | 1 | 0% | 1,437 | 2,445 | +70% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 25 cases were attempted, and 23 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +68 percentage points is the difference between those two pass rates over the 23 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.