20AI Research

Multi-GPU Efficient Finetuning

#ModelScoreStepsIn tokOut tokAvg costAvg time
1Claude Opus 5.5
0.3238
±0.064
19348.5M311k$17.8717.8h
2Claude Fable 5
0.2571
±0.020
12312.8M119k$21.6318.7h
3Claude Fable 5.1
0.2429
±0.052
1068.2M74k$5.8617.5h
4Muse Spark 1.2
0.2381
±0.127
1,422478.4M739k$94.6711.7h
5GLM-5.3 Flash
0.2095
±0.118
17522.1M146k$1.3017.3h
6Claude Haiku 5.5
0.2048
±0.084
16844.9M362k$3.1617.9h
7Gemini 4 Argon
0.1952
±0.074
21670.4M254k$81.79*18.3h
8Claude Opus 5
0.1952
±0.112
17226.2M194k$20.4018.6h
9Claude Sonnet 5.5
0.1905
±0.133
319132.6M554k$33.6417.9h
10Kimi K3
0.1762
±0.150
15717.8M148k$17.5819.1h
11GPT-6 Astra
0.1333
±0.093
32994.3M261k$188.9619.6h
12GLM-5.3
0.1286
±0.146
21129.2M180k$15.7719.2h
13Inkling
0.1190
±0.227
1548.7M38k$8.431.6h
14Qwen3.8-Max
0.1095
±0.150
20615.2M271k$5.6719.0h
15DeepSeek V4 Flash Vision Exp
0.1000
±0.143
26541.0M200k$0.8819.9h
16Muse Spark 1.3
0.0905
±0.137
17419.3M168k$21.5319.8h
17Gemini 3.7 Flash
0.0762
±0.106
23841.7M103k$16.5815.3h
18Gemini 3.8 Flash
0.0619
±0.095
25746.6M107k$10.297.6h
19GPT-5.6 Sol
0.0524
±0.104
17429.6M89k$22.0015.2h
20Qwen3.8-Max-0902
0.0190
±0.026
35459.8M786k$21.9415.9h
21Grok 4.6
0.0000
±0.000
19228.0M287k$28.4918.5h
22Grok 4.7
0.0000
±0.000
15026.8M172k$44.7617.9h

*Gemini 4 Argon: Cache hit rate is much lower due to a non-production setting.

Background

Finetuning a 14-billion-parameter model on two T4 GPUs is a memory-bound exercise: the frozen base weights alone dwarf a single card's memory, so any training run has to combine parameter-efficient methods, sharding or offloading, and careful precision choices just to fit, and then still make efficient use of both devices inside a fixed wall-clock budget.

The target capability is exact-answer mathematical reasoning: competition-style problems where only a correctly boxed final answer counts. The agent must decide how to spend a hard 20-hour budget across data selection, training configuration, and validation, and leave behind a loadable adapter no matter when the clock runs out.

Task

The agent must improve the exact-answer mathematical reasoning of the provided frozen Qwen3-14B model by producing an offline-trained PEFT adapter. All work happens under /app/math_adapter, and /app/math_adapter/train.sh must be an executable entrypoint that trains and exports the adapter.

  • The exported adapter/adapter_model.safetensors and its native PEFT configuration must load offline against the read-only base model at /models/qwen3-14b.
  • Only native methods supported by PEFT 0.9 are allowed; rank-based methods may use rank at most 64, and the serialized adapter is capped at 300,000,000 tensor elements and 1.25 GiB of safetensors weights.
  • Frozen-base tensors, saved embeddings or other full modules, modules_to_save, custom auto-mapping, pickle-capable weights, and symlinks are all forbidden in the adapter.
  • A run_summary.json with method_name, devices, total_elapsed_seconds, and checkpoint_path must accompany the adapter, and a usable checkpoint must remain if training ends early.
  • Hard-coding problem-specific answers, caching canned responses, and modifying /models or /app/data are prohibited.

What The Agent Gets

The frozen Qwen3-14B base model at /models/qwen3-14b (materialized from a pinned Hugging Face revision) and visible training data at /app/data/train.jsonl (math reasoning traces from the DAPO-MATH-17k-oss-reasoning dataset), both read-only. The workspace ships a placeholder train.sh and a README documenting the exact submission contract.

The machine is offline (Hugging Face hub access is disabled at the image level); everything needed is preinstalled, including PyTorch with CUDA 12.4, transformers 4.57.6, PEFT 0.9.0, accelerate, bitsandbytes, datasets, and lm-eval. A sandbox-timer CLI reports the remaining wall-clock budget.

Verification

A separate clean-room verifier, running on different hardware than the agent ever sees, first validates the submission against the bounded adapter contract, then loads the adapter onto the integrity-checked frozen base and evaluates it on a sealed, root-only panel of 60 held-out AIME problems from 2025 and 2026, both past the base model's training cutoff.

  • Each problem gets exactly three sampled generations under a frozen contract (bfloat16, temperature 0.7, top-p 0.95, fixed seed, 16,384 max tokens) and is scored best-of-3 on exact-answer match, using boxed-answer normalization adapted from the lm-evaluation-harness.
  • The score is count-calibrated: the measured frozen-base performance (18 of 60 correct) maps to 0 and a perfect 60 of 60 maps to 1.0, with a constant increment per additional correct answer.
  • Model execution happens in unprivileged evaluation workers sharded across GPUs; only the root parent sees the sealed labels, and evidence files are schema-checked before scoring.
  • Contract violations zero the result: an oversized or non-native adapter, smuggled base tensors or full modules, pickle-capable weights, a missing run_summary.json, or an adapter that fails to load offline.

Environment

Base imagenvidia/cuda:12.4.1-devel-ubuntu22.04
Tools availableCUDA, PyTorch, Python 3
Compute8 CPUs · 64 GB RAM
GPU2× T4
Time limit20h

References

  • DAPO-MATH-17k-oss-reasoning (MIT): Visible reasoning traces provided as training data, built over BytedTsinghua-SIA/DAPO-Math-17k (Apache-2.0).
  • Qwen3-14B (Apache-2.0): The frozen base model, materialized from a pinned revision with a recorded file inventory and a deterministic tokenizer-template setting applied at image build.
  • lm-evaluation-harness (MIT): Exact-answer normalization in the verifier is adapted from the Hendrycks-MATH utilities.
  • math-ai/aime25 and math-ai/aime26 (Apache-2.0): The held-out scored records are adapted from pinned revisions of both datasets, with fields and formatting normalized for the verifier; original AIME problem authorship is credited to the Mathematical Association of America.