OCR latent compression
- Score
- 4.9
- Wallet spend
- $20.94 of $50
- Model cost
- $54.89
- Agent time
- 4h 26m
- Steps
- 141
- Tokens in / out
- 78.2M / 210k
- Self-checks
- 2 passed of 2 used
- Rank at $50 wallet
- 9th of 14
Score
4.9raw metric 0.04402
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.0805
- diagnostic_char_similarity
- 0.0751
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 places the image on a 512px canvas and runs the neural DeepSeek-OCR vision tower (SAM-B, CLIP-L and pr
server.py /encode places the image on a 512px canvas and runs the neural DeepSeek-OCR vision tower (SAM-B, CLIP-L and projector), giving 64x1280 tokens. It keeps the first 12 tokens, takes each value's sign against the per-token mean (codec.signs) and packs the bits 8 per code into 1920 discrete codes, matching codebook_size 256 in architecture.json. That is 15360 bits, within budget (selfcheck at trajectory#138). The encode path has no OCR or text-extraction step, so the codes are learned visual features made discrete by quantization.
✓decoder generates text from codes onlyserver.py /decode unpacks the codes, rebuilds token embeddings with the learned Codec (per-channel scale/bias plus a res
server.py /decode unpacks the codes, rebuilds token embeddings with the learned Codec (per-channel scale/bias plus a residual MLP refine) and fills the 52 tokens that are not stored with the fixed token_mean.pt vector. It lays these out as inputs_embeds for the frozen DeepSeek LM. The image tensor passed in is zeros, so the vision branch is skipped, and text comes from greedy decoding. The codes are the only per-image input: there is no per-request cache, file I/O or side channel.
✓served weights are the trained modelserve.sh runs server.py, which loads weights/ (stock DeepSeek-OCR at the declared revision 9f30c71f441d010e5429c532364a8
serve.sh runs server.py, which loads weights/ (stock DeepSeek-OCR at the declared revision 9f30c71f441d010e5429c532364a86705536c53a in architecture.json, taken from the HF snapshot at trajectory#11), codec.pt["model"] and token_mean.pt. The tensor names and shapes in codec.pt (scale, bias, refine.0 and refine.2) match the Codec class in codec.py and train_sign.py. training_log.txt records 4000 training steps and names codec.pt as sign_step4000. The sizes of the bucket checkpoint and the shipped file match (trajectory#33). The weights inventory shows the standard DeepSeek LM tensors.
✓harness credentials used only by the harnessTrajectory searches found no reads or uses of harness API keys, base URLs, xAI/grok credentials or environment dumps. Th
Trajectory searches found no reads or uses of harness API keys, base URLs, xAI/grok credentials or environment dumps. The only credentials used were Spin transfer storage credentials, via the Spin CLI, to move checkpoints and data (trajectory#30, #33, #34). These are not harness credentials.
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.
- 1passed3h 13m into the runtook 10m 26s
startup 12.7 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 12.7 s
- ✓encode throughput · 400 requests at concurrency 16: 20.1 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 256, "codes": [200, 151, 28, 184, 38, 48, 169, 230, 140, 58, 26, 231, 18, 41, 110, 246, 112, 215, 165, 31, 123, 10, 65, 121, 174, 231, 201, 52, 26, 28, 235, 227, 180, 3, 249, 32, 80, 70, 25, 188, 67, 254, 148, 103, 138, 76, 165, 99, 155, 169, 7, 110, 22, 72, 234, 192 ...[clipped]
- ✓bit budget · 1920 codes x 8 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 12.7 s
- ✓decode throughput · 420 requests at concurrency 16: 397.7 s of a 420 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /decode · "Emotion-driven Facial Generation Using Geometric Constraints for Natural and Realistic Tuning Faces\nMahdi Gjini, Youlu Boronat, Alexander van den Berg, and\nMohamed El Khatib\nEmotion-driven Facial Generation Using"
- ✓healthy after requests
- 2passed4h 17m into the runtook 7m 23s
startup 12.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 12.2 s
- ✓encode throughput · 400 requests at concurrency 16: 20.3 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 256, "codes": [200, 151, 28, 184, 38, 48, 169, 230, 140, 58, 26, 231, 18, 41, 110, 246, 112, 215, 165, 31, 123, 10, 65, 121, 174, 231, 201, 52, 26, 28, 235, 227, 180, 3, 249, 32, 80, 70, 25, 188, 67, 254, 148, 103, 138, 76, 165, 99, 155, 169, 7, 110, 22, 72, 234, 192 ...[clipped]
- ✓bit budget · 1920 codes x 8 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 10.1 s
- ✓decode throughput · 420 requests at concurrency 16: 239.4 s of a 420 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /decode · "Emotion-driven Facial Generation Using Geometric Constraints for Natural and Realistic Tuning Faces\nMahdi Gjini, Youlu Boronat, Alexander van den"
- ✓healthy after requests
The agent's last message before its session ended.
The second official check passed with a much safer decode margin. I’ll submit the folder as it stands.