Tích hợp MLflow cho Ultralytics YOLO#
Giới thiệu#
Nhật ký thí nghiệm là một khía cạnh quan trọng trong quy trình làm việc machine learning giúp theo dõi các chỉ số, tham số và tập tin kết quả khác nhau. Điều này giúp nâng cao 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 object detection thời gian thực, nay đã cung cấp tính năng tích hợp với MLflow, một nền tảng mã nguồn mở để quản lý toàn bộ vòng đời học máy.
Trang tài liệu này là hướng dẫn toàn diện về cách thiết lập và sử dụng các khả năng ghi nhật ký của 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 từ đầu đến cuối. Nền tảng này bao gồm các công cụ để theo dõi thí nghiệm, đóng gói mã thành các lần chạy có thể tái tạo, 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.
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ý Artifacts: Ghi lại các artifact của mô hình, bao gồm trọng số và các 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 chưa, 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 của Ultralytics. Thông thường, điều này được điều khiển bởi khóa cài đặt mlflow. Xem trang settings để 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#
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_NAMEHoặc sử dụng đối số
project=<project>khi huấn luyện mô hình YOLO, tức làyolo train project=my_project. -
Đặt tên lần chạy (Run Name): Tương tự như đặt tên dự án, bạn có thể đặt tên 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 đối số
name=<name>khi huấn luyện mô hình YOLO, tức là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/mlflowThao tác 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'. Để trỏ các lần chạy huấn luyện của bạn đến một máy chủ theo dõi khác, hãy xuất biếnMLFLOW_TRACKING_URItrước khi huấn luyện:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Giữ cho Chạy MLflow Hoạt động Sau khi Huấn luyện: Theo mặc định, Ultralytics tự động kết thúc lượt chạy MLflow khi quá trình huấn luyện hoàn tất. Để giữ cho lượt chạy mở (ví dụ: để ghi lại các số liệu hoặc tập tin kết quả bổ sung từ cùng một notebook), hãy đặt
MLFLOW_KEEP_RUN_ACTIVEthànhTruetrước khi huấn luyện:export MLFLOW_KEEP_RUN_ACTIVE=TrueGiá trị được phân tích cú pháp không phân biệt chữ hoa chữ thường; chỉ chuỗi
truemới bật hành vi này và bất kỳ giá trị nào khác (bao gồm cả chưa đặt) sẽ giữ mặc định là đóng lượt chạy. Hãy nhớ đóng thủ công sau đó bằngmlflow.end_run(). -
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 thi:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Ghi nhật ký (Logging)#
Việc ghi nhật ký được đảm nhiệm bởi các callback functions on_pretrain_routine_end, on_fit_epoch_end và on_train_end. Các hàm này được gọi tự động trong các giai đoạn tương ứng của quá trình huấn luyện và xử lý việc ghi nhật ký các tham số, chỉ số và artifact.
Ví dụ#
-
Ghi nhật ký số liệu tùy chỉnh: Bạn có thể thêm các số liệu tùy chỉnh để ghi lại bằng cách sửa đổi từ điển
trainer.metricstrướ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 cũng như lượt chạy của bạn.
-
Xem lần chạy: Các lần chạy là các mô hình riêng lẻ 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 artifact đã tải lên và trọng số mô hình.

Tắt MLflow#
Để tắt tính năng 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 hợp lý để theo dõi các thí nghiệm học máy của bạn. Tính năng này trao quyền cho bạn giám sát các chỉ số hiệu suất và quản lý các tập tin kết quả một cách hiệu quả, từ đó hỗ trợ phát triển và triển khai mô hình một cách 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 thế 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 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 tính năng ghi nhật ký MLflow trong cài đặt của Ultralytics. Điều này có thể được điều khiển 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áy chủ MLflow cục bộ để theo dõi:
mlflow server --backend-store-uri runs/mlflowTôi có thể ghi lại những chỉ số và tham số nào khi sử dụng MLflow với Ultralytics YOLO?#
Ultralytics YOLO với MLflow hỗ trợ ghi nhật ký các chỉ số, 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 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ý Artifacts: Lưu các artifact của mô hình như trọng số và các tệp 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 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 thế nào để 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ử 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àm thế nào để giữ cho lần chạy MLflow hoạt động sau khi huấn luyện xong?#
Đặt biến môi trường MLFLOW_KEEP_RUN_ACTIVE thành True trước khi huấn luyện:
export MLFLOW_KEEP_RUN_ACTIVE=TrueTheo mặc định, đây là False, vì vậy Ultralytics gọi mlflow.end_run() sau khi quá trình huấn luyện hoàn tất. Với MLFLOW_KEEP_RUN_ACTIVE=True, lượt chạy vẫn mở để bạn có thể ghi lại các số liệu, tham số hoặc tập tin kết quả bổ sung từ cùng một phiên Python — hãy tự đóng nó bằng mlflow.end_run() khi hoàn tất. Giá trị được phân tích cú pháp không phân biệt chữ hoa chữ thường; chỉ true mới bật hành vi này.
Lợi ích của việc tích hợp MLflow với Ultralytics YOLO để theo dõi thử nghiệm là gì?#
Việc tích hợp MLflow với Ultralytics YOLO mang lại nhiều lợi ích trong việc 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 lập mô hình: Đảm bảo rằng các thử 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à artifacts.
- 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 quyết định dựa trên dữ liệu nhằm cải thiện mô hình.
- Quy trình hợp lý hóa: 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ử 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.
Để tìm hiểu sâu hơn 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.