Bảo mật sẵn sàng cho doanh nghiệp: Tuân thủ ISO 27001 + SOC 2 Type I.

Link to this sectionTích hợp MLflow cho Ultralytics YOLO#

MLflow experiment tracking with Ultralytics YOLO

Link to this sectionGiới thiệu#

Ghi nhật ký thử nghiệm là một khía cạnh quan trọng trong các quy trình machine learning giúp theo dõi nhiều loại chỉ số, tham số và artifacts khác nhau. Điều này giúp tăng cường khả năng tái lập mô hình, gỡ lỗi các vấn đề 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 object detection 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 việc quản lý vòng đời machine learning toàn diện.

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.

Link to this sectionMLflow 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 machine learning từ đầu đến cuối. Nó 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 lập, cũng như chia sẻ và triển khai mô hình. MLflow được thiết kế để hoạt động với mọi thư viện machine learning và ngôn ngữ lập trình.

Link to this sectionTí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.

Link to this sectionThiế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 kiểm soát bởi khóa mlflow trong cài đặt. Xem trang settings để biết thêm thông tin.

Cập nhật cài đặt MLflow cho Ultralytics

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()

Link to this sectionCách sử dụng#

Link to this sectionCác lệnh#

  1. Đặ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 đối số project=<project> khi huấn luyện một mô hình YOLO, ví dụ: yolo train project=my_project.

  2. Đặ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_NAME

    Hoặc sử dụng đối số name=<name> khi huấn luyện một mô hình YOLO, ví dụ: yolo train project=my_project name=my_name.

  3. 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'. Để 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 MLFLOW_TRACKING_URI trước khi huấn luyện:

    export MLFLOW_TRACKING_URI=http://127.0.0.1:5000
  4. Giữ cho lần chạy MLflow hoạt động sau khi huấn luyện: Theo mặc định, Ultralytics sẽ tự động kết thúc lần chạy MLflow khi quá trình huấn luyện hoàn tất. Để giữ cho lần chạy vẫn mở (ví dụ: để ghi thêm các chỉ số hoặc artifact từ cùng một notebook), hãy đặt MLFLOW_KEEP_RUN_ACTIVE thành True trước khi huấn luyện:

    export MLFLOW_KEEP_RUN_ACTIVE=True

    Giá trị này được phân tích không phân biệt chữ hoa chữ thường; chỉ chuỗi true mới kích hoạt hành vi này, và bất kỳ giá trị nào khác (bao gồm cả khi không đặt) đều giữ hành vi mặc định là kết thúc lần chạy. Hãy nhớ đóng nó thủ công sau đó bằng mlflow.end_run().

  5. 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

Link to this sectionGhi nhật ký (Logging)#

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.

Link to this sectionVí dụ#

  1. 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 từ điển trainer.metrics trước khi on_fit_epoch_end được gọi.

  2. Xem thử 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ử nghiệm cũng như lần chạy của bạn. MLflow experiment tracking interface for YOLO

  3. 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. MLflow run details with YOLO artifacts

Link to this sectionTắt MLflow#

Để tắt tính năng ghi nhật ký MLflow:

yolo settings mlflow=False

Link to this sectionKế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 machine learning experiments của bạn. Nó giúp bạn giám sát các chỉ số hiệu suất và quản lý artifacts 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ẽ. Để biết thêm chi tiết, vui lòng truy cập tài liệu chính thức của MLflow.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLà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 mlflow

Tiế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 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.

Cập nhật cài đặt MLflow cho Ultralytics
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/mlflow

Link to this sectionTô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ý chỉ số: Theo dõi các chỉ số vào cuối mỗi epoch và 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ý 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ông tin chi tiết hơn, hãy truy cập tài liệu theo dõi Ultralytics YOLO.

Link to this sectionTô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.

Link to this sectionLà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/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 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 -9

Tham khảo phần các lệnh để biết thêm các tùy chọn lệnh.

Link to this sectionLà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=True

Theo mặc định, giá trị này là False, do đó Ultralytics sẽ gọi mlflow.end_run() khi quá trình huấn luyện hoàn tất. Với MLFLOW_KEEP_RUN_ACTIVE=True, lần chạy sẽ vẫn mở để bạn có thể ghi thêm các chỉ số, tham số hoặc artifact 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ị này được phân tích không phân biệt chữ hoa chữ thường; chỉ true mới kích hoạt hành vi này.

Link to this sectionLợ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.

Để 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.

Bình luận