Vừa mới phát hiện ra một vấn đề khiến tôi bực mình về hệ thống ML sản xuất. Mọi người đều chú trọng vào các chỉ số đầu ra - độ chính xác, độ chính xác, độ nhạy - nhưng đến khi những chỉ số đó giảm, đã muộn rồi. Vấn đề thực sự xảy ra sớm hơn, ở lớp đầu vào.



Có một phương pháp tôi đã đọc về, hoàn toàn đảo ngược cách tiếp cận truyền thống. Thay vì theo dõi kết quả của mô hình, bạn giám sát xem dữ liệu đầu vào của bạn còn giữ được đặc điểm như trong quá trình huấn luyện hay không. Nghe có vẻ đơn giản, nhưng cách thực hiện lại rất tinh vi.

Ý tưởng cốt lõi sử dụng các hàng xóm gần nhất để ước lượng mật độ kết hợp với divergence KL. Đây là lý do tại sao nó hiệu quả: bạn thiết lập một mức chuẩn dựa trên dữ liệu huấn luyện của mình, sau đó liên tục so sánh dữ liệu đến với nó bằng một cửa sổ trượt. Khi divergence KL tăng vọt trên ngưỡng của bạn, có nghĩa là đã có sự thay đổi. Không cần giả định về phân phối dữ liệu, cũng không cần phải xem xét bên trong mô hình.

Hãy nghĩ về một hệ thống đề xuất thương mại điện tử được huấn luyện dựa trên hành vi trước đại dịch. Sở thích khách hàng thay đổi, mô hình mua sắm phát triển, nhưng phương pháp giám sát truyền thống có thể bỏ lỡ trong vài ngày. Phương pháp hàng xóm gần nhất này phát hiện ngay lập tức - các vector đặc trưng của bạn không còn phù hợp với phân phối ban đầu nữa, và bạn sẽ được cảnh báo trước khi hiệu suất thực sự giảm sút.

Phần thực tế cũng quan trọng. Kích thước cửa sổ ảnh hưởng lớn - quá nhỏ sẽ bắt nhịp với nhiễu, quá lớn sẽ bỏ lỡ các thay đổi nhanh. Cũng tương tự với việc điều chỉnh ngưỡng. Một cách tiếp cận hợp lý là lấy dữ liệu huấn luyện đồng nhất của bạn, chia thành các cửa sổ liên tiếp, tính divergence KL từng cặp, rồi dùng phần trăm 95 hoặc 99 làm ngưỡng.

Về lựa chọn giá trị k, căn bậc hai của kích thước mẫu là một điểm khởi đầu hợp lý. K lớn hơn làm ước lượng mật độ ít nhạy cảm hơn nhưng mượt mà hơn. K nhỏ hơn bắt các bất thường tốt hơn nhưng dễ bị quá khớp với nhiễu.

Ở quy mô lớn, phương pháp này trở nên khả thi nhờ các chiến lược lấy mẫu, thư viện hàng xóm gần nhất xấp xỉ như Annoy hoặc Faiss, và xử lý song song. Bạn không cần tính lại tất cả từ đầu - chỉ cập nhật các thống kê trượt một cách tăng dần.

Điều tuyệt vời của phương pháp này là nó không phụ thuộc vào mô hình cụ thể nào. Dù bạn chạy một bộ phân loại đơn giản hay một hệ thống phức tạp, nó đều hoạt động. Bạn đang xây dựng một hệ thống cảnh báo sớm để phát hiện sự dịch chuyển dữ liệu trước khi mô hình của bạn nhận ra có vấn đề. Đó chính là dạng kỹ thuật phòng thủ giúp hệ thống sản xuất ổn định hơn.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
Thêm một bình luận
Thêm một bình luận
Không có bình luận
  • Ghim