Biết cách tạo training sets và training slices để đánh giá khi dữ liệu ít.
Nắm chiến lược khi không có nhãn: dùng zero-shot/NLI trước khi fine-tune.
Hiểu data augmentation và token perturbations giúp mở rộng dữ liệu ít nhãn như thế nào.
Câu hỏi dẫn đường
Khi ít nhãn, vì sao không nên fine-tune ngay?
Baseline đơn giản giúp mình biết điều gì?
Embedding lookup có thể thay thế phần nào của training?
Ghi chú trong khi đọc
Intent Detection là case study cho bài toán ít nhãn: input là utterance của user, output là intent label như reset_password hoặc track_order.
Điểm khó không chỉ là phân loại text, mà là mapping cách nói tự nhiên của user vào taxonomy intent của sản phẩm.
Khi ít nhãn, nên thử baseline/zero-shot/embedding lookup trước khi fine-tune Transformer.
Zero-shot Learning là lựa chọn khi chưa có ví dụ gán nhãn trực tiếp cho task/label mới. Trong text classification, cách phổ biến là Zero-shot Classification: đưa text và candidate labels vào model, rồi model xếp hạng label phù hợp.
Few-shot Learning là lựa chọn khi đã có một vài ví dụ cho mỗi label. Khi đó có thể dùng ví dụ để làm nearest-neighbor bằng Embedding, tạo prompt mẫu, hoặc fine-tune nhẹ nếu dữ liệu đủ ổn.
Quy tắc nhanh: zero-shot tốt để kiểm tra taxonomy và có baseline ban đầu; few-shot tốt hơn khi có vài ví dụ chất lượng để neo ý nghĩa từng label.
Cả zero-shot và few-shot đều dễ bị nhiễu bởi tên label mơ hồ. Nếu hai intent gần nghĩa nhau, cần xem lại label description, ví dụ đại diện và slice evaluation trước khi đổ lỗi cho model.
Working with No Labeled Data: khi hoàn toàn chưa có nhãn, mục tiêu đầu tiên không phải train model, mà là tạo baseline và kiểm tra label space. Có thể bắt đầu bằng Zero-shot Classification, label descriptions, hoặc similarity bằng Embedding.
Với zero-shot classification, candidate labels đóng vai trò như phần mô tả task. Nếu label bug quá chung, nên thử label cụ thể hơn như software bug report hoặc thêm mô tả để model hiểu đúng ngữ cảnh.
Khi có unlabeled text thật, vẫn có tín hiệu: có thể đọc sample để chỉnh taxonomy, clustering bằng embedding để thấy nhóm intent tự nhiên, hoặc dùng Semi-supervised Learning sau khi có một ít nhãn/pseudo-label đáng tin.
Rủi ro lớn của no-label setting là không có ground truth để biết model đúng sai. Vì vậy cần sớm tạo một tập evaluation nhỏ được gán nhãn thủ công trước khi tin kết quả.
Viết lại bằng lời của tôi
Intent detection trả lời câu hỏi: “người dùng đang muốn làm gì?“. Vì dữ liệu intent ban đầu thường ít, mình cần đo baseline trước, xem label có rõ không, rồi mới quyết định dùng augmentation hoặc fine-tuning.
Zero-shot giống như hỏi model: “trong các nhãn này, câu này hợp nhãn nào nhất?” Few-shot thì cho model thêm vài ví dụ để hiểu mỗi nhãn được dùng theo nghĩa nào trong sản phẩm của mình.
Không có labeled data không có nghĩa là đứng yên. Mình vẫn có thể dùng tên nhãn, mô tả nhãn, unlabeled examples và embedding space để hiểu bài toán trước; nhưng để ra quyết định production thì phải tự tạo một ít nhãn kiểm tra.
Điều chưa rõ
Khi các intent gần nghĩa nhau, câu hỏi đầu tiên nên là taxonomy đã tách đúng chưa; chỉ sau đó mới nghĩ tới model lớn hơn.