| # | Model | Score | Steps | In tok | Out tok | Avg cost | Avg time |
|---|---|---|---|---|---|---|---|
| 1 | Claude Fable 5.1 | 0.7344 ±0.226 | 154 | 21.9M | 141k | $14.36 | 16.4h |
| 2 | GLM-5.3 | 0.4388 ±0.320 | 257 | 49.8M | 206k | $17.73 | 19.4h |
| 3 | Kimi K3 | 0.2244 ±0.160 | 179 | 26.6M | 169k | $12.32 | 19.7h |
| 4 | Grok 4.6 | 0.1428 ±0.098 | 202 | 33.5M | 318k | $34.65 | 18.7h |
| 5 | Qwen3.8-Max | 0.0936 ±0.075 | 329 | 49.2M | 357k | $15.24 | 19.4h |
| 6 | GPT-5.6 | 0.0460 ±0.029 | 237 | 42.3M | 110k | $42.99 | 16.2h |
| 7 | DeepSeek V4 Flash Exp | 0.0456 ±0.049 | 342 | 71.3M | 237k | $1.36 | 19.8h |
| 8 | Gemini 3.7 Flash | 0.0356 ±0.017 | 260 | 69.3M | 124k | $24.39 | 12.4h |
| 9 | Muse Spark 1.2 | 0.0136 ±0.012 | 650 | 302.1M | 357k | $53.70 | 4.7h |
| 10 | Inkling | 0.0016 ±0.004 | 107 | 3.8M | 21k | $3.73 | 0.5h |
The Frog Placement Game is a Queens-style constraint puzzle: an N×N grid of N colors, on which exactly one frog must be placed in every row, every column, and every color, with no two frogs adjacent — including diagonally. Boards range from N=6 (easy) to N=13 (expert), and the game is played through a tool-call interface: the board is not included in the prompt, so the model must call get_state to discover the layout, then place, check, and revise frogs one call at a time within a 200-call budget.
Post-training a small model to do this is hard because nothing is given: no training boards are provided, so the agent must generate its own solvable boards across every difficulty tier, build a multi-turn tool-use dataset in exactly the format the verifier replays, and execute the entire fine-tuning pipeline on a single local GPU within the time budget — while producing a policy that generalizes to board sizes it may have undertrained on.
Post-train Qwen/Qwen3-8B to solve unseen Frog Placement Game boards through iterative tool use, generalizing across board sizes N=6 through N=13. The agent implements the training pipeline in /app/train.py, executes it on the local GPU, and leaves a trained adapter in place.
/app/checkpoint/adapter/ (an adapter_config.json plus adapter_model.safetensors) that targets Qwen/Qwen3-8B and has rank at most 256./app/prepare.py— the immutable game engine, tool schemas, and shared prompt builder — must not be modified; training must use its build_system_prompt() and USER_MESSAGE so the format matches the verifier exactly.A self-contained workspace at /app: prepare.py (game engine, tool interface, and eval harness), train.py (the editable training entry point), infer.py(a vLLM smoke test that verifies an adapter loads and generates), and a local copy of the Qwen3-8B tokenizer. The Qwen3-8B base weights are baked into the image's Hugging Face cache, and the pinned stack — Axolotl 0.18.0 for LoRA fine-tuning, vLLM 0.23.0 for local inference, PyTorch with CUDA, and PEFT — is preinstalled. Training and inference run on a dedicated A100-80GB GPU. The machine is offline; a sandbox-timer CLI reports the remaining time budget.
A clean-room verifier, running as root in a separate container, generates its own 500 hidden test boards (125 per difficulty tier), loads a pristine Qwen3-8B plus the submitted LoRA adapter in local vLLM, and replays every board through the same prompt and tool interface defined in prepare.py, with the same 200-tool-call budget. The reward is the solve rate over the fixed 500-board denominator; boards left unevaluated when the scoring deadline expires count as unsolved.
/app/prepare.pyis checked against a SHA-256 hash pin of the trusted baked copy — any modification is a contract violation that zeroes the result.adapter_model.bin), no symlinks, no DoRA, modules_to_save, or per-module rank/alpha patterns, at most 1000 files and 8 GiB total.Qwen/Qwen3-8Bor a LoRA rank outside 1–256 zeroes the result; a missing or invalid adapter cannot be evaluated and scores zero.train.py, the generated boards, and the checkpoint are reported as diagnostics but are excluded from the reward.| Base image | nvidia/cuda:12.5.1-devel-ubuntu24.04 |
| Tools available | CUDA, PyTorch, C/C++ toolchain, Python 3 |
| Compute | 8 CPUs · 64 GB RAM |
| GPU | 1× A100-80GB |
| Time limit | 20h |
This task is an improved revision of FrogsGame Post-Training from FrontierSWE V1.
TINKER_API_KEY, no local GPU) to a fully offline local pipeline: Axolotl on a dedicated A100-80GB with the Qwen3-8B weights baked into the image.results.json to a strictly validated unmerged PEFT LoRA adapter at /app/checkpoint/adapter/ (safetensors only, rank at most 256, LoRA-only tensors, no DoRA or modules_to_save, at most 8 GiB).prepare.py is SHA-256 hash-pinned against a trusted baked copy, verifier assets are root-locked before scoring, and the adapter is audited for symlinks, non-LoRA tensors, and size caps./app/.timer/ files to the sandbox-timer CLI, and both agent and verifier images are pinned by digest under the new harbor schema.infer.py smoke test.nvidia/cuda:12.5.1-devel-ubuntu24.04 supplies the CUDA toolkit for building GPU extensions; the CUDA image Dockerfiles are BSD-3-Clause and the OS layer is Ubuntu 24.04 under Canonical terms.transformers/tokenizers/huggingface_hub (Apache-2.0), peft (Apache-2.0), the openai client (Apache-2.0), and NumPy (BSD), installed from PyPI at image build.