Skip to content

Submission v3: arthurmichel00 — 129.05 official train / 130.50 holdout (supersedes #58) - #68

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

arthurmichel00 wants to merge 1 commit into
8090-inc:mainfrom
arthurmichel00:submission-v3/arthurmichel00

Conversation

@arthurmichel00

Copy link
Copy Markdown

MIB Doc Challenge Submission (v3 — supersedes #58)

Per the organizers' guidance that updated submissions are filed as a new PR: this replaces #58 (same author), which replaced #51. Delta vs #58: a constrained-candidate CTC fill channel for the four closed-menu fields — scoring every legal value against the recognizer's own frame posteriors instead of decoding its argmax — plus three text-level decode-repair mechanisms (fusion/ligature edit costs, a label-licensed truncation-prefix rule for clipped flag rows, and a cross-page sponsor digit vote). All four are flag-gated and were measured as one A/B arm on the full official train set: +0.26 train / +0.25 holdout, with every adjudication flip verified against gold. Two adjudications changed, both NEEDS_REVIEW → DENIED on gold-DENIED cases; no case moved toward APPROVED, and the catastrophic false-approval count is unchanged. Field-level audit: 30 changes right, 3 wrong, 7 neutral — the 3 wrong are itemized in the memo and LEVERS.md rather than left for a reviewer to find. Runtime moved from 5.64 to 5.81 s/PDF against the 6.0 budget; the added pass costs ~0.3 s on each of the ~20% of cases that trigger it, and that cost is disclosed alongside the points.

Links

Summary

Official Docker-contract train score: 129.05 / 150 · fixed 200-case holdout: 130.50 (holdout ≥ train at all 9 measured milestones) · exactly 1 catastrophic false approval (the documented designed trap) · 0 fallback rows · 5.81 s/PDF vs 6.0 budget · 0.36 GiB image. predictions.jsonl generated by the frozen image over all 5,000 validation PDFs under the offline contract; passes validate_submission.py (5,000 valid, 0 missing). Approved-side consistency enforced structurally at emission and separately re-audited: 0 violations. No answer-key ingestion — the planted key is adversarial and never read as evidence. Built by AI agents in gated autonomous loops (30+ levers A/B-measured, 14 shipped; receipts in the repo's LEVERS.md and APPENDIX.md, including the full flip audit and timing ladder for this build).

Checklist

  • I filled out the submission form linked above
  • This PR only adds submissions/arthurmichel00/predictions.jsonl, MEMO.md, and SUBMISSION.md
  • predictions.jsonl passes scripts/validate_submission.py against data/validation_manifest.csv
  • My solution repository is public and includes a Dockerfile
  • My Docker image runs offline (--network none) and accepts <input_pdf_dir> <output_predictions_path>
  • My submitted runtime uses no LLMs, VLMs, cloud OCR, or network services
  • Model artifacts fit the size limits in DOCKER_SUBMISSION.md
  • No hardcoded validation answers and no manual per-case edits
  • My memo describes my approach, failure modes, and what I would improve with another week

🤖 Generated with Claude Code

@arthurmichel00

Copy link
Copy Markdown
Author

Superseded by #83 (same author) — v4 adds a generator-inversion last-resort reader for the closed menus, in-house likelihood fusion across views and pages, and a strip-scoped fine-tuned recognizer, measured +0.09 official train / +0.07 holdout with 0 adjudication flips and the catastrophic false-approval count unchanged at the single designed trap.

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