Hệ thống học máy sản xuất: Kiểm thử việc triển khai

Bạn đã sẵn sàng triển khai mô hình kỳ lân giúp dự đoán sự xuất hiện của kỳ lân! Khi triển khai, quy trình học máy (ML) của bạn sẽ chạy, cập nhật và mà không gặp phải vấn đề gì. Nếu chỉ triển khai một mô hình thì dễ dàng như nhấn một nút Triển khai lớn. Rất tiếc, một hệ thống học máy hoàn chỉnh yêu cầu kiểm tra về:

  • Xác thực dữ liệu đầu vào.
  • Đang xác thực kỹ thuật tính năng.
  • Đang xác thực chất lượng của các phiên bản mô hình mới.
  • Xác thực cơ sở hạ tầng phân phát.
  • Kiểm thử quá trình tích hợp giữa các thành phần quy trình.

Nhiều kỹ sư phần mềm ưa chuộng phương pháp phát triển dựa trên kiểm thử (TDD). Trong TDD, phần mềm các kỹ sư viết mã kiểm thử trước khi viết mã kiểm thử "thực" mã nguồn. Tuy nhiên, TDD có thể là một việc phức tạp trong công nghệ học máy. Ví dụ: trước khi huấn luyện mô hình, bạn không thể viết kiểm thử để xác thực sự mất mát. Thay vào đó, trước tiên bạn phải phát hiện ra tổn thất có thể đạt được trong quá trình lập mô hình phát triển và sau đó thử nghiệm các phiên bản mô hình mới dựa trên mức hao tổn có thể đạt được.

Giới thiệu về mô hình kỳ lân

Phần này đề cập đến mô hình kỳ lân. Dưới đây là những gì bạn cần phải biết:

Bạn đang dùng công nghệ học máy để xây dựng một mô hình phân loại dự đoán ngoại hình của kỳ lân. Tập dữ liệu của bạn chi tiết 10.000 lần xuất hiện của kỳ lân và 10.000 con kỳ lân không xuất hiện. Tập dữ liệu chứa vị trí, thời gian trong ngày, độ cao, nhiệt độ, độ ẩm, lớp phủ cây, sự hiện diện của cầu vồng và một số tính năng khác.

Kiểm thử bản cập nhật mô hình bằng quy trình huấn luyện có thể tái tạo

Có thể bạn muốn tiếp tục cải thiện mô hình kỳ lân của mình. Ví dụ: giả sử bạn thực hiện thêm một số kỹ thuật về tính năng cho một tính năng nhất định rồi sau đó huấn luyện lại mô hình, với hy vọng sẽ nhận được kết quả tốt hơn (hoặc ít nhất là tương tự). Thật không may, đôi khi rất khó để tái tạo huấn luyện mô hình. Để cải thiện khả năng tái lập, hãy làm theo các đề xuất sau:

  • Tạo hạt giống một cách chắc chắn cho trình tạo số ngẫu nhiên. Để biết chi tiết, hãy xem phần sắp xếp ngẫu nhiên trong dữ liệu tạo

  • Khởi động các thành phần của mô hình theo thứ tự cố định để đảm bảo các thành phần nhận được cùng một số ngẫu nhiên từ trình tạo số ngẫu nhiên trong mỗi lần chạy. Thư viện ML thường tự động xử lý yêu cầu này.

  • Lấy giá trị trung bình của một số lần chạy mô hình.

  • Sử dụng chức năng quản lý phiên bản, ngay cả đối với các vòng lặp sơ bộ để bạn có thể xác định mã và thông số khi nghiên cứu mô hình hoặc quy trình của bạn.

Ngay cả sau khi làm theo những nguyên tắc này, các nguồn chủ nghĩa không xác định khác có thể vẫn tồn tại.

Kiểm thử lệnh gọi đến API học máy

Làm cách nào để kiểm thử bản cập nhật cho lệnh gọi API? Bạn có thể đào tạo lại mô hình, nhưng tốn nhiều thời gian. Thay vào đó, hãy viết một bài kiểm thử đơn vị để tạo dữ liệu đầu vào ngẫu nhiên và chạy một bước gốc chuyển màu. Nếu bước này hoàn tất mà không thì mọi bản cập nhật API đều có thể không làm hỏng mô hình của bạn.

Viết mã kiểm thử tích hợp cho các thành phần quy trình

Trong quy trình học máy, các thay đổi trong một thành phần có thể gây ra lỗi trong các thành phần khác thành phần. Kiểm tra xem các thành phần có hoạt động cùng nhau không bằng cách viết một kiểm tra tích hợp chạy toàn bộ quy trình.

Ngoài việc liên tục chạy các thử nghiệm tích hợp, bạn nên chạy các thử nghiệm tích hợp khi ra mắt các mô hình và phiên bản phần mềm mới. Tốc độ chạy chậm toàn bộ quy trình khiến việc kiểm thử tích hợp liên tục trở nên khó khăn hơn. Để chạy công cụ tích hợp thử nghiệm nhanh hơn, huấn luyện trên một tập hợp con dữ liệu hoặc bằng một mô hình đơn giản hơn. Thông tin chi tiết tuỳ thuộc vào mô hình và dữ liệu của bạn. Để có được mức độ phù hợp liên tục, bạn nên điều chỉnh nhanh hơn để chúng chạy với mọi phiên bản mô hình hoặc phần mềm mới. Trong khi đó, các chương trình kiểm thử bị chậm sẽ chạy liên tục ở chế độ nền.

Xác thực chất lượng mô hình trước khi phân phát

Trước khi xuất bản phiên bản mô hình mới vào giai đoạn phát hành công khai, hãy thử nghiệm hai loại suy giảm chất lượng sau đây:

  • Suy giảm đột ngột. Một lỗi trong phiên bản mới có thể gây ra đáng kể có chất lượng thấp hơn. Xác thực phiên bản mới bằng cách kiểm tra chất lượng so với phiên bản trước đó.

  • Xuống cấp chậm. Thử nghiệm về tình trạng xuống cấp đột ngột của bạn có thể không phát hiện thấy ứng dụng chậm sự suy giảm chất lượng mô hình qua nhiều phiên bản. Thay vào đó, hãy đảm bảo các dự đoán của mô hình trên một tập dữ liệu xác thực đáp ứng ngưỡng cố định. Nếu tập dữ liệu xác thực khác với dữ liệu trực tiếp, sau đó hãy cập nhật thông tin xác thực của bạn và đảm bảo mô hình của bạn vẫn đáp ứng ngưỡng chất lượng tương tự.

Xác thực khả năng tương thích của mô hình với cơ sở hạ tầng trước khi phân phát

Nếu mô hình được cập nhật nhanh hơn máy chủ thì mô hình của bạn có thể bị phần mềm khác nhau từ máy chủ của bạn, khiến sự không tương thích. Đảm bảo rằng các toán tử mà mô hình sử dụng xuất hiện trong máy chủ bằng cách thử nghiệm mô hình trong một phiên bản hộp cát của máy chủ.