FitCheck / model /spec_lora /README.md
cn0303's picture
Paste box goes live: fine-tuned spec parser fills the form from messy text
0e8e243 verified

A newer version of the Gradio SDK is available: 6.17.3

Upgrade
metadata
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, 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

{"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.