Post

Setup MLflow rồi để đó

Setup MLflow rồi để đó

Ăn Tết xong rồi, thử cài MLflow khởi động năm mới thôi 🐧. Một công cụ mạnh mẽ giúp quản lý và theo dõi quá trình huấn luyện mô hình Machine Learning.

1. Giới thiệu

Tổng quan về MLOps và MLflow, có thể tham khảo các tài liệu sau:

TL;DR:

  • MLOps (Machine Learning Operations) giống như cách chăm sóc cây cối. Khi trồng cây (tạo model ML), bạn không chỉ gieo hạt rồi để đó, mà còn phải tưới nước, bón phân và cắt tỉa để cây phát triển khỏe mạnh. MLOps giúp các mô hình AI hoạt động tốt bằng cách tự động hóa việc huấn luyện, kiểm tra, triển khai và bảo trì, giống như một hệ thống tưới nước tự động cho cây.
  • MLflow giống như một quyển sổ tay ghi chép về cách bạn trồng cây. Bạn có thể ghi lại loại hạt giống nào (model ML nào), tưới bao nhiêu nước (tham số mô hình), và cây phát triển thế nào (hiệu suất mô hình). Nhờ MLflow ta có thể kiểm tra và cải thiện mô hình dễ dàng.

2. Setup MLflow trên máy Ubuntu local

Yêu cầu:

  • Python >= 3.6
  • Pip (Python package installer)
  • Ubuntu
1
2
sudo apt update
sudo apt install python3 python3-pip

Bước 1: Tạo user (optional)

Thiết lập người dùng cho MLflow và môi trường Python riêng biệt để đảm bảo MLflow hoạt động an toàn và tách biệt với các tiến trình hệ thống khác.

  1. Tạo user
    1
    
    sudo adduser mlflow
    
  2. Cấp quyền Sudo:
    1
    
    sudo usermod -aG sudo mlflow
    
  3. Chuyển sang user mlflow vừa tạo:
    1
    
    su - mlflow
    

Bước 2: Tạo môi trường (environment)

  1. Install Virtualenv: Virtualenv là công cụ để tạo môi trường Python riêng biệt.
    1
    
    pip3 install virtualenv
    
  2. Tạo Virtual Environment: Tạo một thư mục mới cho MLflow server và cd vào thư mục đó. Sau đó, tạo một môi trường ảo.
    1
    2
    3
    
    mkdir ~/mlflow_server
    cd ~/mlflow_server
    virtualenv mlflow_env
    
  3. Kích hoạt Virtual Environment:
    1
    
    source mlflow_env/bin/activate
    

activated python virtual environment

Bước 3: Install MLflow

1
pip install mlflow==2.7.1

Bước 4: Install Backend Store (Optional)

MLflow sử dụng một máy chủ theo dõi (tracking server) để ghi lại dữ liệu các experiment. Mặc định, nó lưu trữ dữ liệu trên hệ thống tệp cục bộ, nhưng để sử dụng ổn định và mạnh mẽ hơn mình sẽ thiết lập SQLite.

  • SQLite thường được cài đặt sẵn trên Ubuntu.
  • Chỉ cần xác định một thư mục muốn lưu trữ cơ sở dữ liệu SQLite, mình sẽ tạo thư mục metrics_store
    1
    2
    
    cd ~/mlflow_server
    mkdir metrics_store
    
  • Thiết lập Backend Store cho MLflow ở bước sau, chỉ cần sử dụng URI sqlite:////home/mlflow/mlflow_server/metrics_store/mlflow.db

Bước 5: Install Artifact Store

Kho lưu trữ artifact (artifact store) là nơi MLflow lưu các tài liệu mô hình như mô hình đã huấn luyện và biểu đồ. Bạn có thể sử dụng S3, Azure Blob Storage, Google Cloud Storage…

  • Ở đây mình sẽ sử dụng local storage (vì nó dễ =D). Chỉ cần tạo một thư mục artifact_store
    1
    2
    
    cd ~/mlflow_server
    mkdir artifact_store
    

ls

Bước 6: Launch MLflow Tracking Server

Sau khi hoàn tất các bước trên ta đã có thể chạy MLflow server:

1
mlflow server --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./mlflow-artifacts

Thay thế sqlite:///mlflow.db bằng URI MySQL của bạn, và ./mlflow-artifacts bằng đường dẫn nơi bạn muốn lưu trữ các artifact. Phía dưới là câu lệnh mình chạy trên máy của mình:

1
mlflow server --backend-store-uri sqlite:////home/mlflow/mlflow_server/metrics_store/mlflow.db --default-artifact-root /home/mlflow/mlflow_server/artifact_store/

launching mlflow server

Truy cập MLflow UI, mặc định MLflow chạy ở port 5000: http://127.0.0.1:5000. Bạn có thể sử dụng giao diện để xem các thí nghiệm, lần chạy, số liệu và các artifact đã lưu trữ.

mlflow ui

Nếu bạn chạy MLflow server trên cloud VM, nhớ tạo SSH Tunel để truy cập được MLflow UI:

1
ssh -L 5000:localhost:5000 remote

References.

This post is licensed under CC BY 4.0 by the author.

Trending Tags