Tích hợp MLflow cho Ultralytics YOLO
Giới thiệu
Ghi nhật ký thực nghiệm là một khía cạnh quan trọng trong quy trình làm việc của học máy, cho phép theo dõi nhiều chỉ số, tham số và artifact khác nhau. Việc này giúp nâng cao khả năng tái lập mô hình, gỡ lỗi và cải thiện hiệu suất mô hình. Ultralytics YOLO, vốn nổi tiếng với khả năng phát hiện đối tượng thời gian thực, hiện đã hỗ trợ tích hợp với MLflow, một nền tảng mã nguồn mở dành cho quản lý vòng đời học máy hoàn chỉnh.
Trang tài liệu này là một hướng dẫn toàn diện về cách thiết lập và sử dụng các tính năng ghi nhật ký MLflow cho dự án Ultralytics YOLO của bạn.
MLflow là gì?
MLflow là một nền tảng mã nguồn mở được phát triển bởi Databricks nhằm quản lý vòng đời học máy từ đầu đến cuối. Nền tảng này bao gồm các công cụ để theo dõi thực nghiệm, đóng gói code thành các lần chạy (run) có thể tái lập, cũng như chia sẻ và triển khai mô hình. MLflow được thiết kế để hoạt động với bất kỳ thư viện học máy và ngôn ngữ lập trình nào.
Các tính năng
- Ghi nhật ký chỉ số: Ghi lại các chỉ số vào cuối mỗi epoch và khi kết thúc quá trình huấn luyện.
- Ghi nhật ký tham số: Ghi lại tất cả các tham số được sử dụng trong quá trình huấn luyện.
- Ghi nhật ký Artifact: Ghi lại các artifact của mô hình, bao gồm trọng số và các file cấu hình vào cuối quá trình huấn luyện.
Thiết lập và các yêu cầu tiên quyết
Đảm bảo rằng MLflow đã được cài đặt. Nếu chưa, hãy cài đặt bằng pip:
pip install mlflowĐảm bảo rằng tính năng ghi nhật ký MLflow đã được bật trong các cài đặt của Ultralytics. Thông thường, điều này được kiểm soát bởi khóa mlflow trong settings. Xem trang cài đặt để biết thêm thông tin.
Trong môi trường Python, hãy gọi phương thức update trên đối tượng settings để thay đổi cài đặt của bạn:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Cách sử dụng
Lệnh
-
Đặt tên dự án: Bạn có thể đặt tên dự án thông qua một biến môi trường:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEHoặc sử dụng tham số
project=<project>khi huấn luyện mô hình YOLO, ví dụ:yolo train project=my_project. -
Đặt tên lần chạy (Run Name): Tương tự như việc đặt tên dự án, bạn có thể đặt tên cho lần chạy thông qua một biến môi trường:
export MLFLOW_RUN=YOUR_RUN_NAMEHoặc sử dụng tham số
name=<name>khi huấn luyện mô hình YOLO, ví dụ:yolo train project=my_project name=my_name. -
Khởi động máy chủ MLflow cục bộ: Để bắt đầu theo dõi, hãy sử dụng:
mlflow server --backend-store-uri runs/mlflowLệnh này sẽ khởi động một máy chủ cục bộ tại
http://127.0.0.1:5000theo mặc định và lưu tất cả nhật ký MLflow vào thư mục 'runs/mlflow'. Để hướng các lần huấn luyện của bạn tới một máy chủ theo dõi khác, hãy exportMLFLOW_TRACKING_URItrước khi huấn luyện:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Ngắt các phiên bản máy chủ MLflow: Để dừng tất cả các phiên bản MLflow đang chạy, hãy thực hiện lệnh:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Ghi nhật ký
The logging is taken care of by the on_pretrain_routine_end, on_fit_epoch_end, and on_train_end callback functions. These functions are automatically called during the respective stages of the training process, and they handle the logging of parameters, metrics, and artifacts.
Ví dụ
-
Ghi nhật ký chỉ số tùy chỉnh: Bạn có thể thêm các chỉ số tùy chỉnh để ghi nhật ký bằng cách sửa đổi dictionary
trainer.metricstrước khion_fit_epoch_endđược gọi. -
Xem thực nghiệm: Để xem nhật ký của bạn, hãy điều hướng đến máy chủ MLflow (thường là
http://127.0.0.1:5000) và chọn thực nghiệm và lần chạy của bạn.
-
Xem lần chạy (Run): Các lần chạy là các mô hình riêng lẻ bên trong một thực nghiệm. Nhấp vào một Run để xem chi tiết, bao gồm các artifact đã tải lên và trọng số mô hình.

Tắt MLflow
Để tắt ghi nhật ký MLflow:
yolo settings mlflow=FalseKết luận
Việc tích hợp ghi nhật ký MLflow với Ultralytics YOLO cung cấp một cách tinh gọn để theo dõi các thực nghiệm học máy của bạn. Điều này cho phép bạn giám sát các chỉ số hiệu suất và quản lý artifact một cách hiệu quả, từ đó hỗ trợ cho việc phát triển và triển khai mô hình mạnh mẽ hơn. Để biết thêm chi tiết, vui lòng truy cập tài liệu chính thức của MLflow.
Câu hỏi thường gặp (FAQ)
Làm cách nào để tôi thiết lập ghi nhật ký MLflow với Ultralytics YOLO?
Để thiết lập ghi nhật ký MLflow với Ultralytics YOLO, trước tiên bạn cần đảm bảo rằng MLflow đã được cài đặt. Bạn có thể cài đặt nó bằng pip:
pip install mlflowTiếp theo, hãy bật ghi nhật ký MLflow trong các cài đặt của Ultralytics. Điều này có thể được kiểm soát bằng khóa mlflow. Để biết thêm thông tin, hãy xem hướng dẫn cài đặt.
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()Cuối cùng, khởi động một máy chủ MLflow cục bộ để theo dõi:
mlflow server --backend-store-uri runs/mlflowNhững chỉ số và tham số nào tôi có thể ghi lại bằng MLflow với Ultralytics YOLO?
Ultralytics YOLO với MLflow hỗ trợ ghi lại nhiều chỉ số, tham số và artifact trong suốt quá trình huấn luyện:
- Ghi nhật ký chỉ số: Theo dõi các chỉ số vào cuối mỗi epoch và sau khi hoàn tất huấn luyện.
- Ghi nhật ký tham số: Ghi lại tất cả các tham số được sử dụng trong quá trình huấn luyện.
- Ghi nhật ký Artifact: Lưu các artifact của mô hình như trọng số và file cấu hình sau khi huấn luyện.
Để biết thông tin chi tiết hơn, hãy truy cập tài liệu theo dõi Ultralytics YOLO.
Tôi có thể tắt ghi nhật ký MLflow sau khi đã bật không?
Có, bạn có thể tắt ghi nhật ký MLflow cho Ultralytics YOLO bằng cách cập nhật cài đặt. Đây là cách thực hiện bằng CLI:
yolo settings mlflow=FalseĐể tùy chỉnh thêm và đặt lại cài đặt, hãy tham khảo hướng dẫn cài đặt.
Làm cách nào để tôi khởi động và dừng máy chủ MLflow cho việc theo dõi Ultralytics YOLO?
Để khởi động máy chủ MLflow nhằm theo dõi các thực nghiệm của bạn trong Ultralytics YOLO, hãy sử dụng lệnh sau:
mlflow server --backend-store-uri runs/mlflowLệnh này khởi động một máy chủ cục bộ tại http://127.0.0.1:5000 theo mặc định. Nếu bạn cần dừng các phiên bản máy chủ MLflow đang chạy, hãy sử dụng lệnh bash sau:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9Tham khảo phần lệnh để biết thêm các tùy chọn lệnh.
Lợi ích của việc tích hợp MLflow với Ultralytics YOLO để theo dõi thực nghiệm là gì?
Việc tích hợp MLflow với Ultralytics YOLO mang lại nhiều lợi ích cho việc quản lý các thực nghiệm học máy của bạn:
- Theo dõi thực nghiệm nâng cao: Dễ dàng theo dõi và so sánh các lần chạy khác nhau cũng như kết quả của chúng.
- Cải thiện khả năng tái lập mô hình: Đảm bảo rằng các thực nghiệm của bạn có thể tái lập bằng cách ghi lại tất cả các tham số và artifact.
- Giám sát hiệu suất: Trực quan hóa các chỉ số hiệu suất theo thời gian để đưa ra các quyết định dựa trên dữ liệu nhằm cải thiện mô hình.
- Quy trình làm việc hợp lý: Tự động hóa quy trình ghi nhật ký để tập trung nhiều hơn vào việc phát triển mô hình thay vì theo dõi thủ công.
- Phát triển cộng tác: Chia sẻ kết quả thực nghiệm với các thành viên trong nhóm để cộng tác tốt hơn và chia sẻ kiến thức.
Để có cái nhìn sâu sắc về cách thiết lập và tận dụng MLflow với Ultralytics YOLO, hãy khám phá tài liệu Tích hợp MLflow cho Ultralytics YOLO.