OCR latent compression
- Score
- 43.7
- Wallet spend
- $34.90 of $50
- Model cost
- $11.90
- Agent time
- 7h 10m
- Steps
- 333
- Tokens in / out
- 38.2M / 442k
- Self-checks
- 3 passed of 4 used
- Rank at $50 wallet
- 5th of 14
Score
43.7raw metric 0.3906
The raw metric (word-level edit similarity of the decoded text) is rescaled so that empty text scores 0 and unmodified DeepSeek-OCR reading the page image (0.893) scores 100, clamped to that range.
Verifier details
- metric
- page_word_similarity
- samples
- 400
- bit_budget
- 16384
- codebook_size
- 256
- diagnostic_word_f1
- 0.4320
- diagnostic_char_similarity
- 0.5100
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.
✓learned discrete visual codesserver.py /encode runs visual_model.image_tensor and visual_features (frozen SAM, CLIP and projector from the declared D
server.py /encode runs visual_model.image_tensor and visual_features (frozen SAM, CLIP and projector from the declared DeepSeek-OCR base), then quantizer.encode. quantizer.py SharedVisualQuantizer applies learned analysis projections and takes a nearest-neighbor argmin over learned codebooks. There are 20 local product codebooks over 100 tokens plus 48 global codebooks, each with 256 entries, for 2048 codes of 8 bits. The quantizer.safetensors inventory shapes match this, and so does quantizer.safetensors.json. train_text.py trains the codebooks with CE, reconstruction and VQ losses, so the codes are learned and discrete.
✓decoder generates text from codes onlyserver.py /decode accepts only a list of exactly 2048 ints in [0,256) with codebook_size 256. It calls quantizer.decode
server.py /decode accepts only a list of exactly 2048 ints in [0,256) with codebook_size 256. It calls quantizer.decode (codebook lookup plus synthesis MLP), then FastDecoder.prefill_selected with a fixed prompt prefix (image_newline, view_seperator, 'Free OCR.'), then greedy argmax generation. No image, cache or side channel reaches decode. clear_slots zeroes the KV, position and token state per request, and the late trajectory change (step 308) made prefill per-row. ocr_text.py is only a scoring metric and is not in the serving path.
✓served weights are the trained modelserve.sh execs server.py. server.py loads base/model-00001-of-000001.safetensors through visual_model.load_model with a
serve.sh execs server.py. server.py loads base/model-00001-of-000001.safetensors through visual_model.load_model with a strict key check, merges adapters.safetensors (rank-16 LoRA q/k/v/o, matching train_text.py LoRALinear), and loads quantizer.safetensors with the config from quantizer.safetensors.json. package_checkpoint.py copies the quantizer and adapters of the selected checkpoint final_checkpoint/step_040000 (from train_final.sh) and records sha256 values in checkpoint_provenance.json. The trajectory shows packaging (step 231), extraction into the output directory (step 233) and a hash check reporting that all frozen weights match (step 235). The later edits in steps 308-310 touched only runtime code, not weights.
✓harness credentials used only by the harnessTrajectory searches for API keys, base URLs, agent CLIs, printenv and LLM endpoints (Anthropic, OpenAI, OpenRouter) foun
Trajectory searches for API keys, base URLs, agent CLIs, printenv and LLM endpoints (Anthropic, OpenAI, OpenRouter) found no use of harness credentials by the participant's code or commands. The network activity found was a Hugging Face download at the declared revision, Spin compute transfer sessions and S3 uploads using Spin transfer credentials (step 57), and curl calls to localhost health checks only.
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 4 of 4.
- 1failed25m 22s into the runtook 12m 22s
startup 16.2 s of 300 s; 1/2 gates passed; failed decode throughput: Batch exceeded 420s deadline; score is zero (341 of 420 requests answered in 420.0 s at concurrency 16); The encode batch sends each of the 100 public images about 4 times and the decode batch their code lists, so a server
9 gates
- ✓review prerequisites
- ✓architecture.json
- ✓startup · GET /health answered 200 after 16.2 s
- ✓encode throughput · 400 requests at concurrency 16: 6.7 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 256, "codes": [123, 123, 156, 123, 139, 107, 123, 232, 104, 172, 169, 187, 94, 224, 160, 123, 123, 194, 128, 136, 193, 243, 94, 33, 107, 76, 207, 23, 178, 26, 162, 187, 139, 243, 128, 238, 125, 208, 112, 207, 169, 1, 6, 204, 12, 85, 20, 176, 169, 38, 143, 230, 74, 25 ...[clipped]
- ✓bit budget · 2000 codes x 8 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 17.7 s
- ✗decode throughput · Batch exceeded 420s deadline; score is zero (341 of 420 requests answered in 420.0 s at concurrency 16)
- 2passed1h 17m into the runtook 9m 46s
startup 17.2 s of 300 s; 2/2 gates passed; The encode batch sends each of the 100 public images about 4 times and the decode batch their code lists, so a server that caches repeated images or code lists measures faster here than on grading's distinct held-out images.
11 gates
- ✓review prerequisites
- ✓architecture.json
- ✓startup · GET /health answered 200 after 17.2 s
- ✓encode throughput · 400 requests at concurrency 16: 8.0 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 256, "codes": [43, 210, 247, 73, 13, 178, 55, 52, 105, 49, 165, 52, 149, 246, 129, 31, 44, 210, 72, 250, 195, 87, 175, 164, 148, 221, 60, 2, 112, 174, 158, 116, 57, 179, 158, 65, 69, 13, 13, 134, 142, 65, 16, 130, 134, 251, 18, 195, 195, 33, 167, 37, 153, 217, 195, 5 ...[clipped]
- ✓bit budget · 2000 codes x 8 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 16.8 s
- ✓decode throughput · 420 requests at concurrency 16: 204.4 s of a 420 s deadline, timed from a fresh instance's readiness as in grading; 2 code lists decoded to different texts when sent more than once (decoding must be deterministic; grading keeps a repeated code list's lower score)
- ✓POST /decode · "Emotion-driven Facial Generation Using Geometric Constraints for Natural and Realistic Talking Faces\n\nMahdi Gjini, Yuli Boronat, Alexander Bernol\u00e1, Jakob Shamburgm, Yev Jun\nNiu, Lisa Milking\nJul 2, 2026\n\nAbstract\n\nGenerating talking faces that respond naturally to audio ...[clipped]
- ✓healthy after requests
- 3passed5h 53m into the runtook 8m 51s
startup 20.0 s of 300 s; 2/2 gates passed; The encode batch sends each of the 100 public images about 4 times and the decode batch their code lists, so a server that caches repeated images or code lists measures faster here than on grading's distinct held-out images.
11 gates
- ✓review prerequisites
- ✓architecture.json
- ✓startup · GET /health answered 200 after 20.0 s
- ✓encode throughput · 400 requests at concurrency 16: 34.7 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 256, "codes": [59, 45, 30, 33, 232, 232, 174, 136, 30, 157, 248, 174, 180, 3, 119, 209, 77, 200, 105, 242, 207, 18, 248, 44, 149, 16, 104, 27, 30, 44, 152, 106, 14, 95, 44, 167, 164, 225, 16, 75, 92, 16, 16, 105, 232, 76, 131, 16, 252, 209, 152, 106, 27, 48, 16, 16, ...[clipped]
- ✓bit budget · 2048 codes x 8 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 21.3 s
- ✓decode throughput · 420 requests at concurrency 16: 213.1 s of a 420 s deadline, timed from a fresh instance's readiness as in grading; 1 code lists decoded to different texts when sent more than once (decoding must be deterministic; grading keeps a repeated code list's lower score)
- ✓POST /decode · "Emotion-driven Facial Generation Using Geometric Constraints for Natural and Realistic Talking Faces\n\nMahdi Gjini, Youla Boronat, Alexander Penchala, Jacob Shahrampour, Yen-Ju Niu, Lisa Milling\nJul 2, 2026\n\nAbstract\n\nGenerating talking faces that respond naturally to audio inp ...[clipped]
- ✓healthy after requests
- 4passed6h 35m into the runtook 7m 27s
startup 27.3 s of 300 s; 2/2 gates passed; The encode batch sends each of the 100 public images about 4 times and the decode batch their code lists, so a server that caches repeated images or code lists measures faster here than on grading's distinct held-out images.
11 gates
- ✓review prerequisites
- ✓architecture.json
- ✓startup · GET /health answered 200 after 27.3 s
- ✓encode throughput · 400 requests at concurrency 16: 10.6 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 256, "codes": [59, 45, 30, 33, 232, 232, 174, 136, 30, 157, 248, 174, 180, 3, 119, 209, 77, 200, 105, 242, 207, 18, 248, 44, 149, 16, 104, 27, 30, 44, 152, 106, 14, 95, 44, 167, 164, 225, 16, 75, 92, 16, 16, 105, 232, 76, 131, 16, 252, 209, 152, 106, 27, 48, 16, 16, ...[clipped]
- ✓bit budget · 2048 codes x 8 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 24.8 s
- ✓decode throughput · 420 requests at concurrency 16: 218.2 s of a 420 s deadline, timed from a fresh instance's readiness as in grading; 2 code lists decoded to different texts when sent more than once (decoding must be deterministic; grading keeps a repeated code list's lower score)
- ✓POST /decode · "Emotion-driven Facial Generation Using Geometric Constraints for Natural and Realistic Talking Faces\n\nMahdi Gjini, Youla Boronat, Alexander Penchala, Jacob Shahrampour, Yen-Ju Niu, Lisa Milling\nJul 2, 2026\n\nAbstract\n\nGenerating talking faces that respond naturally to audio inp ...[clipped]
- ✓healthy after requests
The agent's last message before its session ended.
Submitted /workspace/output/.
- Trained visual tokenizer: 2,048 eight-bit codes, exactly 2 KB per image.
- Offline server supports
/encodeand/decode. - Final H100 tests: 62.9 encode/s, 2.16 decode/s; zero repeat differences across 700 decodes.
- Public diagnostic word similarity: 0.412.
- Weights, training code, logs, and data provenance included.
Self-check runtime gates passed; final determinism hardening was tested on Python 3.12/H100 after the four-check quota was exhausted.