Views
No views yet
submission/REPORT.md · mã nguồn:
https://github.com/nguyengochiep/K4-Track3-DAY21-2A202601156-NguyenNgocHiepQwen/Qwen3.5-0.8B (tier CPU của lab, không phải 4B mặc định —
huấn luyện trên RTX 3050 Ti Laptop 4 GB) cho tác vụ: ticket CSKH tiếng Việt → JSON triage 4 trường
intent · urgency · product · sentiment.| target | regression | format | latency | |
|---|---|---|---|---|
| (a) base + prompt ngây thơ | 0.000 | 0.667 | 0.000 | 2058 ms |
| (b) base + prompt tối ưu | 0.495 | 0.667 | 1.000 | 585 ms |
| (c) adapter này | 0.985 | 0.033 | 1.000 | 753 ms |
target Δ +0.490, không thua mẫu nào trong 50) nhưng quên
thảm hoạ: năng lực phổ thông sụp từ 0.667 xuống 0.033, vượt 31 lần ngưỡng 0.020 của cổng hồi quy.
Hỏi nó viết một câu chúc sinh nhật, nó trả về {"intent": "hoi_thong_tin", ...}.ticket trần → JSON, không có mẫu replay, nên model học rằng mọi input đều
nghĩa là "phát ra JSON triage". Khắc phục theo deck §14.3: trộn 1–5% dữ liệu phổ thông.| run | thay đổi | train loss | target |
|---|---|---|---|
correct (adapter này) | — | 0.3956 | 0.985 |
attn_only | chỉ q,v, r=271 khớp ngân sách | 0.4333 | 0.935 |
qlora | 4-bit | 0.4247 | 0.930 |
wrong_lr | LR 1e-5 thay vì 1e-4 | 1.5418 | 0.330 |
r=16 · alpha=32 · dropout=0 · target_modules = toàn bộ linear của text decoder ·
lr=1e-4 · cosine · 10% warmup · effective batch 8 · 2 epoch (58 step) · bf16 ·
max_length=512 · mask assistant-only (37/94 token, đã kiểm chứng bằng giải mã ngược).1from peft import PeftModel
2from transformers import AutoModelForCausalLM, AutoTokenizer
3
4m = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-0.8B", dtype="auto", device_map="auto")
5m = PeftModel.from_pretrained(m, "flamehydra/lab21-2A202601156-qwen35-triage-vi")
6tok = AutoTokenizer.from_pretrained("Qwen/Qwen3.5-0.8B")
7
8msgs = [{"role": "system", "content": "Phân loại ticket sau."},
9 {"role": "user", "content": "Shop ơi, mình đặt bàn phím cơ mã đơn DH123456. Giao hàng chậm."}]
10ids = tok.apply_chat_template(msgs, add_generation_prompt=True, return_tensors="pt").to(m.device)
11print(tok.decode(m.generate(ids, max_new_tokens=160, do_sample=False)[0][ids.shape[-1]:],
12 skip_special_tokens=True))"Phân loại ticket sau." + ticket trần
trong lượt user. Gửi hình dạng khác thì adapter không chuyển giao được.