Thư viện MLflow trong Python là một công cụ mạnh mẽ hỗ trợ các nhà phát triển trong việc xây dựng và quản lý quy trình công việc trong các dự án học máy. MLflow cung cấp khả năng theo dõi và giám sát hiệu suất của mô hình, cho phép người dùng lưu trữ các thông tin quan trọng như tham số, phiên bản dữ liệu và kết quả đầu ra của mô hình. Với MLflow, việc tái tạo các thí nghiệm trở nên dễ dàng hơn, giúp tiết kiệm thời gian và công sức khi cần so sánh các mô hình khác nhau. Ngoài ra, thư viện này còn tích hợp tính năng triển khai mô hình, giúp người dùng dễ dàng đưa mô hình vào môi trường sản xuất và tạo ra các ứng dụng thực tiễn từ những nghiên cứu học máy của họ. Chính vì vậy, MLflow đang trở thành một phần không thể thiếu trong bộ công cụ của những nhà khoa học dữ liệu và kỹ sư học máy.
Cài đặt MLflow trong Databricks, chúng ta dùng lệnh:
%pip install mlflow
Sau khi cài đặt, để sử dụng thư viện này, chúng ta phải khởi động lại kernel. Để làm điều này, chúng ta có thể dùng:
%pip install mlflow
Ví dụ về cách sử dụng MLflow với GradientBoostingRegressor cho bộ dữ liệu California Housing
Bạn có thể tải notebook về để chạy. Nếu chưa biết cách import notebook vào Databricks, bạn có thể xem hướng dẫn.
Import các thư viện cần thiết:
import mlflow
import mlflow.sklearn
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
Giải thích:
mlflow
vàmlflow.sklearn
: Thư viện MLflow dùng để theo dõi thí nghiệm học máy.mlflow.sklearn
hỗ trợ ghi lại và lưu trữ thông tin liên quan đến các mô hình từ thư viện Scikit-learn.GradientBoostingRegressor
: Mô hình Gradient Boosting (một loại mô hình ensemble) dùng cho bài toán hồi quy.fetch_california_housing
: Hàm này tải bộ dữ liệu mẫu California Housing từ Scikit-learn.train_test_split
: Dùng để chia dữ liệu thành hai phần: huấn luyện (training) và kiểm tra (testing).mean_squared_error
: Hàm tính toán lỗi bình phương trung bình (MSE) – một thước đo hiệu suất của mô hình hồi quy.
Kích hoạt tính năng ghi tự động cho mô hình sklearn
mlflow.sklearn.autolog()
Lệnh mlflow.sklearn.autolog()
tự động ghi lại các tham số của mô hình, quá trình huấn luyện, điểm số, và thậm chí cả mô hình đã huấn luyện, giúp việc theo dõi và lưu trữ dễ dàng hơn.
Tải dữ liệu California Housing
data = fetch_california_housing(as_frame=True)
X = data.data # Các đặc trưng (features)
y = data.target # Biến mục tiêu (giá trị trung bình của nhà)
Giải thích:
fetch_california_housing
: Tải bộ dữ liệu California Housing.X
: Đây là tập dữ liệu các đặc trưng (features) như thu nhập trung bình, số lượng phòng, v.v.y
: Là biến mục tiêu cần dự đoán, biểu thị giá trị trung bình của nhà.
Chia dữ liệu thành tập huấn luyện và tập kiểm tra
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
Giải thích:
train_test_split
chia dữ liệu thành hai tập:X_train
vày_train
: Dữ liệu dùng để huấn luyện mô hình.X_test
vày_test
: Dữ liệu dùng để kiểm tra mô hình.
test_size=0.2
: 20% dữ liệu được giữ lại cho kiểm tra.random_state=42
: Đảm bảo kết quả chia dữ liệu luôn giống nhau mỗi khi chạy mã.
Bắt đầu ghi thông tin theo dõi với MLflow
with mlflow.start_run():
Giải thích:
mlflow.start_run()
: Tạo một phiên (run) để ghi lại các thông tin liên quan đến quá trình huấn luyện mô hình.
Định nghĩa các tham số cho mô hình
n_estimators = 150 # Số lượng cây trong mô hình
learning_rate = 0.05 # Tốc độ học của mô hình
max_depth = 5 # Độ sâu tối đa của mỗi cây
Giải thích:
n_estimators
: Số lượng cây trong mô hình Gradient Boosting.learning_rate
: Tốc độ học, kiểm soát mức độ điều chỉnh trọng số sau mỗi lần lặp.max_depth
: Độ sâu tối đa của mỗi cây, giúp kiểm soát độ phức tạp của mô hình.
Huấn luyện mô hình Gradient Boosting Regressor
gbr = GradientBoostingRegressor(n_estimators=n_estimators, learning_rate=learning_rate, max_depth=max_depth)
gbr.fit(X_train, y_train) # Huấn luyện mô hình với tập huấn luyện
Giải thích:
GradientBoostingRegressor
: Tạo mô hình Gradient Boosting Regressor với các tham số đã định nghĩa trước đó.fit()
: Phương thức dùng để huấn luyện mô hình trên tập dữ liệuX_train
vày_train
.
Dự đoán kết quả trên tập kiểm tra
predictions = gbr.predict(X_test) # Dự đoán từ dữ liệu kiểm tra
Giải thích:
predict()
: Dùng mô hình đã huấn luyện để dự đoán biến mục tiêu (y
) từ dữ liệu kiểm tra (X_test
).
Đánh giá hiệu suất của mô hình với Mean Squared Error (MSE)
mse = mean_squared_error(y_test, predictions)
print(f"Lỗi bình phương trung bình (MSE) trên tập kiểm tra: {mse}")
Giải thích:
mean_squared_error()
: Tính lỗi bình phương trung bình (MSE), đo lường sự khác biệt giữa giá trị thực tế (y_test
) và giá trị dự đoán (predictions
).print()
: In kết quả MSE, giúp đánh giá mô hình. Giá trị MSE càng thấp, mô hình càng tốt.
Sau khi chạy xong, bạn có thể kiểm tra thông tin logging trên MLflow để xem chi tiết về mô hình và quá trình huấn luyện.

thì sẽ thấy logging

Discover more from Science Comics
Subscribe to get the latest posts sent to your email.