Data Drift
Trôi dạt dữ liệu là sự dịch chuyển của dữ liệu đầu vào trong môi trường production khỏi phân phối huấn luyện, làm giảm độ chính xác. Nội dung đề cập các loại trôi dạt, kiểm định thống kê và huấn luyện lại.
Data drift là sự thay đổi trong phân phối thống kê của dữ liệu đầu vào mà một model đã triển khai nhận được so với dữ liệu dùng để huấn luyện model. Model giả định rằng dữ liệu đầu vào trong môi trường production đến từ cùng phân phối với dữ liệu huấn luyện; khi giả định này không còn đúng, độ chính xác có thể giảm mà không có thông báo lỗi và không có thay đổi nào đối với code hoặc trọng số của model. Các nguyên nhân thường gặp trong hệ thống thị giác gồm camera hoặc ống kính mới, thay đổi về ánh sáng và mùa, góc camera bị dịch chuyển, bao bì sản phẩm mới và thay đổi ở pipeline đầu vào như cài đặt nén ảnh khác. Phát hiện và xử lý drift là nhiệm vụ cốt lõi của giám sát model và vận hành học máy (MLOps).
Các loại dịch chuyển phân phối#
Classifier mô hình hóa xác suất của một nhãn khi biết đầu vào, và sự dịch chuyển có thể xảy ra ở đầu vào, nhãn hoặc mối quan hệ giữa chúng:
- Dịch chuyển hiệp biến: Phân phối đầu vào thay đổi trong khi nhãn đúng cho mỗi đầu vào vẫn giữ nguyên. Một detector được huấn luyện trên ảnh ban ngày nhưng bắt đầu nhận video lúc chạng vạng sẽ gặp dịch chuyển hiệp biến, vì xe vẫn là xe. Theo nghĩa hẹp, data drift chỉ trường hợp này.
- Dịch chuyển nhãn: Còn gọi là dịch chuyển xác suất tiên nghiệm, hiện tượng này xảy ra khi tần suất các lớp thay đổi. Nếu tỷ lệ lỗi của một dây chuyền sản xuất tăng từ 1% lên 5%, tỷ lệ cảnh báo của detector thực sự đúng cũng tăng theo, khiến precision thay đổi dù model và hình dạng của từng lỗi không đổi.
- Concept drift: Mối quan hệ giữa đầu vào và nhãn thay đổi, khiến cùng một đầu vào giờ đây cần một nhãn khác. Các kiểu gian lận biến đổi khi kẻ gian thích ứng, còn tiêu chuẩn chất lượng được siết chặt sẽ khiến những linh kiện từng được chấp nhận bị loại.
Drift có thể xảy ra đột ngột, chẳng hạn khi thay camera; từ từ, chẳng hạn khi bụi bẩn tích tụ trên ống kính; hoặc lặp lại theo chu kỳ, chẳng hạn lá cây thay đổi theo mùa và tuyết rơi.
Phát hiện data drift#
Phát hiện drift so sánh một mẫu tham chiếu, thường là dữ liệu huấn luyện hoặc validation, với một khoảng dữ liệu production gần đây. Khi chưa có nhãn, các nhóm kiểm tra xem hai phân phối đầu vào có khác nhau hay không bằng kiểm định Kolmogorov-Smirnov hai mẫu (KS) cho đặc trưng liên tục, kiểm định chi bình phương cho đặc trưng phân loại hoặc chỉ số ổn định quần thể (PSI) thường dùng trong chấm điểm tín dụng. Pixel thô có chiều quá cao để so sánh trực tiếp, vì vậy giám sát ảnh kiểm tra các thống kê tóm tắt như độ sáng và độ sắc nét hoặc embedding của mạng pretrained; nghiên cứu về các phương pháp phát hiện dịch chuyển cho thấy kiểm định hai mẫu trên biểu diễn từ bộ phân loại pretrained đạt kết quả tốt nhất. Đầu ra của chính model là tín hiệu thứ hai: thay đổi về tần suất lớp dự đoán, số hộp trên mỗi ảnh hoặc điểm confidence thường xuất hiện trước khi có ai đo độ chính xác.
import numpy as np
from scipy.stats import ks_2samp
rng = np.random.default_rng(0)
# Mean brightness (0-255) of 500 training images and two batches of 200 production images
reference = rng.normal(130, 25, 500)
same_light = rng.normal(130, 25, 200)
dusk = rng.normal(110, 25, 200)
# Two-sample Kolmogorov-Smirnov test: a small p-value means the distributions differ
for name, batch in (("same light", same_light), ("dusk", dusk)):
result = ks_2samp(reference, batch)
drifted = result.pvalue < 0.01
print(f"{name}: KS statistic {result.statistic:.3f}, p-value {result.pvalue:.2g}, drift {drifted}")Batch được lấy từ phân phối huấn luyện có thống kê KS là 0.046 với giá trị p là 0.91; batch có độ sáng trung bình giảm 20 mức có thống kê 0.346 với giá trị p là 1.1e-15 nên bị gắn cờ. Thống kê KS là khoảng cách lớn nhất giữa hai phân phối tích lũy; với các mẫu rất lớn, ngay cả những dịch chuyển không đáng kể cũng có thể tạo ra giá trị p rất nhỏ. Vì vậy, cảnh báo drift thường được đặt dựa trên chính thống kê KS, vốn đo mức độ dịch chuyển, thay vì chỉ dựa vào giá trị p.
Ứng phó với drift#
Chỉ nhãn mới cho biết liệu dịch chuyển được phát hiện có làm giảm độ chính xác hay không. Cách ứng phó tiêu chuẩn là lấy mẫu dữ liệu production gần đây, gán nhãn, đo độ chính xác trung bình trung bình (mAP) hoặc các metric của tác vụ khác trên dữ liệu đó, rồi huấn luyện lại hoặc fine-tune trên kết hợp dữ liệu mới và dữ liệu ban đầu khi hiệu năng giảm; giữ lại các ví dụ cũ trong tập kết hợp để tránh quên thảm họa. Tăng cường dữ liệu như thay đổi độ sáng, độ mờ và màu sắc giúp model thích ứng với những biến thiên có thể dự đoán trước, còn thích ứng miền không giám sát điều chỉnh model sang miền mới bằng dữ liệu đích chưa gán nhãn. Trên Ultralytics Platform, tab Monitoring của một endpoint chuyên dụng biểu đồ hóa confidence dự đoán trung bình theo thời gian, số lượng lớp, kích thước và vị trí hộp của các ảnh mà endpoint xử lý; các ví dụ gần đây có thể được lưu vào dataset để xem xét và huấn luyện lại.
Data drift và các thuật ngữ liên quan#
- Model drift: Sự suy giảm hiệu năng của model theo thời gian, là hệ quả do data drift và concept drift gây ra. Còn gọi là model decay.
- Độ lệch giữa huấn luyện và serving: Sự không khớp giữa dữ liệu huấn luyện và dữ liệu production do hai pipeline xử lý khác nhau, chẳng hạn dùng phương pháp resize khác; tình trạng này xuất hiện ngay từ ngày đầu triển khai thay vì phát triển theo thời gian.
- Phát hiện bất thường: Đánh dấu từng đầu vào khác thường, chẳng hạn một khung hình bị lỗi. Phát hiện drift so sánh toàn bộ phân phối và đánh dấu một tuần ảnh tối đồng loạt.
- Phát hiện ngoài phân phối (OOD): Chấm điểm mức độ khác biệt của từng đầu vào so với dữ liệu huấn luyện, thường để model có thể từ chối dự đoán hoặc chuyển đầu vào đó cho người xử lý.










