Downloads · 30 days
7
10% of all-time downloads
Qweffy/shoebox-receipts-qwen3b
shoebox-receipts-qwen3b is a machine learning model from Qweffy. Use it for the machine learning task on the model card, and read the license before you ship it in a product. It is set up for mlx. The card lists the license as apache-2.0.
A QLoRA fine-tune of Qwen2.5-3B-Instruct (4-bit, MLX) for extracting structured fields from receipt OCR text — part of the shoebox project (a privacy-first, 100%-on-device receipt digitizer).
Downloads · 30 days
7
10% of all-time downloads
All-time downloads
72
Public
Parameters
3.1B
1.7 GB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors1.7 GB · 99%
How the weights are stored.
U323.1B · 100%
From the Hugging Face model README
A QLoRA fine-tune of Qwen2.5-3B-Instruct (4-bit, MLX) for extracting structured fields from receipt OCR text — part of the shoebox project (a privacy-first, 100%-on-device receipt digitizer).
Given a receipt's OCR text, it returns JSON: vendor, date (ISO), total, currency.
| Model | Overall field accuracy |
|---|---|
| Base Qwen2.5-3B (prompted) | 72.2% |
| This QLoRA fine-tune | 80.0% |
Measured on held-out SROIE receipts. See the repo's benchmark/RESULTS.md for the full
local-vs-cloud comparison.
scripts/build_finetune_data.py.mlx_lm.lora on a 4-bit base, --mask-prompt, 300 iters.date
formats and unusual layouts. Not a production OCR/extraction service. Labels for the
category classifier elsewhere in shoebox are weak (keyword-derived) — see the repo.from mlx_lm import generate, load
model, tok = load("Qweffy/shoebox-receipts-qwen3b")
prompt = tok.apply_chat_template(
[{"role": "system", "content": "...extract vendor/date/total/currency as JSON..."},
{"role": "user", "content": "OCR TEXT:\n<receipt text>"}],
add_generation_prompt=True, tokenize=False)
print(generate(model, tok, prompt=prompt, max_tokens=128))