Views
No views yet
Qwen/Qwen3-1.7B that classifies free-text descriptions of
autonomous-vehicle disengagement events into a 10-category safety scenario
taxonomy, framed as text generation (the model completes a classification
prompt with the category name). Trained on real California DMV Autonomous
Vehicle Disengagement Reports (2022–2024).Perception Failure | Prediction Failure | Lane Keeping | Braking Behavior |
Unwanted Maneuver | Construction/Environment | Precautionary |
System/Hardware Fault | Localization/Mapping | OtherQwen/Qwen3-1.7B, loaded in 4-bit (QLoRA-style) for training.q_proj/v_proj.src/finetune_qwen_lora.py.| Model | Accuracy (n=250) |
|---|---|
| Heuristic baseline | 80.0% |
| DistilBERT | 80.0% |
| Qwen3-1.7B LoRA (this model) | 72.8% |
src/eval_qwen_lora_gold.py.1import torch
2from transformers import AutoTokenizer, AutoModelForCausalLM
3from peft import PeftModel
4
5base = AutoModelForCausalLM.from_pretrained(
6 "Qwen/Qwen3-1.7B", torch_dtype=torch.bfloat16, low_cpu_mem_usage=True
7)
8model = PeftModel.from_pretrained(base, "jahnavidanda02/drivesignal-qwen3-lora")
9tokenizer = AutoTokenizer.from_pretrained("jahnavidanda02/drivesignal-qwen3-lora")
10
11taxonomy = ["Perception Failure", "Prediction Failure", "Lane Keeping", "Braking Behavior",
12 "Unwanted Maneuver", "Construction/Environment", "Precautionary",
13 "System/Hardware Fault", "Localization/Mapping", "Other"]
14prompt = (f"Classify this AV disengagement into one category from: {', '.join(taxonomy)}.\n\n"
15 "Description: Vehicle disengaged after hesitating at an unprotected left turn.\n\nCategory:")
16inputs = tokenizer(prompt, return_tensors="pt")
17out = model.generate(**inputs, max_new_tokens=15, do_sample=False)
18print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))eval_qwen_lora_gold.py).