Last chance! 50% off DataCamp Premium
Sale ends in
Ngày nay, có quá nhiều mô hình machine learning không được triển khai vào môi trường sản xuất và chỉ dừng lại trong các phòng thí nghiệm dữ liệu. Cũng như bất kỳ lĩnh vực mới nổi nào, bộ thực tiễn tốt nhất, công cụ, kỹ thuật và vai trò mà các đội ngũ dữ liệu hiện đại cần áp dụng vẫn chưa trưởng thành và tiêu chuẩn hóa. Điều này gây khó khăn cho doanh nghiệp muốn khai thác giá trị từ machine learning ở quy mô lớn, và cho các nhà khoa học dữ liệu muốn tiến xa hơn các thử nghiệm trong notebook. MLOps (Machine Learning Operations) đã xuất hiện trong vài năm qua với mục tiêu giải quyết những thách thức khi triển khai mà các đội ngũ dữ liệu đang gặp phải.
Manh mối nằm ngay trong tên gọi: cũng như DevOps đã định hình phát triển ứng dụng Agile nhanh chóng xoay quanh nhu cầu kinh doanh, MLOps hướng tới mục tiêu tương tự bằng cách thu hẹp khoảng cách giữa sự phức tạp và việc triển khai các mô hình machine learning.
Vậy chính xác MLOps giải quyết những thách thức này như thế nào? Trong bài viết này, chúng tôi muốn làm sáng tỏ một số khái niệm về MLOps như một ngành mới nổi và trả lời các câu hỏi then chốt như
Alessya Visnjic, CEO của WhyLabs, một startup MLOps tập trung vào giám sát mô hình, đã mô tả rất đúng về MLOps như là “bộ công cụ, thực tiễn, kỹ thuật, văn hóa và tư duy đảm bảo triển khai các hệ thống machine learning một cách đáng tin cậy và có khả năng mở rộng”.
Đặt định nghĩa này vào bối cảnh, MLOps xây dựng dựa trên DevOps, thực hành hiện đại về viết, triển khai và vận hành các ứng dụng doanh nghiệp một cách hiệu quả. Đây là một quy trình liên chức năng, hợp tác và lặp đi lặp lại nhằm vận hành hóa khoa học dữ liệu. MLOps coi machine learning như một ngành kỹ thuật, trong đó các mô hình được xem là các hiện vật phần mềm có thể tái sử dụng và có thể triển khai thông qua một quy trình có thể lặp lại.
MLOps cũng bao gồm việc giám sát liên tục và huấn luyện lại các mô hình trong môi trường sản xuất để đảm bảo chúng hoạt động tối ưu khi dữ liệu thay đổi theo thời gian, hiện tượng còn được gọi là trôi dạt dữ liệu (data drift).
Tóm lại, MLOps cho phép đội ngũ dữ liệu mở rộng giá trị mà họ mang lại bằng cách cho phép:
Quay lại định nghĩa của Visnjic về MLOps, những điều trên đòi hỏi vừa đổi mới công cụ cho các đội ngũ dữ liệu hiện đại, vừa chuyển đổi tư duy đối với nhiều nhà khoa học dữ liệu ngày nay.
Chúng ta đã đề cập cách MLOps nhằm giải quyết thách thức triển khai cho nhiều đội ngũ dữ liệu hiện nay. Tuy nhiên, điều gì khiến machine learning trở nên đặc thù đến mức cần các chức năng vận hành chuyên biệt như MLOps?
Ứng dụng Machine Learning khác biệt căn bản so với phần mềm truyền thống. Dưới đây là một số thách thức đáng kể mà các tổ chức gặp phải khi triển khai hệ thống machine learning vào sản xuất.
Ở phần trước, chúng ta đã phân tích vì sao machine learning cần một chức năng vận hành chuyên biệt. Tuy nhiên, MLOps khác gì với DevOps trên thực tế?
DevOps là sự kết hợp của Development (Dev) và Operations (Ops). Nó kết hợp hai chức năng thiết yếu của bộ phận CNTT: phát triển ứng dụng và kỹ thuật hệ thống. DevOps cố gắng rút ngắn vòng đời phát triển—và tăng tốc độ đầu ra cho các đội kỹ sư phần mềm. Điều này được thực hiện bằng cách đưa vào tự động hóa, cập nhật quy trình và phương thức làm việc cho đội phát triển. Rộng hơn, DevOps mang đến hai nguyên tắc cho quy trình phát triển phần mềm:
Với tính chất đặc thù của machine learning, dưới đây là một số cách thực tiễn mà MLOps khác với DevOps:
Với độ phức tạp bổ sung khi triển khai mô hình machine learning vào sản xuất—đội ngũ dữ liệu có thể bắt đầu áp dụng MLOps vào quy trình khoa học dữ liệu của mình như thế nào? Trong phần này, chúng tôi giới thiệu một cách tiếp cận từng bước được đơn giản hóa trong quy trình MLOps:
Trong các đội khoa học dữ liệu nhỏ, một người có thể đảm nhận nhiều vai trò. Tuy nhiên, trong các đội lớn hơn, quy trình hóa hơn, bạn có thể thấy nhiều vai trò và kỹ năng khác nhau phụ trách các thành phần khác nhau của quy trình MLOps. Các vai trò có thể được nhìn nhận như sau:
Như đã thảo luận trong suốt bài viết, MLOps vẫn là một lĩnh vực non trẻ với nhiều công cụ, thực tiễn tốt nhất và phương pháp luận còn đang hình thành. Phần này dành cho các cách khác nhau để bạn có thể bắt đầu với MLOps, các công cụ bạn có thể thử nghiệm và tài nguyên học tập bạn có thể bắt đầu ngay hôm nay.
Kubeflow: Kubeflow là một bộ công cụ để chạy các quy trình làm việc Machine Learning trên các cụm Kubernetes. Mục tiêu của Kubeflow là cho phép các giải pháp machine learning mã nguồn mở tốt nhất chạy trên cụm Kubernetes theo cách đơn giản, di động và có khả năng mở rộng. Ban đầu Kubeflow là bản triển khai mã nguồn mở của TensorFlow Extended (TFX), một nền tảng đầu-cuối để triển khai pipeline machine learning vào sản xuất. Do đó, Kubeflow cho phép đơn giản hóa việc thực thi các tác vụ TensorFlow trên KubernetesMLFlow: MLflow là một công cụ công nghiệp hóa quy trình phát triển đầu-cuối của các dự án Machine Learning. Mục tiêu của nó là đơn giản hóa việc phát triển các dự án Machine Learning trong doanh nghiệp bằng cách hỗ trợ theo dõi, tái lập, quản lý và triển khai mô hình.
Data Version Control (DVC): DVC (Data Version Control) là một gói Python giúp quản lý các dự án khoa học dữ liệu của bạn dễ dàng hơn. Công cụ này là một phần mở rộng của Git cho Machine Learning, như tuyên bố của cộng tác viên chính Dmitry Petrov trong bài thuyết trình này. DVC vừa tương đồng vừa bổ trợ cho Git.
Pachyderm: Pachyderm là một công cụ kiểm soát phiên bản cho machine learning và khoa học dữ liệu giống như DVC. Bên cạnh đó, nó dựa trên Docker và Kubernetes, giúp chạy và triển khai các dự án Machine Learning trên bất kỳ nền tảng đám mây nào. Ngoài ra, pachyderm đảm bảo tất cả dữ liệu được đưa vào mô hình machine learning đều có phiên bản và có thể truy vết.
Chúng tôi hy vọng bộ tài nguyên này sẽ giúp bạn khởi đầu hành trình học MLOps. Để xem thêm bài viết và tài nguyên về MLOps, bạn cũng có thể tham khảo các bài viết sau:
{count, plural, one {blog} other {blog}}
Matt Crabtree
10 phút