Downloads · 30 days
2
3% of all-time downloads
Afshanqasim525/qwen25-1.5b-parcel-normalizer
qwen25-1.5b-parcel-normalizer is a text generation model from Afshanqasim525. Use it when you need the model to write or continue text. It is set up for peft. The card lists the license as apache-2.0.
Fine-tuned for the Covent LLM Challenge: a small, narrow-task model that normalizes messy US property/parcel records into a fixed JSON schema.
Downloads · 30 days
2
3% of all-time downloads
All-time downloads
62
Public
Repo size
85.3 MB
Likes
0
Public
Click a slice to open those files.
.safetensors73.9 MB · 82%
From the Hugging Face model README
Fine-tuned for the Covent LLM Challenge: a small, narrow-task model that normalizes messy US property/parcel records into a fixed JSON schema.
Real-world US county property data comes in wildly inconsistent formats, different field names, merged vs. split address components, inconsistent abbreviations, missing fields, depending on the county and platform (ArcGIS, Socrata, etc.). This model takes a messy, free-text-style property record and outputs clean, structured JSON in one fixed canonical schema:
{
"parcel_id": "",
"situs_address": "",
"situs_city": "",
"situs_state": "",
"situs_zip": "",
"owner_name": "",
"owner_mailing_address": "",
"owner_mailing_city": "",
"owner_mailing_state": "",
"owner_mailing_zip": ""
}
~2,850 real-world-derived training pairs built from live public parcel records:
Each pair consists of a real record synthetically corrupted (abbreviation swaps, typos, punctuation dropping, casing variation, multiple free-text templates) paired with the correct clean JSON as the training target.
Evaluated on 300 real records from three counties never seen during training, Maricopa County (AZ), Travis County (TX), and Denver County (CO), against Claude Opus 4.8 as the frontier baseline, using an identical system prompt for both models.
| Field | This model | Claude Opus 4.8 |
|---|---|---|
| situs_address | 22.0% | 18.7% |
| situs_city | 80.0% | 99.3% |
| situs_state | 81.0% | 94.7% |
| situs_zip | 49.3% | 99.3% |
| owner_name | 14.0% | 59.3% |
| owner_mailing_address | 11.7% | 34.7% |
| owner_mailing_city | 53.3% | 36.3% |
| owner_mailing_state | 49.3% | 36.3% |
| owner_mailing_zip | 36.3% | 35.7% |
Opus 4.8 outperforms on fields requiring broad US geographic world-knowledge (city/state/zip associations it learned from pretraining). This model wins specifically on owner mailing address fields, a narrower, structural pattern (owner mailing address often matches situs address when not explicitly stated) learned from real training data rather than world knowledge. parcel_id is excluded from scoring since it never appears in the input text and is unknowable by construction for either model.
Full eval script and raw predictions: see the GitHub repo https://github.com/Afshan738/covent-llm-challenge.
from unsloth import FastLanguageModel
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="Afshanqasim525/qwen25-1.5b-parcel-normalizer",
max_seq_length=512,
load_in_4bit=True,
)
FastLanguageModel.for_inference(model)
SYSTEM_PROMPT = (
"You normalize messy US property records into a fixed JSON schema. "
"Given a raw record, output ONLY valid JSON with exactly these keys: "
"parcel_id, situs_address, situs_city, situs_state, situs_zip, "
"owner_name, owner_mailing_address, owner_mailing_city, "
"owner_mailing_state, owner_mailing_zip. "
"If a value is unknown, use null. Do not add commentary."
)
messages = [
{"role": "system", "content": SYSTEM_PROMPT},
{"role": "user", "content": "Normalize this record:\n75 LEO CT roselle IL 60172\nOwner: STOESSER, JAMES L"},
]
inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt")
out = model.generate(inputs, max_new_tokens=200, temperature=0.1, do_sample=False)
print(tokenizer.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))