SẢN PHẨM × KỸ THUẬT
Kỹ thuật Chatbot: Hướng dẫn thực hành
CHATBOT ENGINEERING / FIELD GUIDE
Từ phân tích sản phẩm đến data agent, đánh giá model, fine-tuning và vận hành. Học qua ví dụ Commerce Assist, đọc kết quả đo và thử demo EN/VI.
Thử Commerce Assist ↗ · Read in English
Chọn lộ trình đọc
- Product: bài 1 → 8 → 9, xác định giá trị, chi phí và UX.
- Engineering: bài 2 → 4 → 3 → 5 → 6 → 7, từ hợp đồng đến vận hành.
Chín chương
- Phân tích công việc trước khi xây chatbot
Xác định công việc, ranh giới rủi ro, mục tiêu chất lượng và lộ trình giảm phụ thuộc model bằng đo lường.
- Xây data agent giải thích được các con số
Thiết kế data agent có semantic layer, tool chỉ đọc, cô lập tenant và câu trả lời kiểm chứng được.
- Chọn model chatbot có thể vận hành và train
So sánh model local, routing CPU và fine-tuning GPU theo chất lượng tác vụ, phần cứng và khả năng vận hành.
- Chứng minh model chatbot nhỏ có đủ tốt không
Tạo bộ test độc lập, chấm câu trả lời có căn cứ và đo chất lượng, chi phí, coverage cùng lúc.
- Train hành vi, retrieval kiến thức: thực hành LoRA
Chuẩn bị dữ liệu có giám sát, cấu hình thử nghiệm adapter và đánh giá giá trị vận hành của fine-tuning.
- Tăng tốc chatbot và giữ chất lượng
Tối ưu context, output, caching, retrieval và inference theo ngân sách độ trễ, token từ đầu đến cuối.
- Vận hành chatbot riêng tư trên production
Thiết kế cô lập tenant, tool giới hạn, kiểm soát phát hành, khôi phục lỗi và observability cho chatbot.
- Định giá chatbot theo chi phí thực tế
Tính chi phí tác vụ thành công, cache write và công suất; xây gói tính phí client minh bạch.
- Thiết kế chatbot dễ tin cậy, cấu hình và khôi phục
Thiết kế quy trình trả lời và phân tích, cấu hình an toàn, accessibility và hướng dẫn dùng demo thực tế.
Thử nghiệm và bằng chứng
Benchmark và training là thử nghiệm trên dữ liệu giả lập do tác giả xây dựng, có các template tương quan. Không chứng minh tương đương model lớn hoặc chất lượng trên dữ liệu khách hàng. Model sinh plan được đo offline; demo công khai dùng baseline có kiểm soát. Benchmark: đã hoàn thành bốn candidate. LoRA: completed, 64/64 bước.
| Candidate | Đúng plan | Đúng kết quả / metric | Output không hợp lệ | p50 / ms | RSS / MiB |
|---|---|---|---|---|---|
| baseline | 120/120 | 60/60 | 0 | 0.043 | 25 |
| qwen25 | 8/120 | 7/60 | 37 | 12113.0 | 618 |
| qwen3 | 29/120 | 24/60 | 9 | 7200.4 | 920 |
| adapter | 80/120 | 50/60 | 2 | 7888.2 | 918 |
Adapter có giúp ích không?
Trên cùng 120 ca, Qwen3 gốc đúng 29 plan; adapter đúng 80, chênh lệch +51 ca. Đây là một lần chạy với một seed trên fixture hẹp, không phải ước lượng chất lượng tổng quát.
Output không hợp lệ giảm từ 9 xuống 2; đề xuất metric ở các ca cần từ chối giảm từ 25 xuống 11. Warm p50 của adapter là 7.89 giây so với 7.20 giây của base. Adapter cải thiện contract nhưng chưa đạt điều kiện bật public; demo tiếp tục dùng baseline. Đây không phải bằng chứng tương đương model lớn.
So sánh từng ca: 51 cải thiện, 0 hồi quy, 69 không đổi. Các ID và output trước/sau có trong results.json.
Challenge riêng: kỳ trước bằng 0
Hai ca EN/VI được báo cáo riêng, không cộng vào 120 ca chính. September so với June có previous total bằng 0; percent change phải là null. Trong cả hai ca EN/VI, cả ba model bỏ mất comparison_period dù câu hỏi yêu cầu so sánh. Arithmetic có bảo vệ vẫn không sửa được lỗi hiểu yêu cầu này.
| Candidate | Đúng plan / 2 |
|---|---|
| baseline | 2/2 |
| qwen25 | 0/2 |
| qwen3 | 0/2 |
| adapter | 0/2 |
p50 đo trên CPU workstation, không gồm HTTP/Cloudflare public; subset warm 18 lần, mẫu nhỏ. RSS là snapshot, không phải peak; RSS baseline thuộc process benchmark, không phải toàn bộ web service LXC. Q8_0 GGUF qua llama.cpp; training CPU float32.
Tự chạy ví dụ
Tải code, tests và hướng dẫn · Dataset JSON · Kết quả đo JSON · Results CSV
Weights không nằm trong gói; script tải revision chính thức được pin. Không cần API key inference. Đọc README để phân biệt chạy demo, benchmark và training.