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 để 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à phân phát mà không gặp vấn đề gì. Nếu chỉ triển khai mô hình dễ dàng như nhấn vào nút Triển khai lớn. Rất tiếc, một hệ thống học máy đầy đủ yêu cầu kiểm thử cho:

  • Xác thực dữ liệu đầu vào.
  • Xác thực kỹ thuật tạo tính năng.
  • 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ử việc tích hợp giữa các thành phần của quy trình.

Nhiều kỹ sư phần mềm ưu tiên phương pháp phát triển dựa trên kiểm thử (TDD). Trong TDD, kỹ sư phần mềm viết mã kiểm thử trước khi viết mã nguồn "thực". Tuy nhiên, TDD có thể gây khó khăn trong việc học máy. Ví dụ: trước khi huấn luyện mô hình, bạn không thể viết mã kiểm thử để xác thực tổn thất. Thay vào đó, trước tiên, bạn phải khám phá mức hao tổn có thể đạt được trong quá trình phát triển mô hình và sau đó kiểm thử 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 sử 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 sự xuất hiện của kỳ lân. Tập dữ liệu của bạn trình bày thông tin chi tiết về 10.000 lần xuất hiện kỳ lân và 10.000 lần không xuất hiện kỳ lân. Tập dữ liệu này chứa thông tin về vị trí, thời gian trong ngày, độ cao, nhiệt độ, độ ẩm, độ che phủ của cây, sự xuất hiện của cầu vồng và một số đặc điểm 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. Ví dụ: giả sử bạn thực hiện một số kỹ thuật kỹ thuật bổ sung về một tính năng nhất định, sau đó huấn luyện lại mô hình, hy vọng sẽ nhận được kết quả tốt hơn (hoặc ít nhất là tương tự). Rất tiếc, đôi khi rất khó tái tạo quá trình huấn luyện mô hình. Để cải thiện khả năng tái tạo, hãy làm theo các đề xuất sau:

  • Tạo giá trị khởi tạo xác định cho trình tạo số ngẫu nhiên. Để biết thông tin chi tiết, hãy xem phần tạo dữ liệu ngẫu nhiên

  • 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ừ trình tạo số ngẫu nhiên trong mỗi lần chạy. Các thư viện học máy 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 tính năng kiểm soát phiên bản, ngay cả đối với các lần lặp lại sơ bộ, để bạn có thể xác định chính xác mã và tham số khi điều tra mô hình hoặc quy trình của mình.

Ngay cả sau khi tuân thủ các nguyên tắc này, các nguồn không xác định khác vẫn có thể tồn tại.

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

Bạn kiểm thử bản cập nhật cho lệnh gọi API bằng cách nào? Bạn có thể huấn luyện lại mô hình, nhưng việc này sẽ tốn nhiều thời gian. Thay vào đó, hãy viết một chương 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 duy nhất của thuật toán hạ gradient. Nếu bước này hoàn tất mà không có lỗi, thì mọi nội dung cập nhật đối với API có thể đều 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 của quy trình

Trong quy trình học máy, 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 kiểm thử tích hợp chạy toàn bộ quy trình từ đầu đến cuối.

Ngoài việc liên tục chạy kiểm thử tích hợp, bạn nên chạy kiểm thử tích hợp khi đẩy các mô hình mới và phiên bản phần mềm mới. Việc chạy toàn bộ quy trình chậm 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ác bài kiểm thử tích hợp nhanh hơn, hãy huấn luyện trên một tập hợp con dữ liệu hoặc với một mô hình đơn giản hơn. Thông tin chi tiết phụ 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 các chương trình kiểm thử nhanh hơn để chạy với mọi phiên bản mới của mô hình hoặc phần mềm. Trong khi đó, các kiểm thử 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 đẩy phiên bản mô hình mới lên môi trường phát hành chính thức, hãy kiểm thử hai loại suy giảm chất lượng sau:

  • Độ phân giải giảm đột ngột. Lỗi trong 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.

  • Sự suy giảm chậm. Quy trình kiểm thử của bạn về sự suy giảm đột ngột có thể không phát hiện được sự suy giảm chất lượng mô hình từ từ trên nhiều phiên bản. Thay vào đó, hãy đảm bảo rằng 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 và đảm bảo mô hình của bạn 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 của cơ sở hạ tầng với mô hình 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ó thể có các phần phụ thuộc 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 đưa mô hình vào phiên bản hộp cát của máy chủ.