Overview
- MLOps là gì?: MLOps (Machine Learning Operations) là một tập hợp các thực hành kết hợp giữa DevOps (Development Operations) và học máy, nhằm mục đích tự động hóa và tối ưu hóa quy trình phát triển và triển khai mô hình học máy. MLOps giúp quản lý toàn bộ vòng đời của các mô hình học máy, từ giai đoạn phát triển, triển khai đến bảo trì, đảm bảo hiệu quả và tính liên tục của quá trình này.
- Tầm Quan Trọng của MLOps Tooling: Các công cụ và phần mềm trong MLOps (gọi tắt là MLOps Tooling) đóng vai trò quan trọng trong việc hỗ trợ quản lý và tự động hóa các công đoạn khác nhau trong vòng đời của mô hình học máy. Nhờ vào MLOps Tooling, các nhóm phát triển có thể dễ dàng triển khai, giám sát, và bảo trì mô hình của mình một cách hiệu quả.
- Một pipeline MLOps điển hình thường bao gồm các bước sau đây:
Tooling
CI/CD for Machine Learning
- Công cụ thực hiện CI/CD cho Machine Learning.
- Github Actions: Tự động hóa, tùy chỉnh và thực thi quy trình phát triển phần mềm ngay trong Repo code sử dụng GitHub Actions.
- Clear ML: CI/CD Auto-Magical để hợp lý workflow ML.
Cron Job Monitoring
- Công cụ giám sát cron jobs (recurring jobs)
- Cronitor: Cho phép monitor bất kỳ cron-job hoặc scheduled task nào.
Data Catalog
- Công cụ cho data cataloging
- Apache Atlas: Cung cấp khả năng quản lý và quản lý siêu dữ liệu mở để xây dựng một data catalog.
Data Enrichment
- Công cụ và thư viện để làm giàu dữ liệu (data enrichment)
- Snorkel: Một hệ thống tạo dữ liệu training nhanh chóng thông qua phương pháp gọi là "weak supervision" (giám sát yếu).
- Weak Supervision (Giám Sát Yếu): Thay vì sử dụng dữ liệu đã được gán nhãn thủ công và chính xác bởi con người (cách tiếp cận truyền thống và tốn nhiều thời gian), weak supervision sử dụng các nguồn dữ liệu khác nhau để gán nhãn cho dữ liệu. Các nguồn này có thể bao gồm:
- Các quy tắc gán nhãn thủ công: Ví dụ, bạn có thể viết các quy tắc đơn giản để gán nhãn cho dữ liệu dựa trên một số đặc điểm nhất định.
- Các mô hình học máy đã được huấn luyện: Sử dụng các mô hình hiện có để gán nhãn cho dữ liệu mới.
- Dữ liệu công khai: Sử dụng dữ liệu từ các nguồn công khai hoặc từ các chuyên gia trong lĩnh vực.
Exploratory Data Analysis
- Công cụ để thực hiện khám phá dữ liệu (explore data)
Data Management
- Công cụ thực hiện quản lý dữ liệu.
Vector Databases
- Công cụ lưu trữ VectorDB.
- Milvus: một công cụ mã nguồn mở để tìm kiếm embedding vector tương đồng, được hỗ trợ bởi các thư viện như Faiss, NMSLIB và Annoy.
- Pinecone: một công cụ mã nguồn mở để tìm kiếm embedding vector tương đồng được quản lý và phân tán, cung cấp SDK nhẹ để tích hợp dễ dàng vào các ứng dụng.
- Qdrant: một công cụ mã nguồn mở cho tìm kiếm embedding vector tương đồng, với hỗ trợ các filter mở rộng.
- Opensearch
Data Processing
- Các công cụ liên quan đến xử lý dữ liệu (data processing) và data pipeline
- Airflow: Nền tảng cho phép lập trình, lên lịch và giám sát các luồng công việc (workflows) một cách tự động và dễ dàng.
- Hadoop: Một framework cho phép xử lý dữ liệu lớn phân tán trên các cụm máy tính, giúp quản lý và phân tích dữ liệu hiệu quả.
- Spark: Công cụ phân tích dữ liệu hợp nhất, mạnh mẽ, giúp xử lý dữ liệu lớn với tốc độ cao và khả năng mở rộng lớn.
Data Validation
- Các công cụ liên quan đến xác thực dữ liệu (data validation)
- Cerberus: Thư viện Python nhẹ và có thể mở rộng, dùng để xác thực dữ liệu (data validation).
- Cleanlab: Thư viện Python cho AI và ML, tập trung vào xử lý dữ liệu và nhãn không hoàn hảo, thường gặp trong thực tế.
- Great Expectations: Framework xác thực dữ liệu bằng Python, cho phép kiểm tra dữ liệu của bạn dựa trên các tập dữ liệu khác.
Data Visualization
- Công cụ trực quan hóa dữ liệu, báo cáo (report) và dashboards.
- Tableau: Công cụ trực quan hóa dữ liệu mạnh mẽ và phát triển nhanh nhất được sử dụng trong business intelligence.
Drift Detection
- Các công cụ và thư viện liên quan đến phát hiện phát hiện sự thay đổi trong phân phối dữ liệu đầu vào hoặc đầu ra theo thời gian. Mục tiêu là xác định khi nào mô hình bắt đầu hoạt động kém hiệu quả do sự thay đổi này, để có thể thực hiện các biện pháp cần thiết như huấn luyện lại mô hình hoặc điều chỉnh các tham số.
- TorchDrift: Thư viện data và concept drift của Pytorch.
Feature Engineering
- Các công cụ và thư viện liên quan đến feature engineering
- Featuretools: Thư viện Python cho kỹ thuật auto feature engineering.
Feature Store
- Các công cụ quản lý và cung cấp dữ liệu đặc trưng (features) cho các mô hình
- Feast: Một Feature Store mã nguồn mở cung cấp giải pháp đầu-cuối (end-to-end) cho ML, giúp quản lý và cung cấp các dữ liệu đặc trưng một cách tự động và dễ dàng.
Hyperparameter Tuning
- Các công cụ và thư viện để thực hiện điều chỉnh (tuning) hyperparameter.
Model Lifecycle
- Công cụ quản lý vòng đời mô hình (tracking experiments, parameters và metrics).
- Aim: Một cách siêu dễ dàng để ghi lại, tìm kiếm và so sánh hàng ngàn lần chạy huấn luyện mô hình ML.
- Mlflow: Nền tảng mã nguồn mở cho toàn bộ vòng đời của ML, từ quản lý thực nghiệm đến triển khai và theo dõi mô hình.
- Neptune AI: Công cụ quản lý thực nghiệm nhẹ nhất, phù hợp với bất kỳ quy trình làm việc nào.
- Weights and Biases: Công cụ trực quan hóa và theo dõi các thử nghiệm ML.
Model Serving
- Công cụ để serving models trong môi trường production.
Model Testing & Validation
- Công cụ để testing và validate mô hình.
- Deepchecks: Open-source package để xác thực các mô hình và dữ liệu ML. Nó cũng giúp phát hành ứng dụng LLM chất lượng cao nhanh chóng mà không ảnh hưởng đến việc kiểm tra, tránh bị cản trở bởi sự phức tạp và tính chủ quan của các tương tác LLM.
Simplification Tools
- Các công cụ liên quan đến đơn giản hóa và tiêu chuẩn hóa ML.
Đọc thêm
-
Một số repo github lưu trữ tài liệu để bạn có thể tìm hiểu thêm về MLOps
- Awesome MLOps: Tools: Danh sách các tools dành cho MLOps.
Hy vọng, việc listing các công cụ sẽ giúp các bạn dễ dàng có cái nhìn tổng quan và biết cách để tìm hiểu, đi sâu hơn vào một framework phù hợp với nhu cầu của bạn đang cần.