Thử nghiệm để triển khai các mô hình máy học

Bạn đã sẵn sàng triển khai! Nếu chỉ triển khai một mô hình dễ dàng như nhấn nút lớn màu đỏ. Khi triển khai, bạn muốn quy trình của mình chạy, cập nhật và phân phát mà không gặp sự cố nào. Những nhu cầu này dẫn đến các yêu cầu và giải pháp được thảo luận trên trang này.

Kiểm thử bản cập nhật mô hình bằng chương trình đào tạo có thể mô phỏng

Chắc chắn rằng bạn muốn tiếp tục cải thiện trình dự đoán giao diện kỳ lân. Giả sử bạn tái cấu trúc mã kỹ thuật tính năng cho tính năng "thời gian trong ngày". Làm cách nào để bạn kiểm thử xem mã có đúng không? Bạn quyết định huấn luyện lại mô hình của mình và xem liệu bạn có nhận được cùng một kết quả hay không. Ôi, bạn thấy rằng việc đào tạo mô hình của mình không có thể tái tạo được. Quyết tâm tiếp tục dự đoán giao diện kỳ lân, bạn sẽ điều tra thêm. Bạn có thể đạt được khả năng tái tạo bằng cách làm theo các bước sau:

  • Tạo hạt chắc chắn cho trình tạo số ngẫu nhiên (RNG). Để biết thông tin chi tiết, hãy xem nội dung sắp xếp ngẫu nhiên trong quá trình tạo dữ liệu từ khoá học Chuẩn bị dữ liệu và kỹ thuật tính năng trong máy học.

  • Khởi chạy các thành phần 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ừ RNG trong mỗi lần chạy. Thư viện máy học thường tự động xử lý yêu cầu này.

  • Mô hình có nhiều lần chạy trung bình.

  • Hãy sử dụng tuỳ chọn kiểm soát phiên bản, ngay cả đối với các vòng lặp sơ bộ, để bạn có thể ghim mã và các tham số khi điều tra mô hình hoặc quy trình của mình.

Ngay cả sau khi thực hiện các bước này, bạn có thể có các nguồn không xác định khác.

Kiểm thử bản cập nhật mô hình cho thông số kỹ thuật và lệnh gọi API

Sau khi cập nhật mô hình thành Unicorn Predictor 2.0, bạn cần kiểm thử mô hình mới để đảm bảo độ chính xác của thuật toán, cùng với mọi thay đổi đối với lệnh gọi API. Hãy thảo luận về cách thực hiện.

Kiểm thử Lệnh gọi API

Bạn thử nghiệm các bản cập nhật đối với lệnh gọi API như thế nào? Chắc chắn rồi, bạn có thể đào tạo lại mô hình nhưng sẽ tốn thời gian. Thay vào đó, hãy viết một quy trình kiểm thử đơn vị để tạo dữ liệu đầu vào ngẫu nhiên và chạy một bước dốc xuống. Bạn muốn hoàn tất bước này mà không gặp lỗi thời gian chạy.

Kiểm tra độ chính xác của thuật toán

Một mô hình không chỉ phải dự đoán chính xác mà còn làm việc đó vì thuật toán đúng, không phải là may mắn. Ví dụ: nếu 99% email không phải là thư rác, thì việc phân loại tất cả email là không phải thư rác sẽ có độ chính xác 99%. Do đó, bạn cần kiểm tra mô hình của mình để đảm bảo tính chính xác của thuật toán. Làm theo các bước sau:

  • Đào tạo mô hình của bạn vài lần và xác minh xem mức giảm có giảm không.
  • Đào tạo thuật toán của bạn mà không thông thường. Nếu mô hình của bạn đủ phức tạp, mô hình này sẽ ghi nhớ dữ liệu huấn luyện và các tổn thất đào tạo của bạn sẽ gần bằng 0.
  • Kiểm thử các phép tính toán cụ thể về thuật toán của bạn. Ví dụ: bạn có thể kiểm thử để một phần RNN chạy một lần cho mỗi phần tử của dữ liệu đầu vào.

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

Trong một quy trình máy học, những 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. Kiểm tra để đảm bảo các thành phần hoạt động cùng nhau bằng cách viết một quy trình kiểm thử chạy toàn bộ quy trình từ đầu đến cuối. Kiểm thử như vậy được gọi là kiểm thử tích hợp.

Ngoài việc chạy các thử nghiệm tích hợp liên tục, bạn nên chạy các thử nghiệm tích hợp khi đẩy các mô hình và các phiên bản phần mềm mới. Việc chạy quy trình hoàn chỉnh chậm khiến cho việc kiểm thử tích hợp liên tục trở nên khó khăn hơn. Để chạy các thử nghiệm tích hợp nhanh hơn, hãy huấn luyện một tập hợp con dữ liệu hoặc sử dụng mô hình đơn giản hơn. Các chi tiết phụ thuộc vào mô hình và dữ liệu của bạn. Để đạt được mức độ phù hợp liên tục, bạn nên điều chỉnh các thử nghiệm 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 bài kiểm thử chậm sẽ chạy liên tục trong nền.

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

Trước khi đưa một phiên bản mô hình mới lên phiên bản chính thức, hãy kiểm thử hai kiểu giảm chất lượng sau:

  • Sự sụt giảm đột ngột: Lỗi ở phiên bản mới có thể làm giảm đáng kể chất lượng. Xác thực các phiên bản mới bằng cách kiểm tra chất lượng của các phiên bản đó so với phiên bản trước.

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

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

Nếu mô hình của bạn được cập nhật nhanh hơn máy chủ, thì mô hình của bạn sẽ có các phần phụ thuộc của phần mềm khác với máy chủ, có thể gây ra sự không tương thích. Đảm bảo rằng các thao tác mà mô hình sử dụng có trong máy chủ bằng cách phân đoạn mô hình trong một phiên bản hộp cát của máy chủ.