Tích hợp MLflow cho Ultralytics YOLO
Giới thiệu
Ghi nhật ký thử nghiệm là một khía cạnh quan trọng của quy trình học máy, cho phép theo dõi các thông số, chỉ số và artifacts khác nhau. Nó giúp tăng cường khả năng tái tạo mô hình, gỡ lỗi các vấn đề và cải thiện hiệu suất mô hình. Ultralytics YOLO, nổi tiếng với khả năng phát hiện đối tượng theo thời gian thực, hiện cung cấp tích hợp với MLflow, một nền tảng mã nguồn mở để quản lý vòng đời học máy hoàn chỉnh.
Trang tài liệu này là hướng dẫn toàn diện để thiết lập và sử dụng các khả 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 để quản lý vòng đời học máy đầu cuối. Nó bao gồm các công cụ để theo dõi các thử nghiệm, đóng gói mã vào các lần chạy có thể tái tạo và chia sẻ và triển khai các 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.
Tính năng
- Ghi nhật ký chỉ số: Ghi nhật ký các chỉ số vào cuối mỗi epoch và vào cuối quá trình huấn luyện.
- Ghi nhật ký tham số: Ghi nhật ký tất cả các tham số được sử dụng trong quá trình huấn luyện.
- Ghi nhật ký Artifacts: Ghi nhật ký các artifacts của mô hình, bao gồm trọng số và tệp cấu hình, vào cuối quá trình huấn luyện.
Thiết lập và Điều kiện tiên quyết
Đảm bảo MLflow đã được cài đặt. Nếu không, hãy cài đặt nó 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ài đặt Ultralytics. Thông thường, điều này được kiểm soát bởi cài đặt mlflow
key. Xem trang cài đặt để biết thêm thông tin.
Cập nhật cài đặt Ultralytics MLflow
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()
Nếu bạn thích sử dụng giao diện dòng lệnh hơn, các lệnh sau sẽ cho phép bạn sửa đổi cài đặt của mình:
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
Cách sử dụng
Các 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_NAME
Hoặc sử dụng
project=<project>
đối số khi huấn luyện mô hình YOLO, ví dụ:yolo train project=my_project
. -
Đặt tên Run: Tương tự như việc đặt tên dự án, bạn có thể đặt tên run thông qua một biến môi trường:
export MLFLOW_RUN=YOUR_RUN_NAME
Hoặc sử dụng
name=<name>
đối số 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/mlflow
Thao tác này sẽ khởi động một máy chủ cục bộ tại
http://127.0.0.1:5000
theo mặc định và lưu tất cả nhật ký mlflow vào thư mục 'runs\/mlflow'. Để chỉ định một URI khác, hãy đặt biến môi trườngMLFLOW_TRACKING_URI
. -
Tắ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 chạy:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Ghi nhật ký
Việc ghi nhật ký được thực hiện bởi các on_pretrain_routine_end
, on_fit_epoch_end
, và on_train_end
các hàm callback. Các hàm này được tự động gọi trong các giai đoạn tương ứng của quy trình huấn luyện và chúng xử lý việc ghi nhật ký các tham số, số liệu và artifacts.
Ví dụ
-
Ghi nhật ký các Số liệu Tùy chỉnh: Bạn có thể thêm các số liệu tùy chỉnh để ghi nhật ký bằng cách sửa đổi
trainer.metrics
từ điển trước khion_fit_epoch_end
được gọi. -
Xem Thử nghiệm: Để xem nhật ký của bạn, hãy điều hướng đến máy chủ MLflow của bạn (thường là
http://127.0.0.1:5000
) và chọn thử nghiệm và lần chạy của bạn. -
Xem Lần chạy: Lần chạy là các mô hình riêng lẻ bên trong một thử nghiệm. Nhấp vào một Lần chạy và xem chi tiết Lần chạy, bao gồm các artifacts đã tải lên và trọng số mô hình.
Vô hiệu hóa MLflow
Để tắt ghi nhật ký MLflow:
yolo settings mlflow=False
Kết luận
Tích hợp ghi nhật ký MLflow với Ultralytics YOLO cung cấp một cách hợp lý để theo dõi các thử nghiệm học máy của bạn. Nó cho phép bạn theo dõi các số liệu hiệu suất và quản lý các cấu phần phần mềm một cách hiệu quả, do đó hỗ trợ phát triển và triển khai mô hình mạnh mẽ. Để 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
Làm cách nào để 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 MLflow đã được cài đặt. Bạn có thể cài đặt nó bằng pip:
pip install mlflow
Tiếp theo, bật ghi nhật ký MLflow trong cài đặt Ultralytics. Điều này có thể được kiểm soát bằng cách sử dụng khóa mlflow
. Để biết thêm thông tin, hãy xem hướng dẫn cài đặt.
Cập nhật cài đặt Ultralytics MLflow
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
settings.reset()
# Update a setting
yolo settings mlflow=True
# Reset settings to default values
yolo settings reset
Cuối cùng, hãy khởi động một máy chủ MLflow cục bộ để theo dõi:
mlflow server --backend-store-uri runs/mlflow
Tôi có thể ghi nhật ký những thông số và chỉ số nào bằng MLflow với Ultralytics YOLO?
Ultralytics YOLO với MLflow hỗ trợ ghi nhật ký các số liệu, tham số và artifacts khác nhau trong suốt quá trình huấn luyện:
- Ghi nhật ký Số liệu: Theo dõi các số liệu ở cuối mỗi epoch và khi hoàn thà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ý Artifacts: Lưu các artifacts của mô hình như weights và các file cấu hình sau khi huấn luyện.
Để biết thêm thông tin chi tiết, 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 tính năng ghi nhật ký MLflow cho Ultralytics YOLO bằng cách cập nhật cài đặt. Dưới đây là cách bạn có thể thực hiện việc này 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 để khởi động và dừng máy chủ MLflow để theo dõi Ultralytics YOLO?
Để khởi động một máy chủ MLflow để theo dõi các thử nghiệm của bạn trong Ultralytics YOLO, hãy sử dụng lệnh sau:
mlflow server --backend-store-uri runs/mlflow
Lệ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 chạy các instance máy chủ MLflow, hãy sử dụng lệnh bash sau:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Tham khảo phần lệnh để biết thêm các tùy chọn lệnh.
Những lợi ích của việc tích hợp MLflow với Ultralytics YOLO để theo dõi thử nghiệm là gì?
Tích hợp MLflow với Ultralytics YOLO mang lại một số lợi ích để quản lý các thử nghiệm machine learning của bạn:
- Theo dõi thử nghiệm nâng cao: Dễ dàng theo dõi và so sánh các lần chạy khác nhau và kết quả của chúng.
- Cải thiện khả năng tái tạo mô hình: Đảm bảo rằng các thử nghiệm của bạn có thể tái tạo được bằng cách ghi lại tất cả các tham số và artifacts.
- Giám sát hiệu suất: Trực quan hóa các số liệu 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 được sắp xếp hợp lý: Tự động hóa quy trình ghi nhật ký để tập trung nhiều hơn vào 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ử nghiệm với các thành viên trong nhóm để cộng tác và chia sẻ kiến thức tốt hơn.
Để có cái nhìn sâu sắc về việc 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.