Trong học máy sản xuất, mục tiêu không phải là xây dựng một mô hình duy nhất và triển khai mô hình đó. Mục tiêu là xây dựng các quy trình tự động để phát triển, kiểm thử và triển khai các mô hình theo thời gian. Tại sao? Khi thế giới thay đổi, các xu hướng trong dữ liệu cũng thay đổi, khiến các mô hình trong quá trình sản xuất trở nên lỗi thời. Các mô hình thường cần được huấn luyện lại bằng dữ liệu mới nhất để tiếp tục đưa ra những dự đoán chất lượng cao trong thời gian dài. Nói cách khác, bạn sẽ muốn có cách thay thế các mô hình cũ bằng các mô hình mới.
Nếu không có quy trình, việc thay thế một mô hình cũ là một quy trình dễ xảy ra lỗi. Ví dụ: sau khi một mô hình bắt đầu đưa ra các dự đoán không chính xác, một người nào đó sẽ cần thu thập và xử lý dữ liệu mới theo cách thủ công, đào tạo một mô hình mới, xác thực chất lượng của mô hình đó, rồi cuối cùng triển khai mô hình. Các quy trình ML tự động hoá nhiều quy trình lặp đi lặp lại này, giúp việc quản lý và duy trì các mô hình trở nên hiệu quả và đáng tin cậy hơn.
Xây dựng quy trình
Các quy trình học máy sắp xếp các bước xây dựng và triển khai mô hình thành các tác vụ được xác định rõ ràng. Các quy trình có một trong hai chức năng: phân phối các dự đoán hoặc cập nhật mô hình.
Đưa ra thông tin dự đoán
Quy trình phân phát cung cấp các dự đoán. Việc này sẽ đưa mô hình của bạn ra thế giới thực, giúp người dùng có thể truy cập vào mô hình đó. Ví dụ: khi người dùng muốn biết thông tin dự đoán (thời tiết ngày mai, thời gian di chuyển đến sân bay hoặc danh sách video được đề xuất), quy trình phân phát sẽ nhận và xử lý dữ liệu của người dùng, đưa ra thông tin dự đoán rồi phân phát thông tin đó cho người dùng.
Cập nhật mô hình
Các mô hình thường trở nên lỗi thời gần như ngay lập tức sau khi được đưa vào sử dụng. Về cơ bản, họ đang dự đoán bằng thông tin cũ. Tập dữ liệu huấn luyện của các mô hình này ghi lại trạng thái của thế giới một ngày trước hoặc trong một số trường hợp là một giờ trước. Thế giới đã thay đổi: người dùng xem nhiều video hơn và cần một danh sách đề xuất mới; mưa khiến giao thông chậm lại và người dùng cần thông tin ước tính mới về thời gian đến; một xu hướng phổ biến khiến các nhà bán lẻ yêu cầu thông tin dự đoán mới về kho hàng cho một số mặt hàng.
Thông thường, các nhóm sẽ huấn luyện các mô hình mới trước khi mô hình sản xuất trở nên lỗi thời. Trong một số trường hợp, các nhóm huấn luyện và triển khai mô hình mới hằng ngày trong một chu kỳ huấn luyện và triển khai liên tục. Tốt nhất là bạn nên huấn luyện một mô hình mới trước khi mô hình sản xuất trở nên lỗi thời.
Các quy trình sau đây hoạt động cùng nhau để huấn luyện một mô hình mới:
- Dịch vụ xử lý dữ liệu. Quy trình xử lý dữ liệu sẽ xử lý dữ liệu người dùng để tạo tập dữ liệu huấn luyện và kiểm thử.
- Quy trình huấn luyện. Quy trình huấn luyện sẽ huấn luyện các mô hình bằng cách sử dụng tập dữ liệu huấn luyện mới từ quy trình dữ liệu.
- Quy trình xác thực. Quy trình xác thực sẽ xác thực mô hình đã huấn luyện bằng cách so sánh mô hình đó với mô hình sản xuất bằng cách sử dụng tập dữ liệu kiểm thử do quy trình dữ liệu tạo ra.
Hình 4 minh hoạ các đầu vào và đầu ra của từng quy trình ML.
Các quy trình ML
Hình 4. Các quy trình ML tự động hoá nhiều quy trình để phát triển và duy trì các mô hình. Mỗi quy trình cho thấy đầu vào và đầu ra của quy trình đó.
Ở cấp độ rất chung, sau đây là cách các quy trình duy trì một mô hình mới trong quá trình sản xuất:
Trước tiên, một mô hình sẽ được đưa vào sản xuất và quy trình phân phát bắt đầu phân phối các dự đoán.
Quy trình dữ liệu sẽ bắt đầu thu thập dữ liệu ngay lập tức để tạo tập dữ liệu huấn luyện và kiểm thử mới.
Dựa trên lịch biểu hoặc điều kiện kích hoạt, các quy trình huấn luyện và xác thực sẽ huấn luyện và xác thực một mô hình mới bằng cách sử dụng các tập dữ liệu do quy trình dữ liệu tạo ra.
Khi quy trình xác thực xác nhận rằng mô hình mới không tệ hơn mô hình sản xuất, mô hình mới sẽ được triển khai.
Quá trình này lặp lại liên tục.
Độ cũ của mô hình và tần suất huấn luyện
Hầu hết các mô hình đều trở nên lỗi thời. Một số mô hình nhanh chóng trở nên lỗi thời hơn những mô hình khác. Ví dụ: các mô hình đề xuất quần áo thường nhanh chóng trở nên lỗi thời vì người tiêu dùng nổi tiếng là thường xuyên thay đổi lựa chọn ưu tiên. Mặt khác, các mô hình xác định hoa có thể không bao giờ lỗi thời. Các đặc điểm nhận dạng của một bông hoa vẫn ổn định.
Hầu hết các mô hình đều bắt đầu trở nên lỗi thời ngay sau khi được đưa vào sản xuất. Bạn nên thiết lập tần suất huấn luyện phản ánh bản chất dữ liệu của mình. Nếu dữ liệu là dữ liệu động, hãy thường xuyên huấn luyện. Nếu ít năng động hơn, bạn có thể không cần huấn luyện thường xuyên.
Huấn luyện mô hình trước khi chúng trở nên lỗi thời. Việc huấn luyện sớm giúp bạn có thời gian để giải quyết các vấn đề tiềm ẩn, chẳng hạn như nếu dữ liệu hoặc quy trình huấn luyện không thành công hoặc chất lượng mô hình kém.
Phương pháp hay nhất nên dùng là huấn luyện và triển khai các mô hình mới hằng ngày. Giống như các dự án phần mềm thông thường có quy trình tạo và phát hành hằng ngày, các quy trình ML để huấn luyện và xác thực thường hoạt động hiệu quả nhất khi chạy hằng ngày.
Kiểm tra mức độ hiểu biết của bạn
Quy trình phân phát
Quy trình phân phát tạo và phân phối các dự đoán theo một trong hai cách: trực tuyến hoặc ngoại tuyến.
Cụm từ gợi ý trực tuyến. Dự đoán trực tuyến diễn ra theo thời gian thực, thường là bằng cách gửi yêu cầu đến một máy chủ trực tuyến và trả về một dự đoán. Ví dụ: khi người dùng muốn có một dự đoán, dữ liệu của người dùng sẽ được gửi đến mô hình và mô hình sẽ trả về dự đoán.
Cụm từ gợi ý ngoại tuyến. Thông tin dự đoán ngoại tuyến được tính toán trước và lưu vào bộ nhớ đệm. Để phân phát một dự đoán, ứng dụng sẽ tìm thấy dự đoán được lưu vào bộ nhớ đệm trong cơ sở dữ liệu và trả về dự đoán đó. Ví dụ: một dịch vụ dựa trên gói thuê bao có thể dự đoán tỷ lệ rời bỏ của người đăng ký. Mô hình này dự đoán khả năng rời bỏ của từng người đăng ký và lưu trữ thông tin đó vào bộ nhớ đệm. Khi cần thông tin dự đoán (ví dụ: để khuyến khích những người dùng có thể sắp rời bỏ), ứng dụng chỉ cần tra cứu thông tin dự đoán đã tính toán trước.
Hình 5 cho thấy cách tạo và phân phối các dự đoán trực tuyến và ngoại tuyến.
Dự đoán trực tuyến và ngoại tuyến
Hình 5. Dự đoán trực tuyến cung cấp thông tin dự đoán theo thời gian thực. Các đề xuất ngoại tuyến được lưu vào bộ nhớ đệm và tra cứu tại thời điểm phân phát.
Hậu xử lý dự đoán
Thông thường, các dự đoán sẽ được xử lý hậu kỳ trước khi được phân phối. Ví dụ: các dự đoán có thể được xử lý hậu kỳ để loại bỏ nội dung độc hại hoặc thiên vị. Kết quả phân loại có thểtrải qua một quy trìnhđể sắp xếp lại kết quả thay vì hiển thị đầu ra thô của mô hình, chẳng hạn như để tăng cường nội dung có thẩm quyền hơn, trình bày nhiều kết quả, hạ cấp một số kết quả (chẳng hạn như nội dung câu kéo) hoặc xoá kết quả vì lý do pháp lý.
Hình 6 cho thấy một quy trình phân phát và các tác vụ điển hình liên quan đến việc phân phối các dự đoán.
Cụm từ gợi ý sau khi xử lý
Hình 6. Quy trình phân phát minh hoạ các tác vụ điển hình liên quan đến việc phân phối thông tin dự đoán.
Xin lưu ý rằng bước thiết kế tính năng thường được xây dựng trong mô hình chứ không phải là một quy trình riêng biệt, độc lập. Mã xử lý dữ liệu trong quy trình phân phát thường gần giống với mã xử lý dữ liệu mà quy trình dữ liệu dùng để tạo tập dữ liệu huấn luyện và kiểm thử.
Lưu trữ tài sản và siêu dữ liệu
Quy trình phân phát phải kết hợp một kho lưu trữ để ghi lại các dự đoán về mô hình và nếu có thể, cả dữ liệu thực tế.
Việc ghi lại các dự đoán của mô hình giúp bạn theo dõi chất lượng của mô hình. Bằng cách tổng hợp các dự đoán, bạn có thể theo dõi chất lượng chung của mô hình và xác định xem mô hình có bắt đầu giảm chất lượng hay không. Nhìn chung, các dự đoán của mô hình sản xuất phải có giá trị trung bình giống như các nhãn trong tập dữ liệu huấn luyện. Để biết thêm thông tin, hãy xem phần độ lệch dự đoán.
Ghi lại thông tin thực tế
Trong một số trường hợp, thông tin thực tế chỉ có được sau này. Ví dụ: nếu một ứng dụng thời tiết dự đoán thời tiết trong 6 tuần tới, thì dữ liệu thực tế (thời tiết thực tế) sẽ không có sẵn trong 6 tuần.
Nếu có thể, hãy yêu cầu người dùng báo cáo thông tin chính xác bằng cách thêm cơ chế phản hồi vào ứng dụng. Ứng dụng thư có thể ngầm thu thập ý kiến phản hồi của người dùng khi người dùng di chuyển thư từ hộp thư đến vào thư mục thư rác. Tuy nhiên, điều này chỉ hiệu quả khi người dùng phân loại thư chính xác. Khi người dùng để lại thư rác trong hộp thư đến (vì họ biết đó là thư rác và không bao giờ mở thư đó), dữ liệu huấn luyện sẽ trở nên không chính xác. Thư đó sẽ được gắn nhãn "không phải thư rác" trong khi đáng lẽ phải là "thư rác". Nói cách khác, hãy luôn cố gắng tìm cách thu thập và ghi lại dữ liệu thực tế, nhưng hãy lưu ý đến những thiếu sót có thể tồn tại trong các cơ chế phản hồi.
Hình 7 cho thấy các dự đoán được gửi đến người dùng và được ghi vào một kho lưu trữ.
Ghi nhật ký dự đoán
Hình 7. Ghi lại thông tin dự đoán để theo dõi chất lượng mô hình.
Quy trình dữ liệu
Các quy trình dữ liệu tạo tập dữ liệu huấn luyện và kiểm thử từ dữ liệu ứng dụng. Sau đó, các quy trình huấn luyện và xác thực sẽ sử dụng các tập dữ liệu này để huấn luyện và xác thực các mô hình mới.
Quy trình dữ liệu tạo tập dữ liệu huấn luyện và kiểm thử có cùng các đặc điểm và nhãn được dùng ban đầu để huấn luyện mô hình, nhưng có thông tin mới hơn. Ví dụ: một ứng dụng bản đồ sẽ tạo tập dữ liệu huấn luyện và kiểm thử từ thời gian di chuyển gần đây giữa các điểm cho hàng triệu người dùng, cùng với các dữ liệu liên quan khác, chẳng hạn như thời tiết.
Một ứng dụng đề xuất video sẽ tạo ra các tập dữ liệu huấn luyện và kiểm thử, bao gồm những video mà người dùng đã nhấp vào trong danh sách đề xuất (cùng với những video không được nhấp vào), cũng như các dữ liệu liên quan khác, chẳng hạn như nhật ký xem.
Hình 8 minh hoạ quy trình dữ liệu sử dụng dữ liệu ứng dụng để tạo tập dữ liệu huấn luyện và kiểm thử.
Quy trình xử lý dữ liệu
Hình 8. Quy trình xử lý dữ liệu của quy trình dữ liệu sẽ tạo tập dữ liệu cho quy trình đào tạo và xác thực.
Thu thập và xử lý dữ liệu
Các tác vụ thu thập và xử lý dữ liệu trong quy trình dữ liệu có thể sẽ khác với giai đoạn thử nghiệm (khi bạn xác định rằng giải pháp của mình là khả thi):
Thu thập dữ liệu. Trong quá trình thử nghiệm, việc thu thập dữ liệu thường yêu cầu truy cập vào dữ liệu đã lưu. Đối với quy trình truyền dữ liệu, việc thu thập dữ liệu có thể yêu cầu bạn khám phá và nhận được sự phê duyệt để truy cập vào dữ liệu nhật ký truyền phát trực tiếp.
Nếu cần dữ liệu được gắn nhãn bởi con người (chẳng hạn như hình ảnh y tế), bạn cũng cần có quy trình thu thập và cập nhật dữ liệu đó.
Xử lý dữ liệu. Trong quá trình thử nghiệm, các tính năng phù hợp được lấy từ việc trích xuất, kết hợp và lấy mẫu các tập dữ liệu thử nghiệm. Đối với các quy trình dữ liệu, việc tạo những tính năng tương tự có thể đòi hỏi các quy trình hoàn toàn khác nhau. Tuy nhiên, hãy nhớ sao chép các phép biến đổi dữ liệu từ giai đoạn thử nghiệm bằng cách áp dụng các phép toán tương tự cho các đối tượng và nhãn.
Lưu trữ tài sản và siêu dữ liệu
Bạn sẽ cần một quy trình để lưu trữ, tạo phiên bản và quản lý các tập dữ liệu huấn luyện và kiểm thử. Kho lưu trữ được kiểm soát phiên bản mang lại những lợi ích sau:
Khả năng tái tạo. Tạo lại và chuẩn hoá môi trường huấn luyện mô hình, đồng thời so sánh chất lượng dự đoán giữa các mô hình.
Tuân thủ. Tuân thủ các yêu cầu về việc tuân thủ quy định để đảm bảo khả năng kiểm tra và tính minh bạch.
Tỷ lệ giữ chân. Đặt giá trị lưu giữ dữ liệu cho khoảng thời gian lưu trữ dữ liệu.
Quản lý quyền truy cập. Quản lý những người có thể truy cập vào dữ liệu của bạn thông qua các quyền chi tiết.
Tính toàn vẹn của dữ liệu. Theo dõi và nắm bắt những thay đổi đối với tập dữ liệu theo thời gian, giúp bạn dễ dàng chẩn đoán các vấn đề về dữ liệu hoặc mô hình của mình.
Khả năng tìm thấy. Giúp người khác dễ dàng tìm thấy các tập dữ liệu và đối tượng của bạn. Sau đó, các nhóm khác có thể xác định xem những chỉ số này có hữu ích cho mục đích của họ hay không.
Ghi lại dữ liệu của bạn
Tài liệu đầy đủ giúp người khác hiểu được thông tin chính về dữ liệu của bạn, chẳng hạn như loại, nguồn, kích thước và các siêu dữ liệu thiết yếu khác. Trong hầu hết các trường hợp, việc ghi lại dữ liệu của bạn trong tài liệu thiết kế là đủ. Nếu bạn dự định chia sẻ hoặc xuất bản dữ liệu, hãy sử dụng thẻ dữ liệu để cấu trúc thông tin. Thẻ dữ liệu giúp người khác dễ dàng khám phá và hiểu các tập dữ liệu của bạn.
Các quy trình đào tạo và xác thực
Các quy trình huấn luyện và xác thực tạo ra các mô hình mới để thay thế các mô hình sản xuất trước khi chúng trở nên lỗi thời. Việc liên tục huấn luyện và xác thực các mô hình mới đảm bảo mô hình tốt nhất luôn được đưa vào sản xuất.
Quy trình huấn luyện tạo ra một mô hình mới từ các tập dữ liệu huấn luyện và quy trình xác thực sẽ so sánh chất lượng của mô hình mới với mô hình đang được sử dụng bằng cách dùng các tập dữ liệu kiểm thử.
Hình 9 minh hoạ quy trình huấn luyện bằng cách sử dụng một tập dữ liệu huấn luyện để huấn luyện một mô hình mới.
Quy trình huấn luyện
Hình 9. Quy trình huấn luyện sẽ huấn luyện các mô hình mới bằng cách sử dụng tập dữ liệu huấn luyện gần đây nhất.
Sau khi mô hình được huấn luyện, quy trình xác thực sẽ sử dụng các tập dữ liệu kiểm thử để so sánh chất lượng của mô hình sản xuất với mô hình đã huấn luyện.
Nhìn chung, nếu mô hình được huấn luyện không tệ hơn đáng kể so với mô hình sản xuất, thì mô hình được huấn luyện sẽ được đưa vào sản xuất. Nếu mô hình đã huấn luyện kém hơn, thì cơ sở hạ tầng giám sát sẽ tạo một cảnh báo. Các mô hình được huấn luyện có chất lượng dự đoán kém có thể cho thấy các vấn đề tiềm ẩn với dữ liệu hoặc quy trình xác thực. Phương pháp này giúp đảm bảo mô hình tốt nhất, được huấn luyện dựa trên dữ liệu mới nhất, luôn được đưa vào sản xuất.
Lưu trữ tài sản và siêu dữ liệu
Các mô hình và siêu dữ liệu của chúng phải được lưu trữ trong các kho lưu trữ có phiên bản để sắp xếp và theo dõi việc triển khai mô hình. Kho lưu trữ mô hình mang lại những lợi ích sau:
Theo dõi và đánh giá. Theo dõi các mô hình đang được sản xuất và nắm được các chỉ số đánh giá và dự đoán chất lượng của mô hình.
Quy trình phát hành mô hình. Dễ dàng xem xét, phê duyệt, phát hành hoặc khôi phục các mô hình.
Khả năng tái tạo và gỡ lỗi. Tái tạo kết quả mô hình và gỡ lỗi hiệu quả hơn bằng cách theo dõi các tập dữ liệu và phần phụ thuộc của mô hình trên các lượt triển khai.
Khả năng tìm thấy. Giúp người khác dễ dàng tìm thấy mô hình của bạn. Sau đó, các nhóm khác có thể xác định xem mô hình của bạn (hoặc các phần của mô hình) có thể được sử dụng cho mục đích của họ hay không.
Hình 10 minh hoạ một mô hình đã xác thực được lưu trữ trong kho lưu trữ mô hình.
Bộ nhớ của mẫu
Hình 10. Các mô hình đã xác thực được lưu trữ trong một kho lưu trữ mô hình để theo dõi và dễ dàng phát hiện.
Sử dụng thẻ mô hình để ghi lại và chia sẻ thông tin chính về mô hình của bạn, chẳng hạn như mục đích, cấu trúc, yêu cầu về phần cứng, chỉ số đánh giá, v.v.
Kiểm tra mức độ hiểu biết của bạn
Thách thức khi xây dựng quy trình
Khi xây dựng quy trình, bạn có thể gặp phải những thách thức sau:
Truy cập vào dữ liệu bạn cần. Để truy cập vào dữ liệu, bạn có thể phải giải thích lý do cần truy cập. Ví dụ: bạn có thể cần giải thích cách dữ liệu sẽ được sử dụng và làm rõ cách giải quyết các vấn đề về thông tin nhận dạng cá nhân (PII). Hãy chuẩn bị sẵn sàng để trình bày một bản chứng minh khái niệm cho thấy cách mô hình của bạn đưa ra dự đoán chính xác hơn khi có quyền truy cập vào một số loại dữ liệu.
Sử dụng các tính năng phù hợp. Trong một số trường hợp, các tính năng được dùng trong giai đoạn thử nghiệm sẽ không có trong dữ liệu theo thời gian thực. Do đó, khi thử nghiệm, hãy cố gắng xác nhận rằng bạn sẽ có thể nhận được các tính năng tương tự trong giai đoạn phát hành chính thức.
Tìm hiểu cách dữ liệu được thu thập và trình bày. Việc tìm hiểu cách dữ liệu được thu thập, ai thu thập và cách dữ liệu được thu thập (cùng với các vấn đề khác) có thể tốn thời gian và công sức. Bạn cần phải hiểu rõ dữ liệu. Đừng sử dụng dữ liệu mà bạn không tin tưởng để huấn luyện một mô hình có thể được đưa vào sản xuất.
Hiểu rõ các lựa chọn đánh đổi giữa công sức, chi phí và chất lượng mô hình. Việc kết hợp một tính năng mới vào quy trình dữ liệu có thể đòi hỏi nhiều công sức. Tuy nhiên, tính năng bổ sung này có thể chỉ cải thiện một chút chất lượng của mô hình. Trong những trường hợp khác, việc thêm một tính năng mới có thể dễ dàng. Tuy nhiên, các tài nguyên để lấy và lưu trữ tính năng này có thể quá tốn kém.
Nhận tài nguyên tính toán. Nếu cần TPU để huấn luyện lại, bạn có thể khó nhận được hạn mức cần thiết. Ngoài ra, việc quản lý TPU cũng phức tạp. Ví dụ: một số phần của mô hình hoặc dữ liệu có thể cần được thiết kế riêng cho TPU bằng cách chia các phần của chúng trên nhiều chip TPU.
Tìm tập dữ liệu vàng phù hợp. Nếu dữ liệu thay đổi thường xuyên, thì việc nhận được các tập dữ liệu vàng với nhãn nhất quán và chính xác có thể là một thách thức.
Việc phát hiện những loại vấn đề này trong quá trình thử nghiệm sẽ giúp bạn tiết kiệm thời gian. Ví dụ: bạn không muốn phát triển các tính năng và mô hình tốt nhất chỉ để biết rằng chúng không khả thi trong quá trình sản xuất. Do đó, hãy cố gắng xác nhận càng sớm càng tốt rằng giải pháp của bạn sẽ hoạt động trong các giới hạn của môi trường sản xuất. Bạn nên dành thời gian xác minh xem một giải pháp có hiệu quả hay không thay vì phải quay lại giai đoạn thử nghiệm vì giai đoạn quy trình đã phát hiện ra những vấn đề không thể khắc phục.