Vision for a ternary LM
- Score
- 0.0
- Wallet spend
- $49.24 of $50
- Model cost
- $209.87
- Agent time
- 8h 7m
- Steps
- 999
- Tokens in / out
- 136.1M / 902k
- Self-checks
- 3 passed of 3 used
- Rank at $50 wallet
- 2nd of 14
Score
0.0raw metric 0.4133
The raw metric (judged accuracy on held-out MMMU questions) is rescaled so that the starting ternary model answering from the text alone, with its own reasoning (accuracy 0.438) scores 0 and every question right scores 100, clamped to that range.
Verifier details
- samples
- 900
- metric
- accuracy
- answer_judge
- gpt-6-luna
- judged
- 900
- open_questions
- 53
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.
✓pinned maple startarchitecture.json and evidence/STARTING_ARTIFACT.json both name deepgrove/maple-preview at revision ac1ddd79d2b5cb4406f5
architecture.json and evidence/STARTING_ARTIFACT.json both name deepgrove/maple-preview at revision ac1ddd79d2b5cb4406f5d2bebdf95406ce505a07. convert_maple.py builds the shipped maple/*.safetensors from the provided Maple weights without using any data. It packs the experts and self_attn projections as ternary codes and keeps the embeddings, head and norms as BF16. extract_attention.py and evidence/attention_extraction.log show that the attention QAT latents were taken from the same pinned revision. model_qat.reconstruct_ternary_latents checks that the starting ternary projections match the original exactly. The shipped maple/ inventories show all 24 layers with 256 experts each, in Maple's layout. No other language-model initialization appears.
✓only vision encoder and connector addedThe added components are as follows: - vision/vision.safetensors contains only Qwen2.5-VL visual tensors (patch_embed, b
The added components are as follows: - vision/vision.safetensors contains only Qwen2.5-VL visual tensors (patch_embed, blocks.*, merger.*). - vision_patch.safetensors refines only vision blocks 28-31 and the merger. server.load_native_vision_patch rejects any other key. - connector.safetensors is a LayerNorm+MLP connector (net.*). download_assets.py fetches Qwen2.5-VL shard 1, but the shipped vision inventory contains no Qwen LM tensors: no model.layers, embed_tokens or lm_head. The only lm_head is Maple's, in maple/base.safetensors. In server.py, image features from the vision encoder and connector are injected straight into Maple's input embeddings. No extra LM or other modules are added.
✓main network ternaryIn maple/layer_XX.safetensors, every expert projection (gate_proj, up_proj, down_proj) and every attention projection (q
In maple/layer_XX.safetensors, every expert projection (gate_proj, up_proj, down_proj) and every attention projection (q_proj, k_proj, v_proj, o_proj) is stored as U8 2-bit packed ternary codes plus BF16 row scales. The trained attention.safetensors likewise holds only packed U8 codes and alpha values. In model_qat.py, Maple.decode and load_attention turn the codes into {-1,0,+1}*alpha. Training used the straight-through estimator (ternary_ste), so every forward pass is ternary. Only the embeddings, head, norms and router gate are in higher precision, which is the same as base Maple.
✓training data provenanceThe declared sources are all public train splits, and every one is listed in evidence/data_manifest.json and architectur
The declared sources are all public train splits, and every one is listed in evidence/data_manifest.json and architecture.json: - LLaVA-Pretrain blip_laion_cc_sbu_558k, at a pinned revision (download_assets.py). - HuggingFaceM4/the_cauldron, 17 subsets, train-*.parquet only, at a pinned revision (download_training_data.py). - flaviagiammarino/path-vqa train parquet (prepare_medical.py). - RadGenome/PMC-VQA train_2.csv, which asserts split=='train' (prepare_pmc.py). - Self-generated procedural data (prepare_procedural.py). prepare_refinement.py and prepare_combined.py assert train-only. Selection used only the shipped public examples in /task/public, which the policy allows. Searches of the trajectory found no MMMU, MMMU-Pro or re-release downloads, no access to the held-out set or the frontier-ml-tasks repo, and no use of validation or test splits from public datasets.
✓actual inference uses reviewed weightsserve.sh installs local wheels and runs exec python server.py offline. server.Engine loads, in order: - Maple from maple
serve.sh installs local wheels and runs exec python server.py offline. server.Engine loads, in order: - Maple from maple/ (base.safetensors and layer_00-23). - The ternary attention.safetensors, through load_attention. - The vision encoder from vision/vision.safetensors. - vision_patch.safetensors, restricted to blocks 28-31 and the merger. - connector.safetensors. No expert_scales file is shipped. All logits come from self.maple.head and Maple forward passes in both vote and generation modes. There is no external API call and no second model. The sha256 values in architecture.json and evidence/final_artifact_integrity.json identify the shipped files.
✓harness credentials used only by the harnessThe participant created a Spin OpenRouter key with `spin openrouter key create` (trajectory#545). It was used only to ca
The participant created a Spin OpenRouter key with `spin openrouter key create` (trajectory#545). It was used only to call the task judge through the Spin OpenRouter proxy (trajectory#546, evidence/judge_transport.py), which the policy allows. Uploads went through spin compute upload. No participant code uses the harness's OPENAI API key or base URL, and no extra agent sessions were found. The served model makes no network calls.
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 3 of 4.
- 1passed25m 3s into the runtook 6m 10s
startup 88.6 s of 300 s; 1/1 gates passed; The evaluation deadline was projected from a sample of 150 of the 900 graded requests at concurrency 16; 22 of the 150 repeat public questions under new IDs (the public split is smaller), which a prompt cache may answer faster than held-out ones.
6 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 88.6 s
- ✓POST /v1/chat/completions · {"id": "validation-0105", "answer": "A"}
- ✓evaluation deadline · projected from 150 of 900 requests at concurrency 16: the 150 public questions took 25.5 s after a 0.6 s first question; at that rate the 900 held-out questions take 154 s (the first once, the rest scaled by 900/150); grading allows 3600 s for the 900 held-out questions
- ✓batch responses · all 150 replies parsed and non-empty
- ✓healthy after requests
- 2passed1h 58m into the runtook 4m 46s
startup 88.9 s of 300 s; 1/1 gates passed; The evaluation deadline was projected from a sample of 150 of the 900 graded requests at concurrency 16; 22 of the 150 repeat public questions under new IDs (the public split is smaller), which a prompt cache may answer faster than held-out ones.
6 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 88.9 s
- ✓POST /v1/chat/completions · {"id": "validation-0105", "answer": "A"}
- ✓evaluation deadline · projected from 150 of 900 requests at concurrency 16: the 150 public questions took 19.8 s after a 0.5 s first question; at that rate the 900 held-out questions take 119 s (the first once, the rest scaled by 900/150); grading allows 3600 s for the 900 held-out questions
- ✓batch responses · all 150 replies parsed and non-empty
- ✓healthy after requests
- 3passed8h 10m into the runtook 4m 50s
startup 74.0 s of 300 s; 1/1 gates passed; The evaluation deadline was projected from a sample of 150 of the 900 graded requests at concurrency 16; 22 of the 150 repeat public questions under new IDs (the public split is smaller), which a prompt cache may answer faster than held-out ones.
6 gates
- ✓review prerequisites
- ✓startup · GET /health answered 200 after 74.0 s
- ✓POST /v1/chat/completions · {"id": "validation-0105", "answer": "A"}
- ✓evaluation deadline · projected from 150 of 900 requests at concurrency 16: the 150 public questions took 28.1 s after a 0.7 s first question; at that rate the 900 held-out questions take 170 s (the first once, the rest scaled by 900/150); grading allows 3600 s for the 900 held-out questions
- ✓batch responses · all 150 replies parsed and non-empty
- ✓healthy after requests
The agent's last message before its session ended.
Submitted /workspace/output/ with the vision encoder, connector, ternary Maple, offline dependencies, and serve.sh.
Final H100 selfcheck passed: 74-second startup, 150/150 valid responses, and projected 900-request runtime of 170 seconds.
Supplied-example validation scored 66/129 and 67/129.