Ternary quantization
- Score
- 7.7
- Wallet spend
- $9.83 of $10
- Model cost
- $46.91
- Agent time
- 3h 20m
- Steps
- 148
- Tokens in / out
- 36.4M / 227k
- Self-checks
- 1 passed of 1 used
- Rank at $10 wallet
- 4th of 14
Score
7.7raw metric 0.1161
The raw metric (accuracy on GPQA Diamond, MATH-500, LiveCodeBench v6 and MMLU-Pro) is rescaled so that chance on each benchmark scores 0 and the original bf16 Qwen3.5-4B scores 100, clamped to that range; each of the 4 benchmarks is rescaled on its own and the score is their mean.
Benchmarks
| Benchmark | Raw | Floor | Ceiling | Normalized |
|---|---|---|---|---|
| gpqa_diamond | 0.116 | 0.250 | 0.571 | 0.0 |
| math_500 | 0.198 | 0 | 0.866 | 22.9 |
| livecodebench_v6 | 0.0237 | 0 | 0.425 | 5.6 |
| mmlu_pro | 0.126 | 0.111 | 0.716 | 2.5 |
Verifier details
- metric
- four_benchmark_mean
- suite
- gpqa-math500-lcbv6-mmlupro-v6
- harmonic_mean
- 0.0627
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 qwen startcode/setup_gpu.sh downloads the base model with `hf download Qwen/Qwen3.5-4B --revision 851bf6e806efd8d0a36b00ddf55e13cc
code/setup_gpu.sh downloads the base model with `hf download Qwen/Qwen3.5-4B --revision 851bf6e806efd8d0a36b00ddf55e13ccb7b8cd0a`, which is the pinned revision. The task's STARTING_ARTIFACT (trajectory#3) names the same repo and revision. code/run_quant.py loads that full-precision model, deep-copies its layers to build the student, initializes the ternary weights with GPTQ from those weights, and uses the same full-precision model as the KD teacher. That makes this post-training quantization from the pinned main LM. The run_quant log records base_revision 851bf6e… and 'loading fp model'. The manifest keeps model.visual.* and mtp.* in float, and the trusted audit lists no omitted or unreferenced parameters.
✓text only inferenceserve.sh starts vLLM with `--limit-mm-per-prompt '{"image":0,"video":0}'` and `--skip-mm-profiling`. It passes no specul
serve.sh starts vLLM with `--limit-mm-per-prompt '{"image":0,"video":0}'` and `--skip-mm-profiling`. It passes no speculative or MTP configuration, and VLLM_EXTRA_ARGS is empty by default. code/proxy.py only sends text prompts to the local /v1/completions endpoint and has no image handling. So only the main autoregressive LM serves requests. The vision and MTP weights are stored but take no part.
✓no public benchmark eval trainingThe training and calibration corpus is declared in code/prep_data.py and training_evidence/data_manifest.json. It comes
The training and calibration corpus is declared in code/prep_data.py and training_evidence/data_manifest.json. It comes from the train splits of OpenThoughts-114k, OpenR1-Math-220k, nvidia/OpenCodeReasoning, fineweb-edu sample-10BT and tulu-3-sft-mixture. None of these is a benchmark test or validation split. The prep run is recorded at trajectory#19, and fetch_data.py only retrieves the prepared seqs_2048.npy. The GPQA and LCB dev files were used only to evaluate the served endpoint (validate.py runs, trajectory steps 85–112). They were never used for training, distillation or calibration. Choosing decoding defaults (thinking fraction, repetition penalty) from dev smoke tests is not training or calibration under this check.
✓actual inference uses reviewed weightsserve.sh runs code/dequant.py, which reads quantization_manifest.json. Every manifest entry points to weights/model-0000
serve.sh runs code/dequant.py, which reads quantization_manifest.json. Every manifest entry points to weights/model-00001-of-00001.safetensors, which is the storage the trusted audit covered. dequant.py writes a bf16 checkpoint to /tmp/model, copying config and tokenizer from SUB/weights. vLLM is then started with `--model /tmp/model`, and the proxy uses the same MODEL_DIR. Startup runs offline (HF_HUB_OFFLINE=1). There is no alternate model or extra weight source.
✓ternary executionFor packed_2bit and literal tensors, dequant.py decodes the 2-bit codes to {-1,0,+1} and computes code×scale per group o
For packed_2bit and literal tensors, dequant.py decodes the 2-bit codes to {-1,0,+1} and computes code×scale per group of 32 (`codes.reshape(o,-1,g)*scale.unsqueeze(-1)`) before casting to bf16. Float tensors (embedding/tied head, norms, the excluded GDN and attention parameters, visual and MTP) are copied unchanged. The trusted ternary audit passed: ternary_fraction 0.9574, parameter cap passed, no unreferenced or omitted parameters, and audited storage matching the served safetensors.
✓harness credentials used only by the harnessSearching the trajectory found no use of harness API keys, harness base URLs or extra harness CLIs in the participant's
Searching the trajectory found no use of harness API keys, harness base URLs or extra harness CLIs in the participant's commands. The participant used the spin CLI and a spin session.json for compute and storage (trajectory#55), which the policy allows. HF access went through the permitted HF_TOKEN download path.
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 1 of 4.
- 1passed3h 17m into the runtook 5m 1s
startup 123.8 s of 300 s; 1/1 gates passed; One wave of 16 concurrent public requests stood for the suite's 3,153 graded ones at that concurrency; MATH-500 and MMLU-Pro are held out.
9 gates
- ✓review prerequisites
- ✓ternary fraction · 3,523,215,360 of 3,680,152,576 audited parameters (text-model weights outside the input embedding and output head, and their scales) are ternary codes: 0.957356, which must exceed 0.95
- ✓stored parameters · 3,680,152,576 stored (codes, scales, retained floats and 0 in tensors outside the manifest, uint8/int8 counting four each) against 1.1 x 3,570,052,096 original parameters
- ✓weight audit · inspect_ternary passed, as verify requires before scoring
- ✓startup · GET /health answered 200 after 123.8 s
- ✓GPQA request as graded · {"finish_reason": "stop", "answer": null, "note": "no answer letter found (ANSWER: X on its own line): grading scores it wrong", "content_characters": 1664, "reasoning_characters": 2117, "content_end": "**not** associated with spontaneous symmetry.\n\n### Final Answer\nThe correct cho ...[clipped]
- ✓slowest of 16 concurrent requests · 16 public requests at once (8 GPQA, 8 hard LiveCodeBench) as graded (max_tokens 4096, temperature 0, 300 s each): slowest 25.4 s, median 24.9 s; 8 stopped at max_tokens, 0 timed out. Grading sends every benchmark 16 at a time, scores a request over 300 s or still failing as wrong with no limit on how many; held-out requests may run longer.
- ✓concurrent requests answered · 16 well-formed replies
- ✓healthy after requests
The agent's last message before its session ended.
Everything is in place and verified. Submitting now.