Drift testing: model không đổi, nhưng thế giới đã đổi
🎯 Mục tiêu học (LO AI-6.1.7 · mức K2 – Hiểu): giải thích cách dùng drift testing cho hệ ML đang vận hành.
💡 Ý cốt lõi: drift testing phát hiện 2 dạng "trôi dạt" theo thời gian — data drift (dữ liệu đổi) và concept drift (ý nghĩa/quan hệ đổi).
2 dạng drift
| Dạng | Là gì | Ví dụ |
|---|---|---|
| Data drift | Đặc tính thống kê của dữ liệu đầu vào vận hành thay đổi theo thời gian — dữ liệu hiện tại khác đáng kể so với dữ liệu huấn luyện, do các yếu tố như thay đổi hành vi người dùng hoặc tính mùa vụ. | Bộ lọc spam gặp các dạng tấn công phishing mới chưa từng có lúc huấn luyện. |
| Concept drift | Mối quan hệ giữa dữ liệu đầu vào và output đúng thay đổi theo thời gian — mẫu hình/quy tắc model học ban đầu không còn phản ánh thực tế hiện tại. | Quy định tài chính mới khiến một loại giao dịch trước đây coi là 'rủi ro thấp' nay bị xếp 'rủi ro cao' — ranh giới quyết định model học trở nên lỗi thời, độ chính xác dự đoán giảm. |
2 cách test drift
| Cách | Dựa vào | Cách làm |
|---|---|---|
| Dynamic drift testing | Phản hồi từ người dùng (ground truth hiện tại) | So sánh output model với ground truth hiện tại (từ phản hồi trực tiếp như đánh giá của người dùng, hoặc gián tiếp như hành vi xem/dùng thực tế); tính chênh lệch và so với ngưỡng. |
| Static drift testing | Không cần ground truth hiện tại | So sánh đặc tính thống kê của phân phối dữ liệu đầu vào và output dự đoán, dùng kiểm định như Kolmogorov-Smirnov; khác biệt đáng kể ở một trong hai phân phối là dấu hiệu đã có drift. |
📝 Bẫy hay gặp
Đề hay cho một phát biểu nghe hợp lý nhưng sai — nhớ mấy chỗ gài sau:
- "Concept drift là khi dữ liệu đầu vào thay đổi phân phối" → SAI: đó là data drift. Concept drift là khi mối quan hệ input–output đúng thay đổi.
- "Static drift testing cần có ground truth hiện tại" → SAI: static drift testing không cần ground truth — chỉ so sánh phân phối thống kê.
- "Phản hồi người dùng chỉ có thể là trực tiếp (rating)" → SAI: còn có phản hồi gián tiếp, ví dụ suy ra từ dữ liệu hành vi xem phim thực tế.
📌 Ghi nhớ
Data drift = dữ liệu đổi · Concept drift = ý nghĩa/quan hệ đổi
Dynamic = cần ground truth · Static = chỉ so phân phối thống kê
Với tester: khi không có phản hồi người dùng đáng tin cậy (ground truth), đừng bỏ cuộc — vẫn có thể phát hiện drift bằng cách so sánh phân phối thống kê của dữ liệu đầu vào và output theo thời gian (static drift testing).
📖 Thuật ngữ Anh–Việt (mục này)
Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.
| Thuật ngữ (EN) | Nghĩa & ghi nhớ nhanh |
|---|---|
| Drift testing | Kiểm thử trôi dạt |
| Data drift | Trôi dạt dữ liệu — phân phối dữ liệu đầu vào thay đổi |
| Concept drift | Trôi dạt khái niệm — quan hệ input-output đúng thay đổi |
| Dynamic drift testing | Kiểm thử trôi dạt động — dựa trên phản hồi/ground truth hiện tại |
| Static drift testing | Kiểm thử trôi dạt tĩnh — dựa trên so sánh phân phối thống kê |
| Ground truth | Sự thật nền — dữ liệu/nhãn được coi là chuẩn đúng |
| Direct feedback | Phản hồi trực tiếp (vd người dùng đánh giá) |
| Indirect feedback | Phản hồi gián tiếp (suy ra từ hành vi thực tế) |
🎯 Câu hỏi minh họa (phong cách đề CT-AI · K2)
A team has no reliable current ground truth for their MLS, but they compare the statistical distribution of the current operational input data against the training data distribution using a Kolmogorov-Smirnov test. Which approach are they using?
- a) Dynamic drift testing.
- b) Static drift testing.
- c) A/B testing.
- d) Adversarial testing.
Xem bản dịch tiếng Việt
Một nhóm không có ground truth hiện tại đáng tin cậy cho MLS của họ, nhưng họ so sánh phân phối thống kê của dữ liệu đầu vào vận hành hiện tại với phân phối dữ liệu huấn luyện bằng kiểm định Kolmogorov-Smirnov. Họ đang dùng cách tiếp cận nào?
a) Kiểm thử trôi dạt động.
b) Kiểm thử trôi dạt tĩnh.
c) A/B testing.
d) Adversarial testing.
Xem đáp án & giải thích
✅ Đáp án đúng: b — so sánh phân phối thống kê mà không cần ground truth hiện tại chính là static drift testing.
a sai — dynamic drift testing cần ground truth hiện tại từ phản hồi người dùng.
c sai — A/B testing so sánh hai biến thể hệ thống, không phải so sánh phân phối theo thời gian.
d sai — adversarial testing tạo input đánh lừa model, không liên quan drift.
Đề để tiếng Anh cho sát đề thi thật; phần giải thích để tiếng Việt cho dễ hiểu. Câu hỏi do maiqai.com tự soạn theo phong cách đề.
📎 Nguồn: Chương 6 – Kiểm thử mô hình cho hệ thống ML, mục 6.1.7 "Drift Testing", trang 60 — ISTQB® Certified Tester AI Testing Syllabus v2.0 (© International Software Testing Qualifications Board). Nội dung biên soạn/dịch ý lại bằng tiếng Việt, không sao chép nguyên văn.