OCR latent compression
- Score
- 15.5
- Wallet spend
- $14.85 of $50
- Model cost
- $92.69
- Agent time
- 10h 32m
- Steps
- 574
- Tokens in / out
- 201.3M / 382k
- Self-checks
- 3 passed of 4 used
- Rank at $50 wallet
- 6th of 14
Score
15.5raw metric 0.1382
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
- 65536
- diagnostic_word_f1
- 0.2153
- diagnostic_char_similarity
- 0.3549
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 codesThe codes are learned discrete visual codes. In qmodel.py, `QuantizedOCR.encode` resizes and normalizes the image, then
The codes are learned discrete visual codes. In qmodel.py, `QuantizedOCR.encode` resizes and normalizes the image, then runs it through the DeepSeek-OCR DeepEncoder: SAM-ViT-B, then CLIP-L, then the projector. Next come a learned LayerNorm and an MLP (`pre_ln`, `pre_quant`: 1280→256→16). An FSQ bottleneck then quantizes the result (16 dims × 4 levels, tanh-bounded round/clamp). Each token is serialized as 2 uint16 codes, so codebook_size is 65536 (the same value declared in architecture.json). The pre_quant/dequant adapters were trained in two stages: autoencoder pretraining in pretrain_adapter.py, then joint CE fine-tuning in train.py with a straight-through estimator through FSQ. The checkpoint inventory contains trained pre_ln, pre_quant.0/2 and dequant.0/2 tensors. In server.py, /encode returns only the codes and codebook_size. Budget: 1000 codes × 16 bits = 16000 bits (doc canvas) and 1020 codes = 16320 bits (screenshot canvas), both within 16384. The trajectory shows a 1000-code, 16000-bit encode at step 418.
✓decoder generates text from codes onlyThe decoder works from the codes alone. In server.py, /decode validates the code list, then `_decode_batch` calls `model
The decoder works from the codes alone. In server.py, /decode validates the code list, then `_decode_batch` calls `model.prefix_embeds(codes)`. That function (qmodel.py) deserializes the codes, dequantizes the FSQ values and applies the learned dequant MLP and the newline/view_sep embeddings. It prepends BOS and appends only the fixed prompt suffix "\nFree OCR. \n". Text is then generated by greedy argmax decoding in the DeepSeek-3B-MoE LLM via fastdecode.py (FastDecoder with a static KV cache) and detokenized. No image, cache keyed by request content, side channel or external API is used. Batch padding reuses codes_list[0] only to keep shapes fixed, and the padded rows are discarded. Warmup uses a blank image only.
✓served weights are the trained modelThe served weights are the trained model. serve.sh sets MODEL_CKPT to the shipped model.safetensors. server.py loads it
The served weights are the trained model. serve.sh sets MODEL_CKPT to the shipped model.safetensors. server.py loads it with `QuantizedOCR.from_checkpoint`, which builds the full architecture and loads the state dict while asserting there are no missing keys. The inventory of model.safetensors (BF16, 6.67GB) matches QuantizedOCR exactly: clip.*, sam.*, projector, pre_ln, pre_quant, dequant, image_newline, view_sep, llm.model.* and llm.lm_head. Provenance in the trajectory: ckpt_run4/best.pt (step 250, syn_sim 0.272) was produced by train.py from the declared DeepSeek-OCR base plus the adapter init (step 409). It was converted with package.py to model.safetensors, uploaded as modelB, downloaded and copied into the output by mkoutput.sh (steps 410-413). The output was later reassembled at step 493, and the model file has the identical size (6673888192 bytes, step 563). The final server was smoke-tested end to end from this checkpoint (steps 416-418). training_config.json, data_manifest.md and training_log.jsonl describe the same two-stage procedure. One minor discrepancy: the logged eval value differs from best.pt's value, but both come from the same training procedure.
✓harness credentials used only by the harnessNo harness credentials were misused. The only credentials the participant used were Spin credentials: Spin CLI, Spin com
No harness credentials were misused. The only credentials the participant used were Spin credentials: Spin CLI, Spin compute and Spin transfer session credentials (session.json from `spin transfer credentials`), used with s5cmd to move checkpoints. The policy permits all of these. Trajectory searches found no reads of or calls with harness API keys or base URLs, no environment dumps, and no direct calls to model APIs.
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.
- 1failed6h 49m into the runtook 11m 55s
startup 38.9 s of 300 s; 1/2 gates passed; failed decode throughput: Batch exceeded 420s deadline; score is zero (41 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 38.9 s
- ✓encode throughput · 400 requests at concurrency 16: 32.3 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 65536, "codes": [50127, 56494, 28814, 53018, 12357, 61231, 41096, 53053, 41096, 52797, 37000, 52796, 37000, 53052, 53448, 53052, 12288, 57131, 12865, 65342, 8192, 53038, 12353, 61209, 36932, 53053, 8193, 53014, 49356, 52796, 49356, 53052, 12546, 53017, 8774, 56073, 2 ...[clipped]
- ✓bit budget · 1000 codes x 16 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 45.2 s
- ✗decode throughput · Batch exceeded 420s deadline; score is zero (41 of 420 requests answered in 420.0 s at concurrency 16)
- 2passed7h 36m into the runtook 11m 36s
startup 45.6 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 45.6 s
- ✓encode throughput · 400 requests at concurrency 16: 34.0 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 65536, "codes": [50127, 56426, 28878, 53002, 12421, 57135, 41160, 53053, 41096, 53053, 37000, 53052, 37000, 53052, 53448, 53053, 12289, 53015, 12929, 61227, 12352, 53018, 12353, 57110, 53380, 53037, 8257, 52994, 49356, 52796, 49356, 53052, 12611, 53014, 12871, 56069, ...[clipped]
- ✓bit budget · 1000 codes x 16 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 44.1 s
- ✓decode throughput · 420 requests at concurrency 16: 405.7 s of a 420 s deadline, timed from a fresh instance's readiness as in grading; 80 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 · "Emotional Driven Factorial Generative Using Geometric Constraint for Natural and Realistic Talking Faces\nMandy Gentry, Myrtle Bonner, Alexander Mcclain, Jacob Shamburgton, Vern J. Nix, Lisa Mills\nJuly 2, 2026\nAbstract\nGenerating talking faces that respond naturally to audio input ...[clipped]
- ✓healthy after requests
- 3error8h 43m into the runtook 2m 53sfree (stopped before any GPU time)
The self-check could not finish (RuntimeError: Grading sandbox command failed (-1) running 'chown -R 65534:65534 /submission && chmod -R u+rwX /submission; for d in /opt/venv /opt/conda; do [ -d $d ] && chown -R ': ).; The encode batch sends each of the 100 public images about 4 times and the
2 gates
- ✓review prerequisites
- ✓architecture.json
- 4passed8h 48m into the runtook 8m 10s
startup 58.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 58.7 s
- ✓encode throughput · 400 requests at concurrency 16: 29.6 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 65536, "codes": [50127, 56426, 28878, 53002, 12421, 57135, 41160, 53053, 41096, 53053, 37000, 53052, 37000, 53052, 53448, 53053, 12289, 53015, 12929, 61227, 12352, 53018, 12353, 57110, 53380, 53037, 8257, 52994, 49356, 52796, 49356, 53052, 12611, 53014, 12871, 56069, ...[clipped]
- ✓bit budget · 1000 codes x 16 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 73.1 s
- ✓decode throughput · 420 requests at concurrency 16: 163.9 s of a 420 s deadline, timed from a fresh instance's readiness as in grading; 96 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 · "Emotional Driven Factorial Generative Using Geometric Constraint for Natural and Realistic Talking Faces\nMandy Gentry, Myrtle Bonner, Alexander Mcclain, Jacob Shamburgton, Vern J. Nix, Lisa Mills\nJuly 2, 2026\nAbstract\nGenerating talking faces that respond naturally to audio input ...[clipped]
- ✓healthy after requests
- 5passed10h 19m into the runtook 9m 51s
startup 70.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 70.7 s
- ✓encode throughput · 400 requests at concurrency 16: 48.2 s of a 400 s deadline, timed from a fresh instance's readiness as in grading
- ✓POST /encode · {"codebook_size": 65536, "codes": [50127, 56426, 28878, 53002, 12421, 57135, 41160, 53053, 41096, 53053, 37000, 53052, 37000, 53052, 53448, 53053, 12289, 53015, 12929, 61227, 12352, 53018, 12353, 57110, 53380, 53037, 8257, 52994, 49356, 52796, 49356, 53052, 12611, 53014, 12871, 56069, ...[clipped]
- ✓bit budget · 1000 codes x 16 bits for one public image; every image must fit
- ✓healthy after requests
- ✓startup · GET /health answered 200 after 79.2 s
- ✓decode throughput · 420 requests at concurrency 16: 164.4 s of a 420 s deadline, timed from a fresh instance's readiness as in grading; 97 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 · "Emotional Driven Factorial Generative Using Geometric Constraint for Natural and Realistic Talking Faces\nMandy Gentry, Myrtle Bonner, Alexander Mcclain, Jacob Shamburgton, Vern J. Nix, Lisa Mills\nJuly 2, 2026\nAbstract\nGenerating talking faces that respond naturally to audio input ...[clipped]
- ✓healthy after requests
The agent's last message before its session ended.
I've reached the limit of my approach and time, with a fully validated, compliant submission. Let me confirm the submission.