Skip to content

Add submission for glgh - #79

Open
glgh wants to merge 1 commit into
8090-inc:mainfrom
glgh:submission/glgh
Open

Add submission for glgh#79
glgh wants to merge 1 commit into
8090-inc:mainfrom
glgh:submission/glgh

Conversation

@glgh

@glgh glgh commented Aug 4, 2026

Copy link
Copy Markdown

Summary

Offline document pipeline: PyMuPDF for text and layout, Tesseract for OCR, NumPy/Pillow for scan-repair geometry, and a hand-written 17-branch rules cascade for adjudication. No LLM, VLM, multimodal model, cloud OCR/document API, or network access at runtime. There are no learned model artifacts in the image — the only fitted numbers are a ~2 KB per-branch confidence table checked into the repo as JSON.

Public solution repo (contains the Dockerfile): https://github.com/glgh/mib-doc-challenge-solution

Contents

File What it is
predictions.jsonl All 5,000 validation cases
MEMO.md Approach, adversarial handling, failure modes, what I would improve
SUBMISSION.md Solution-repo link, contract-compliance table, and a disclosure of every constant derived from the training labels

Runtime, measured under the exact contract limits

One uninterrupted container run with --network none --cpus 4 --memory 8g --pids-limit 512 --read-only:

  • 23,086 s total, 4.62 s/PDF against the 6 s/PDF budget and the 30,000 s cap
  • Zero cases hit the per-case OCR budget
  • Image 0.54 GiB uncompressed, against the 4 GiB cap

One caveat stated plainly in SUBMISSION.md: this was measured on Apple silicon, and the contract fixes the vCPU count but never the vCPU speed. On an SMT instance "4 vCPU" is two physical cores, which is the bad case for cache-hungry Tesseract. The pipeline streams and flushes each row as it completes, so a container stopped at the limit still leaves a valid, scoreable partial submission.

Validation

5,000 rows, 5,000 unique ids, schema-clean against schemas/submission.schema.json, exact manifest coverage (0 missing, 0 unexpected), scripts/validate_submission.py clean. On the frozen 700/300 train split: dev 128.24 / 150, holdout 128.28 / 150, 0 catastrophic false approvals, 0 missing rows.

Only submissions/glgh/ is touched.

🤖 Generated with Claude Code

Offline OCR + classical CV + a hand-written rules cascade. No LLM, VLM,
cloud API or network at runtime.

- predictions.jsonl: all 5,000 validation cases, produced in one
  uninterrupted container run under the exact contract limits
  (23,086 s, 4.62 s/PDF against the 6 s budget).
- MEMO.md: approach, adversarial handling, failure modes, what I would
  improve.
- SUBMISSION.md: link to the public solution repo (which contains the
  Dockerfile), contract-compliance table, and a disclosure of every
  constant derived from the training labels.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant