Results (60 held-out rows, field-level F1)
Table with columns: Model, Score| Model | Score |
|---|
| gpt-4o-mini, plain prompt | 72.92 |
| gpt-4o-mini, GEPA-optimized prompt | 84.17 |
| gpt-5.4-mini, plain prompt | 72.92 |
| gpt-5.4-mini, GEPA-optimized prompt | 79.58 |
| Qwen3.5-4B raw | 42.50 |
| Qwen3.5-4B + this adapter | 89.17 |
The fine-tuned 4B beats both GEPA-optimized teachers: +5.00 over gpt-4o-mini and +9.59 over
the newer gpt-5.4-mini, on the same 60 held-out rows. Reproduce everything (data prep, GEPA
runs, this fine-tune): apprentice-benchmark,
tasks/receipt-extraction/.
Training
LoRA r=16, alpha 16, 3 epochs, lr 2e-4, batch 2 x grad-accum 4, Unsloth 4-bit, Colab GPU.
Train/eval split: seed 42, 140/60 from 200 sampled rows.
Usage
Load with PEFT on top of Qwen/Qwen3.5-4B, or serve via vLLM with --enable-lora.
Caveat: evaluated on 60 rows of a public benchmark with exact-string field matching —
re-validate before production use.
Built with Qwen (Apache-2.0).