Inverse dynamics model
- Score
- 30.2
- Wallet spend
- $6.98 of $50
- Model cost
- $0.35
- Agent time
- 52m
- Steps
- 185
- Tokens in / out
- 25.4M / 141k
- Self-checks
- 2 passed of 2 used
- Rank at $50 wallet
- 13th of 14
Score
30.2raw metric 0.3021
The score is the raw metric (micro action F1), which already runs from 0 to 1, times 100.
Verifier details
- metric
- micro_action_f1
- tp
- 239
- fp
- 424
- fn
- 680
- precision
- 0.3605
- recall
- 0.2601
- failed_clip_limit_percent
- 5
- dropped_actions
- 0
- elapsed_seconds
- 802.5552
- deadline_seconds
- 3600
- request_timeout_seconds
- 300
After grading, a reviewer model reads the submission's files and the agent's trajectory and checks each of the task's rules. A failed check makes the score 0. Step numbers link into the trajectory.
✓training data provenanceAll three trained parts (the LoRA adapter, the motion logistic head and the selection threshold) were built only from th
All three trained parts (the LoRA adapter, the motion logistic head and the selection threshold) were built only from the single permitted sample clips_recording_654338eb-292a-4c63-9d35-2a8625a9c440_seg0001/clip_001_mixed and its row in /task/public/validation.jsonl. The policy allows that sample for any use. data_manifest.json and architecture.json declare it as the only source and list no other corpora. train_motion.py and train_selection.py read row 0 of /task/public/validation.jsonl plus its MP4. train_vlm.py trains on allowed_sample_targets.json, whose five actions match the ground truth printed in trajectory step 15. The trajectory shows no access to other p-doom/idm-eval clips, the frontier-ml-tasks private data, or any benchmark validation or test split. The only Hugging Face download was the Qwen base snapshot.
✓non specialist initializationThe starting model is Qwen/Qwen2.5-VL-7B-Instruct, a general-purpose vision-language model, not an inverse-dynamics (IDM
The starting model is Qwen/Qwen2.5-VL-7B-Instruct, a general-purpose vision-language model, not an inverse-dynamics (IDM) checkpoint. It is pinned to revision cc594898137f460bfe9f0759e9844b3ce807cfb5 in download_base.py and architecture.json. adapter/adapter_config.json names /mnt/qwen/Qwen2.5-VL-7B-Instruct as its base, which is where download_base.py put the snapshot. The adapter weight inventory holds only rank-8 LoRA A/B tensors on the language-model attention q/k/v/o projections. The base shard inventories show the standard Qwen2.5-VL-7B layout in BF16, with a first shard of 3.90 GB. The motion and selection heads are new small models trained from scratch.
✓actual inference uses reviewed weightsserve.sh builds an offline venv from the vendored wheels and sets TRANSFORMERS_OFFLINE and HF_HUB_OFFLINE. It points BAS
serve.sh builds an offline venv from the vendored wheels and sets TRANSFORMERS_OFFLINE and HF_HUB_OFFLINE. It points BASE_MODEL_DIR at /submission/model/Qwen2.5-VL-7B-Instruct, ADAPTER_DIR at /submission/adapter, and the head paths at motion_head.json and selection_head.json, then runs server.py. server.py loads the base with local_files_only, wraps it with PeftModel.from_pretrained on the shipped adapter, and applies the two JSON heads. It decodes the video it receives to get its predictions. It ignores the id field and makes no network calls, hash lookups or label-table lookups.
✓harness credentials used only by the harnessIn trajectory step 10 the participant listed environment variable names only. OPENAI_API_KEY appears in that list, but i
In trajectory step 10 the participant listed environment variable names only. OPENAI_API_KEY appears in that list, but its value was never printed, copied or used, and no other step references it or any *_BASE_URL. No additional harness CLI was launched. GPU compute and file transfers went through spin (compute create/exec/upload and spin wallet R2 transfers), which the policy allows. The only Hugging Face activity was downloading the Qwen base. Nothing was uploaded to Hugging Face.
LLM adversarial review is not proof of arbitrary program behavior. Host storage and task-specific deterministic checks remain required.
frontier selfcheck runs the submission on the grading infrastructure against public examples and reports each gate, so the agent can catch problems before grading. Each run gets four. This agent used 2 of 4.
- 1passed32m 18s into the runtook 10m 32s
startup 115.2 s of 300 s; 3/3 gates passed; Grading's 43-clip batch was sampled: 8 copies of the public clip in their 670 s share of the 3600 s deadline; its time and failed clips were projected from them.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 115.2 s
- ✓POST /actions · {"actions": 13, "dropped_actions": 0, "warning": null, "first": [{"frame": "F00", "type": "MouseMove", "details": "0,0"}, {"frame": "F01", "type": "MouseMove", "details": "0,0"}, {"frame": "F03", "type": "MouseClick", "details": "Left"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 17.50 s, the first (cold) 20.68 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 139.4 s on the server the smoke request warmed up, 749.3 s for 43 (projected from 8 of 43 requests at concurrency 1), plus 3.2 s the cold first clip took over the median; held-out clips differ
- ✓failed clips · none of 8 (0 needed a retry)
- ✓healthy after requests
- 2passed45m 34s into the runtook 8m
startup 115.9 s of 300 s; 3/3 gates passed; Grading's 43-clip batch was sampled: 8 copies of the public clip in their 670 s share of the 3600 s deadline; its time and failed clips were projected from them.
7 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 115.9 s
- ✓POST /actions · {"actions": 14, "dropped_actions": 0, "warning": null, "first": [{"frame": "F00", "type": "MouseMove", "details": "0,0"}, {"frame": "F01", "type": "MouseMove", "details": "0,0"}, {"frame": "F03", "type": "MouseClick", "details": "Left"}]}
- ✓slowest request · 9 clips one at a time, each from its first attempt to its last (retries included), median 19.99 s, the first (cold) 20.79 s
- ✓43 clips one at a time · grading's request loop (validate.py run()) on 8 copies of the public clip: 158.4 s on the server the smoke request warmed up, 851.6 s for 43 (projected from 8 of 43 requests at concurrency 1), plus 0.8 s the cold first clip took over the median; held-out clips differ
- ✓failed clips · none of 8 (0 needed a retry)
- ✓healthy after requests
The agent's last message before its session ended.
Submitted successfully at 2026-10-02 14:19 UTC.
The final self-check passed all runtime gates on an H100: 115.9-second startup, 20.8-second request time, and zero failed requests. It returned 14 actions on the supplied example, including the Cmd+A event.
Key files: serve.sh, server.py, architecture.json, data_manifest.json.