36007ffdaf49848b2d19a8efee0b3b1cd5035419
Model: dvr76/ticket-triage-qwen3 Source: Original Platform
license, language, base_model, tags, pipeline_tag, datasets
| license | language | base_model | tags | pipeline_tag | datasets | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| apache-2.0 |
|
Qwen/Qwen3-2B |
|
text-generation |
|
ticket-triage-qwen3-2b
Fine-tuned Qwen3-2B for extracting structured maintenance information from tenant ticket text.
Training
- Base model: Qwen/Qwen3-2B (loaded via unsloth/Qwen3-2B)
- Method: QLoRA (r=16, 4-bit NF4 quantization)
- Framework: Unsloth + TRL SFTTrainer
- Hardware: Google Colab T4 (16GB VRAM)
- Epochs: 3
- Learning rate: 2e-4, cosine schedule
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "dvr76/ticket-triage-qwen3"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype="auto", device_map="auto", trust_remote_code=True)
messages = [
{"role": "system", "content": "You are a property maintenance ticket triage system. Respond with ONLY valid JSON."},
{"role": "user", "content": "kitchen sink tap water is leaking from yesterday morning"},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(model.device)
output = model.generate(**inputs, max_new_tokens=512, do_sample=False)
print(tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Output schema
{
"is_maintenance_request": true,
"issues": [{"category": "", "sub_category": "", "location": "", "urgency": ""}],
"vendor_type": "",
"entry_required": true
}
API
GitHub: github.com/dvr76/ticket-triage-qwen3
License
Apache 2.0 (inherited from Qwen3-2B).
Description
Languages
Jinja
100%