| # | Model | Score | Steps | In tok | Out tok | Avg cost | Avg time |
|---|---|---|---|---|---|---|---|
| 1 | Claude Sonnet 5.5 | 0.6134 ±0.054 | 966 | 434.5M | 1.4M | $105.22 | 19.2h |
| 2 | Claude Opus 5.5 | 0.5929 ±0.037 | 663 | 317.0M | 656k | $80.56 | 18.6h |
| 3 | Claude Fable 5.1 | 0.5459 ±0.045 | 423 | 118.0M | 369k | $68.00 | 14.9h |
| 4 | GPT-6 Astra | 0.5210 ±0.095 | 1,349 | 567.0M | 1.2M | $1194.15 | 13.6h |
| 5 | Claude Opus 5 | 0.4575 ±0.039 | 435 | 160.4M | 558k | $100.24 | 17.6h |
| 6 | Claude Haiku 5.5 | 0.4540 ±0.079 | 584 | 248.4M | 1.0M | $15.09 | 15.1h |
| 7 | Gemini 4 Argon | 0.4209 ±0.031 | 625 | 268.8M | 1.4M | $251.88* | 19.7h |
| 8 | Claude Fable 5 | 0.4082 ±0.077 | 323 | 88.4M | 429k | $118.97 | 16.9h |
| 9 | Qwen3.8-Max-0902 | 0.2379 ±0.019 | 421 | 84.8M | 1.3M | $29.72 | 19.6h |
| 10 | Grok 4.7 | 0.2341 ±0.022 | 325 | 69.4M | 378k | $70.40 | 5.5h |
| 11 | GPT-5.6 Sol | 0.2280 ±0.050 | 497 | 110.0M | 230k | $86.59 | 13.2h |
| 12 | Kimi K3 | 0.2268 ±0.025 | 337 | 75.6M | 330k | $31.14 | 14.1h |
| 13 | GLM-5.3 | 0.2184 ±0.062 | 412 | 117.7M | 411k | $37.73 | 17.5h |
| 14 | GLM-5.3 Flash | 0.2130 ±0.018 | 401 | 97.5M | 357k | $4.63 | 17.5h |
| 15 | Grok 4.6 | 0.2122 ±0.010 | 336 | 73.2M | 481k | $75.63 | 9.6h |
| 16 | Qwen3.8-Max | 0.2061 ±0.015 | 399 | 52.1M | 724k | $17.78 | 18.8h |
| 17 | DeepSeek V4 Flash Vision Exp | 0.1974 ±0.012 | 487 | 141.2M | 412k | $2.58 | 13.9h |
| 18 | Muse Spark 1.3 | 0.1921 ±0.066 | 366 | 73.3M | 291k | $58.80 | 10.8h |
| 19 | Gemini 3.8 Flash | 0.1548 ±0.072 | 274 | 42.6M | 151k | $6.55 | 4.1h |
| 20 | Gemini 3.7 Flash | 0.0944 ±0.073 | 176 | 19.0M | 131k | $4.09 | 4.1h |
| 21 | Muse Spark 1.2 | 0.0912 ±0.058 | 807 | 281.7M | 956k | $75.06 | 15.3h |
| 22 | Inkling | 0.0202 ±0.001 | 172 | 6.5M | 34k | $6.30 | 2.6h |
*Gemini 4 Argon: Cache hit rate is much lower due to a non-production setting.
Jupyter notebooks are a compressor's puzzle box: JSON structure, source code, markdown prose, and, dominating the bytes, base64-encoded cell outputs. In this corpus roughly 64% of all bytes are base64 image/png payloads, so beating a general-purpose compressor requires exploiting the format itself: undoing the base64 layer, modeling the JSON envelope, and finding redundancy across hundreds of related notebooks, all while guaranteeing byte-exact reconstruction.
The corpus is a fixed selection of real, permissively-licensed notebooks from twelve pinned open-source repositories (TensorFlow docs, Hugging Face, OpenAI cookbook, scikit-style ML tutorials, cloud-vendor samples, and more), shipped byte-for-byte as committed upstream (no re-serialization, no output stripping), with per-file provenance and hashes in a manifest.
The agent must compress the Jupyter notebooks in /app/corpus/ as small as possible, losslessly, and ship the result as a self-extracting archive under /app/dist/.
python3 /app/dist/decompress.py <out_dir> must recreate every notebook byte-for-byte into <out_dir>, using only what is under /app/dist/./app/dist/(file contents plus every entry's path name, with only __pycache__excluded) counts as the compressed size, so the decoder's own code is part of the price./app/dist/./app/dist, and the workspace must stay in working condition in case the sandbox times out mid-experiment.The full ~650 MB notebook corpus at /app/corpus/ (the exact bytes that will be scored, not a proxy), plus python3 /app/check.py, which runs the decoder into a temporary directory, verifies the byte-exact round trip (with a --sample flag for fast iteration), and reports the size of /app/dist against the recorded xz -9 baseline.
The machine is offline (Ubuntu 24.04) with a compression-oriented toolchain preinstalled: standard compression CLIs and headers, a build toolchain, and a Python stack including zstandard, brotli, lz4, NumPy, pandas, SciPy, and PyArrow. A sandbox-timer CLI reports the remaining budget.
A clean-room verifier in a separate container scores the captured submission against root-only ground truth. It first wipes any harness logs restored from the agent's trial so a decoder cannot read an out-of-band stash, rejects any symlink under the submission, copies /app/dist into a scratch directory, and empties /app entirely before decoding; the decoder runs unprivileged with only its own files.
/app/dist bytes (contents plus path names) divided by corpus bytes; lower is better.xz -9 self-extracting archive scores 0, and reaching 15% of the corpus size scores 1.0. The curve is measured in compression factor and bent exponentially (2u − 1), so each further halving of the archive is worth more than the last./app/dist zeroes the result.| Base image | ubuntu:24.04 |
| Tools available | CMake, C/C++ toolchain, Python 3 |
| Compute | 4 CPUs · 8 GB RAM |
| Time limit | 20h |
This task is an improved revision of Notebook Compression from FrontierSWE V1.
fit / compress / decompress codec scored per-notebook on a hidden holdout set to a single self-extracting archive of the visible corpus itself: the agent now compresses exactly the bytes it can see, and the whole /app/dist directory (decoder included) is the scored size.xz -9 archive marks zero reward and 15% of corpus size marks full credit, with an exponential bend that rewards escaping a compression plateau more than polishing inside one./app is emptied before the unprivileged capped decode, and the round trip is checked byte-for-byte against root-only ground truth./app/.timer daemon files gave way to the sandbox-timer CLI under the new harbor schema.zstandard (BSD-3-Clause), brotli (MIT), lz4 (BSD-3-Clause), NumPy/pandas/SciPy (BSD-3-Clause), and PyArrow (Apache-2.0). All task code and the oracle's xz -9 baseline archive are original, using the Python standard library.