Theo Deeplearning.ai, chỉ có 22% các doanh nghiệp sử dụng học máy đã triển khai thành công mô hình của mình. Vậy điều gì làm cho nó khó đến vậy? Nguyên nhân ở đâu và MLOps giải bài toán này như thế nào?
Nhận diện thách thức
Đối với phát triển phần mềm theo cách truyền thống, một tập hợp các phương pháp được gọi là DevOps đã giúp đưa phần mềm vào sản xuất chỉ trong vài phút, đồng thời đảm bảo phần mềm hoạt động ổn định. DevOps dựa vào các công cụ, tự động hóa và quy trình làm việc để loại bỏ những sự cố bất ngờ và cho phép các nhà phát triển tập trung vào các vấn đề thực tế cần được giải quyết. Cách tiếp cận này đã trở nên phổ biến đối với rất nhiều doanh nghiệp. Vậy tại sao chúng lại không thể được áp dụng tương tự đối với Học máy?
Nguyên nhân là có sự khác biệt cơ bản giữa học máy (Machine Learning – ML) và phương pháp phân tích dữ liệu truyền thống. Học máy không chỉ là code, mà còn là code kết hợp với data (dữ liệu). Mô hình Học máy được tạo ra bằng cách điều chỉnh các tham số của mô hình sử dụng dữ liệu huấn luyện. Do đó, điều này sẽ ảnh hưởng đến hành vi của mô hình trong quá trình triển khai.
Mặc dù code được tạo ra một cách cẩn thận trong môi trường phát triển được kiểm soát, nhưng nguồn dữ liệu thực là vô tận, không ngừng thay đổi và nằm ngoài tầm quản lý. Có thể tưởng tượng, code và dữ liệu nằm trong các mặt phẳng riêng biệt, có cùng chiều thời gian nhưng độc lập về tất cả các yếu tố khác. Thách thức của học máy là làm sao tạo ra một cầu nối giữa hai mặt phẳng này một cách có kiểm soát.
Sự tách biệt cơ bản giữa code và dữ liệu gây ra một số thách thức quan trọng đối với việc triển khai các mô hình ML/AI trong thực tế, ví dụ như:
- Triển khai chậm, dễ gián đoạn và không nhất quán
- Thiếu khả năng tái tạo
- Giảm hiệu suất
Xác định giải pháp
Để tháo gỡ những khó khăn này, giải pháp được đưa ra là kết hợp các phương pháp thực tế từ DevOps, Data Engineering (kỹ thuật dữ liệu), và một số phương pháp đặc thù của Học máy. Và MLOps chính là giao điểm của ba thành tố này.
MLOps (machine learning operations) là sự kết hợp của Machine Learning (Học máy) và Operations (vận hành) nhằm mục đích triển khai và duy trì các hệ thống ML trong sản xuất một cách đáng tin cậy và hiệu quả.
MLOps tập hợp các phương pháp tự động hóa vòng đời của các thuật toán học máy trong quá trình sản xuất ở tất cả các bước xây dựng hệ thống ML, từ huấn luyện mô hình ban đầu đến triển khai và đào tạo lại dựa trên dữ liệu mới.
Để triển khai thành công MLOps, cần đảm bảo các yếu tố sau đây:
- Đội ngũ kết hợp. Một đội ngũ sản xuất ML sẽ bao gồm Nhà khoa học dữ liệu hoặc Kỹ sư ML, Kỹ sư DevOps và Kỹ sư dữ liệu.
- ML Pipelines: Phần lớn các mô hình sẽ cần 2 phiên bản pipelines để đào tạo và ứng dụng. Nguyên nhân là do thông thường, các định dạng dữ liệu và cách truy cập dữ liệu rất khác nhau giữa các thời điểm, đặc biệt đối với các mô hình chạy theo yêu cầu thời gian thực. ML Pipeline thuần túy là code và độc lập với các trường hợp dữ liệu cụ thể. Do đó, ML Pipeline dễ dàng theo dõi và kiểm soát các phiên bản, đồng thời tự động hóa việc triển khai với CI/CD pipeline. Điều này giúp liên kết code với dữ liệu theo cách có cấu trúc và tự động.
- Lập phiên bản mô hình và dữ liệu: Cần phải phiên bản hóa dữ liệu và liên kết từng mô hình được đào tạo với các phiên bản chính xác của code, dữ liệu và siêu tham số đã được sử dụng. Mô hình và siêu dữ liệu có thể được theo dõi trong hệ thống kiểm soát phiên bản tiêu chuẩn như Git.
- Đánh giá mô hình: Không có mô hình ML nào cho kết quả chính xác 100% cả, do đó, việc đánh giá mô hình thường mang tính thống kê nhiều hơn là quyết định đạt/không đạt.
- Đánh giá dữ liệu: Thông thường, đánh giá dữ liệu bao gồm định dạng và kích thước tệp, các giá trị rỗng hoặc không hợp lệ. Xác thực dữ liệu cũng tương tự như unit test trong code domain. Ngoài các xác nhận cơ bản mà bất kỳ Data Pipeline nào thực hiện, các ML pipeline cũng phải xác nhận các thuộc tính cấp cao hơn của dữ liệu đầu vào, như cách dữ liệu thay đổi trong thực tế hay những bất thường do cách xử lý dữ liệu gây ra.
- Giám sát: Giám sát hệ thống sản xuất là điều cần thiết để giữ cho chúng hoạt động tốt. Đối với các hệ thống ML, việc giám sát thậm chí còn trở nên quan trọng hơn, vì hiệu suất của chúng không chỉ phụ thuộc vào các yếu tố có thể kiểm soát, như cơ sở hạ tầng và phần mềm, mà còn dựa vào dữ liệu – yếu tố ít khả năng kiểm soát được. Do đó, ngoài việc theo dõi các số liệu tiêu chuẩn như độ trễ, lưu lượng truy cập, lỗi và độ bão hòa, chúng ta cũng cần theo dõi hiệu suất dự đoán mô hình.
Tổng kết
Các phương pháp chính của MLOps, cũng như mối liên hệ của chúng với các phương pháp DevOps và Kỹ thuật dữ liệu được tóm tắt lại trong bảng dưới đây.
DevOps | Data Engineering | MLOps | |
Quản lý phiên bản | Quản lý phiên bản code | Quản lý phiên bản codeData Lineage | Quản lý phiên bản codePhiên bản hóa dữ liệu Phiên bản hóa mô hình |
Pipeline | Không có | Data pipeline/ETL | Training ML PipelineServing ML Pipeline |
Đánh giá hành vi | unit test | Unit test | Đánh giá mô hình |
CI/CD | Triển khai code to production | Triển khai code to data pipeline | Triển khai code to production và Training ML Pipeline |
Xác thực dữ liệu | Không có | Xác thực định dạng và nghiệp vụ | Xác thực thống kê |
Giám sát | SLO | SLO | SLO + differential monitoring, statistical sliced monitoring |
(Nguồn tham khảo: Towards Data Science)