OCR latent compression
- Score
- 0.0
- Wallet spend
- $0.90 of $50
- Model cost
- $14.29
- Agent time
- 2h 3m
- Steps
- 1,010
- Tokens in / out
- 114.7M / 639k
- Self-checks
- 1 passed of 3 used
- Rank at $50 wallet
- 13th of 14
Batch exceeded 420s deadline; score is zero
Score
0.0
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.
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 codesencoder.py passes the image through DeepSeek-OCR's frozen sam_model, vision_model and projector to get 64x1280 visual fe
encoder.py passes the image through DeepSeek-OCR's frozen sam_model, vision_model and projector to get 64x1280 visual features. A learned FSQ bottleneck then maps these to 4096 scalar codes in 0..15: LayerNorm, an MLP from 1280 to 1024 to 512 to 64, then tanh, round and clamp. That is 4096 x 4 = 16384 bits. The bottleneck weights are the bf16 down.* tensors in fsq_weights.pt, and the inventory matches the architecture. The codes are quantized visual features, not text tokens. The encoder never runs the language model or a transcription step.
✓decoder generates text from codes onlyserver.py /decode accepts only the codes list. decoder.py dequantizes the codes with the learned up.* MLP and adds the f
server.py /decode accepts only the codes list. decoder.py dequantizes the codes with the learned up.* MLP and adds the fixed image_newline and view_seperator embeddings. It writes the result into the image-token slots of a fixed '\nFree OCR.' prompt and decodes greedily with the DeepseekV2 language model, using argmax and a KV cache. The only per-request input is the codes. There is no image, cache, lookup store or side channel, and decoding is deterministic.
✓served weights are the trained modelserve.sh runs server.py, which loads the shipped base safetensors (model-00001-of-000001.safetensors, frozen DeepSeek-OC
serve.sh runs server.py, which loads the shipped base safetensors (model-00001-of-000001.safetensors, frozen DeepSeek-OCR at the declared revision). It also loads fsq_weights.pt into the encoder and decoder. The shipped train.py is only a stub defining FSQBottleneck. The trajectory establishes provenance: - trajectory#325: FSQ trained on frozen features from 200 nielsr/docvqa_1200_examples train-split images. - trajectory#486: warm-started fine-tune on 60 train images, saved as fsq_aligned.pt. - trajectory#595: fsq_aligned.pt exported as fsq_weights.pt. - trajectory#607: fetched into /workspace/output at 7,490,569 bytes, matching the inventoried shipped file. The tensor shapes match the served FSQ module. The declared training corpus is a public train split, consistent with training_config.json.
✓harness credentials used only by the harnessThe trajectory shows HF_TOKEN used only for model and dataset downloads, as the task allowed. The participant's own Spin
The trajectory shows HF_TOKEN used only for model and dataset downloads, as the task allowed. The participant's own Spin transfer credentials were used for R2 file transfer (trajectory#600, trajectory#602, trajectory#605). Searches found no reading, printing or use of the agent harness's model API keys or base URLs, and no separate harness/LLM CLI invocations.
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.
- 1failed1h 9m into the runtook 12m 1s
startup 21.7 s of 300 s; 1/2 gates passed; failed decode throughput: Batch exceeded 420s deadline; score is zero (61 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 t
9 gates
- ✓review prerequisites
- ✓architecture.json
- ✓startup · GET /health answered 200 after 21.7 s
- ✓encode throughput · 400 requests at concurrency 16: 29.4 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 16, "codes": [10, 11, 12, 11, 10, 10, 9, 8, 9, 6, 11, 5, 4, 9, 4, 8, 10, 10, 5, 5, 7, 7, 2, 12, 12, 10, 6, 10, 5, 6, 4, 4, 9, 10, 5, 10, 11, 8, 8, 5, 11, 3, 10, 5, 9, 4, 8, 5, 9, 10, 10, 5, 5, 6, 11, 5, 10, 12, 6, 6, 4, 3, 5, 6, 5, 12, 13, 7, 9, 3, 7, 2, 9, 10, 13, 4 ...[clipped]
- ✓bit budget · 4096 codes x 4 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 16.8 s
- ✗decode throughput · Batch exceeded 420s deadline; score is zero (61 of 420 requests answered in 420.0 s at concurrency 16)
- 2failed1h 33m into the runtook 11m 2s
startup 22.0 s of 300 s; 1/2 gates passed; failed decode throughput: Batch exceeded 420s deadline; score is zero (225 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 22.0 s
- ✓encode throughput · 400 requests at concurrency 16: 29.8 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 16, "codes": [10, 11, 12, 11, 10, 10, 9, 8, 9, 6, 11, 5, 4, 9, 4, 8, 10, 10, 5, 5, 7, 7, 2, 12, 12, 10, 6, 10, 5, 6, 4, 4, 9, 10, 5, 10, 11, 8, 8, 5, 11, 3, 10, 5, 9, 4, 8, 5, 9, 10, 10, 5, 5, 6, 11, 5, 10, 12, 6, 6, 4, 3, 5, 6, 5, 12, 13, 7, 9, 3, 7, 2, 9, 10, 13, 4 ...[clipped]
- ✓bit budget · 4096 codes x 4 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 16.5 s
- ✗decode throughput · Batch exceeded 420s deadline; score is zero (225 of 420 requests answered in 420.0 s at concurrency 16)
- 3passed1h 52m into the runtook 10m 4s
startup 17.5 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.5 s
- ✓encode throughput · 400 requests at concurrency 16: 20.5 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 16, "codes": [10, 11, 12, 11, 10, 10, 9, 8, 9, 6, 11, 5, 4, 9, 4, 8, 10, 10, 5, 5, 7, 7, 2, 12, 12, 10, 6, 10, 5, 6, 4, 4, 9, 10, 5, 10, 11, 8, 8, 5, 11, 3, 10, 5, 9, 4, 8, 5, 9, 10, 10, 5, 5, 6, 11, 5, 10, 12, 6, 6, 4, 3, 5, 6, 5, 12, 13, 7, 9, 3, 7, 2, 9, 10, 13, 4 ...[clipped]
- ✓bit budget · 4096 codes x 4 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 15.1 s
- ✓decode throughput · 420 requests at concurrency 16: 338.6 s of a 420 s deadline, timed from a fresh instance's readiness as in grading; 89 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 · "Brought to you by\n\nIllinois State University Libraries\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois\n\nIllinois ...[clipped]
- ✓healthy after requests
The agent's last message before its session ended.
The solution has been submitted. All evaluation gates have passed and the submission is being graded.