A 2B parameter model beat frontier LLMs at pulling fields from invoices and IDs in its makers' benchmark, at 6 to 147 times lower cost
The expensive way to read an invoice is to ask a frontier model. A small model trained for the job may do it better.
What happened
Dharma-AI published its Field Extractor, a 2 billion parameter model that takes a document image and returns structured JSON. You can ask it for every field it finds, or hand it an exact schema with your own key names and types (string, number or boolean). When you send a schema, the output follows it exactly, with no extra fields. Ask for a field that is not on the document and it returns null instead of inventing a value.
It is a LoRA adapter on DharmaOCR-LITE v1.1, trained on 43,384 examples covering receipts, invoices, forms, bank statements and ID documents.
Dharma tested it on 546 documents across 1,638 cases, including schemas with deliberately nonexistent fields. It scored 0.834. The frontier configurations ranged from Claude Opus 5 at 0.816 to GPT-5.6 Luna at 0.741. Running self hosted on a single L40S at $2.24 an hour, Dharma puts its cost per extraction at roughly 6 to 147 times lower than the APIs. The team says that figure depends on hardware and volume and is not a sales price. This is the maker's own benchmark, so test before you trust it.
My take
Invoice, receipt and ID data entry is one of the most common jobs in operations automation. Three things in this release line up with what actually breaks in production:
- Null instead of guessing. A model that invents a due date is worse than one that leaves it blank. A blank field can go to a human review queue. A made up one goes straight into the accounting system.
- Your key names, not the model's. If the output already matches your CRM or accounting fields, you drop a whole mapping step and a common source of bugs.
- Volume decides cost. At a few dozen documents a day, a frontier API is simple and cheap enough. At thousands, a small dedicated model starts to pay for the hosting.
Before switching anything, I would run 50 of the client's real documents through both options and count field errors, not overall impressions. That test takes an afternoon and settles the question.
Document intake pipelines like this are a big part of what I build for operations teams. More at romielwillautomate.dev.
More posts
- Uber says AI agents booked four rides in its busiest week of October. Its app takes about 50 seconds to book oneNov 5, 2026
- The best AI agent finished 29 of 45 real AWS tasks. About 80% of failures came from stopping too early, not from missing knowledgeNov 5, 2026
- HubSpot's Claude connector can create and update CRM records but cannot delete them. Set its write tools to Needs Approval firstNov 5, 2026
