Spaces:
Running on Zero
Running on Zero
| license: apache-2.0 | |
| base_model: unsloth/Qwen3-1.7B | |
| library_name: peft | |
| pipeline_tag: text-generation | |
| tags: [lora, sft, structured-extraction, hardware-specs, qwen3, unsloth] | |
| # FitCheck spec parser (Qwen3-1.7B LoRA) | |
| Turns messy human descriptions of computers — "my dad's old Dell, i5, 16 gigs, | |
| some nvidia card" — into the structured spec JSON used by | |
| [FitCheck](https://huggingface.co/spaces/build-small-hackathon/FitCheck), the | |
| honest "what AI can your computer run" advisor. This powers its paste box. | |
| The one rule that matters: **missing information becomes `null`, never a | |
| guess.** The model is trained and gated specifically against inventing specs. | |
| ## Training data: grounded, not synthetic-echo | |
| Labels are never model-generated: every training example starts from a **real | |
| machine** (GPUs + VRAM from vendor spec tables, 212 cards + Apple chips); only | |
| the phrasing varies, across ~24 registers mimicking how people actually write | |
| (casual chat, dxdiag dumps, Task Manager paste, seller listings, consoles, | |
| comparisons, half-remembered specs, several languages). ~39% of examples have | |
| no GPU to extract — the don't-invent cases. Trained with Unsloth (bf16 LoRA, | |
| completion-only loss) on a single RTX 5090 laptop. | |
| ## Evaluation: human-written text only | |
| Evaluated on a 45-example **human-written dev set** (never generator output; | |
| multilingual, consoles, buying-intent traps, pure refusals). The builder | |
| iterated against this set, so these are **dev numbers** — optimistically | |
| biased by adaptive iteration, and labelled as such: | |
| | round | field accuracy | invented-field rate (hallucination) | | |
| |---|---|---| | |
| | 1 | 77.3% | 32.5% | | |
| | 3 (answer-only loss + explicit rules) | 85.8% | 12.0% | | |
| | 5 (final) | **91.6%** | **1.2%** | | |
| A **sealed test set** (written by people who never saw the training data, | |
| evaluated exactly once, builder-blind) is pending; its result will be added | |
| here unedited when run. Ship gate: beat the base model zero-shot AND keep the | |
| invented-field rate under 5% — passed on dev. | |
| ## Output schema | |
| ```json | |
| {"computer": "Windows laptop|Windows desktop|Mac|Linux PC|Mini PC / Raspberry Pi|null", | |
| "ram_gb": "number|null", "provider": "nvidia|amd|apple|intel|none|null", | |
| "gpu": "string|null", "vram_gb": "number|null"} | |
| ``` | |
| Notable learned rules: `"none"` only when the text says there's no graphics | |
| card (unknown → null); a series alone ("gtx") is a provider, not a GPU; a | |
| stated VRAM figure beats the model's knowledge of that card; dxdiag's | |
| "Display Memory" is not system RAM; "8gb dev kit" on a Jetson is unified RAM, | |
| not VRAM; two machines compared → extract nothing. | |
| Part of the FitCheck project (Build Small hackathon): a deterministic engine | |
| does the math; small models appear only where they earn their place. | |