Meet YOLO26: next-gen vision AI.

Link to this sectionTích hợp ClearML#

ClearML MLOps experiment tracking platform

Link to this sectionVề ClearML#

ClearML là một nền tảng MLOps mã nguồn mở được xây dựng để tối ưu hóa các quy trình machine learning và tiết kiệm thời gian kỹ thuật.

  • 🔨 Theo dõi mọi lần chạy đào tạo YOLOv5 trong trình quản lý thử nghiệm.
  • 🔧 Tạo phiên bản và truy cập dữ liệu đào tạo tùy chỉnh của bạn với công cụ lập phiên bản dữ liệu ClearML được tích hợp.
  • 🔦 Đào tạo và giám sát từ xa các lần chạy YOLOv5 bằng ClearML Agent.
  • 🔬 Tìm mAP tốt nhất với tính năng tối ưu hóa siêu tham số của ClearML.
  • 🔭 Biến model YOLOv5 đã đào tạo của bạn thành một API với vài lệnh sử dụng ClearML Serving.

Sử dụng bao nhiêu tùy thích trong số các công cụ này — bắt đầu chỉ với trình quản lý thử nghiệm hoặc kết hợp mọi thứ thành một quy trình hoàn chỉnh.

Bảng điều khiển các đại lượng ClearML hiển thị các chỉ số đào tạo YOLOv5

Link to this section🦾 Thiết lập mọi thứ#

ClearML cần giao tiếp với máy chủ để theo dõi các thử nghiệm và dữ liệu của bạn. Bạn có hai tùy chọn:

  • Đăng ký Dịch vụ ClearML Hosted miễn phí, hoặc
  • Triển khai máy chủ ClearML của riêng bạn — đây là mã nguồn mở nên vẫn là một tùy chọn khả thi ngay cả đối với dữ liệu nhạy cảm.

Sau đó cài đặt gói clearml Python và kết nối SDK với máy chủ của bạn:

pip install clearml

Tạo thông tin xác thực tại Cài đặt → Không gian làm việc → Tạo thông tin xác thực mới (góc trên bên phải của giao diện ClearML), sau đó chạy:

clearml-init

Làm theo các hướng dẫn. Thế là xong — thiết lập đã hoàn tất.

Link to this section🚀 Đào tạo YOLOv5 với ClearML#

Để bật tính năng theo dõi thử nghiệm, hãy cài đặt gói pip ClearML nếu bạn chưa làm:

pip install clearml

Thao tác này sẽ cho phép tích hợp với tập lệnh đào tạo YOLOv5. Kể từ bây giờ, mọi lần chạy đào tạo sẽ được ghi lại và lưu trữ bởi trình quản lý thử nghiệm của ClearML.

Để tùy chỉnh tên dự án và tác vụ, hãy truyền --project--name vào train.py. Các giá trị mặc định là YOLOv5Training. ClearML sử dụng / làm dấu phân cách dự án con, vì vậy hãy tránh dùng / trong tên dự án tùy chỉnh.

python train.py --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

Hoặc với tên tùy chỉnh:

python train.py --project my_project --name my_training --img 640 --batch 16 --epochs 3 --data coco8.yaml --weights yolov5s.pt --cache

Mỗi lần chạy sẽ ghi lại:

  • Mã nguồn và các thay đổi chưa được commit
  • Các gói đã cài đặt
  • Các siêu tham số
  • Các checkpoint của model (sử dụng --save-period n để lưu mỗi n epoch)
  • Đầu ra console
  • Các đại lượng (mAP_0.5, mAP_0.5:0.95, độ chính xác, recall, các hàm mất mát, tốc độ học)
  • Chi tiết máy, thời gian chạy và ngày tạo
  • Các biểu đồ được tạo như correlogram nhãn và ma trận nhầm lẫn
  • Hình ảnh với các bbox theo từng epoch
  • Trực quan hóa Mosaic theo từng epoch
  • Hình ảnh kiểm chứng theo từng epoch

Mọi thứ đều xuất hiện trong giao diện ClearML để bạn có thể giám sát quá trình đào tạo tại một nơi. Thêm các cột tùy chỉnh (ví dụ: mAP_0.5) để sắp xếp theo model hiệu suất tốt nhất, hoặc chọn nhiều thử nghiệm để so sánh cạnh nhau.

Tiếp tục đọc để biết về tối ưu hóa siêu tham số và thực thi từ xa.

Link to this section🔗 Quản lý phiên bản tập dữ liệu#

Việc lập phiên bản dữ liệu tách biệt với mã giúp dễ dàng tải xuống phiên bản mới nhất và đảm bảo khả năng tái lập hoàn toàn. Kho lưu trữ này chấp nhận ID phiên bản tập dữ liệu, tự động lấy dữ liệu nếu bị thiếu và ghi lại ID đó như một tham số tác vụ để bạn luôn biết dữ liệu nào đã được sử dụng trong thử nghiệm nào.

Giao diện quản lý phiên bản tập dữ liệu ClearML

Link to this sectionChuẩn bị tập dữ liệu của bạn#

Kho lưu trữ YOLOv5 hỗ trợ nhiều tập dữ liệu thông qua các tệp cấu hình YAML. Theo mặc định, tập dữ liệu tải xuống thư mục ../datasets so với gốc của kho lưu trữ. Sau khi tải coco128, cấu trúc thư mục sẽ như sau:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

Bất kỳ tập dữ liệu nào cũng hoạt động, miễn là bạn giữ nguyên cấu trúc này.

Tiếp theo, sao chép tệp YAML của tập dữ liệu vào thư mục gốc của tập dữ liệu — ClearML đọc tệp này để sử dụng tập dữ liệu chính xác. Bạn có thể tự viết YAML theo bố cục ví dụ, đảm bảo tệp xác định path, train, test, val, ncnames.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml  # <---- HERE
        |_ LICENSE
        |_ README.txt

Link to this sectionTải lên tập dữ liệu của bạn#

Để đăng ký tập dữ liệu dưới dạng tập dữ liệu ClearML được lập phiên bản, hãy chuyển vào thư mục gốc của nó và chạy:

cd ../datasets/coco128
clearml-data sync --project YOLOv5 --name coco128 --folder .

clearml-data sync là viết tắt của chuỗi lệnh sau, bạn cũng có thể chạy thủ công:

# Add --parent <parent_dataset_id> to base this version on a previous one.
# Duplicate files are not re-uploaded.
clearml-data create --name coco128 --project YOLOv5
clearml-data add --files .
clearml-data close

Link to this sectionĐào tạo trên tập dữ liệu ClearML#

Sau khi tập dữ liệu được đăng ký, hãy trỏ quá trình đào tạo đến nó bằng ID:

python train.py --img 640 --batch 16 --epochs 3 --data clearml://YOUR_DATASET_ID --weights yolov5s.pt --cache

Link to this section👀 Tối ưu hóa siêu tham số#

Với các thử nghiệm và dữ liệu đã được lập phiên bản, bạn có thể xây dựng dựa trên chúng. Vì mỗi thử nghiệm được theo dõi sẽ nắm bắt toàn bộ môi trường — mã, các gói đã cài đặt và cấu hình — nên các lần chạy hoàn toàn có thể tái lập. ClearML cho phép bạn clone một thử nghiệm, thay đổi các tham số của nó và chạy lại tự động, đây chính là nền tảng của tối ưu hóa siêu tham số (HPO).

Để chạy HPO cục bộ, hãy sử dụng tập lệnh được đính kèm. Trước tiên hãy đảm bảo tác vụ đào tạo tồn tại trong trình quản lý thử nghiệm — tập lệnh sẽ clone nó và thay đổi các siêu tham số của nó.

Điền ID tác vụ mẫu vào utils/loggers/clearml/hpo.py, sau đó chạy:

# Install Optuna or change the optimizer to RandomSearch.
pip install optuna
python utils/loggers/clearml/hpo.py

Chuyển task.execute_locally() thành task.execute() để đẩy công việc đến hàng đợi ClearML cho một tác nhân từ xa nhận.

Bảng điều khiển HPO ClearML với các chỉ số YOLOv5

Link to this section🤯 Thực thi từ xa (Nâng cao)#

Chạy HPO cục bộ rất thuận tiện, nhưng bạn thường sẽ muốn thực hiện các thử nghiệm trên phần cứng mạnh mẽ hơn — máy GPU tại chỗ hoặc instance đám mây. Đó là vai trò của ClearML Agent:

Mỗi thử nghiệm được theo dõi chứa mọi thứ cần thiết để tái lập nó trên một máy khác (các gói đã cài đặt, các thay đổi chưa commit và cấu hình). Một ClearML agent lắng nghe hàng đợi, nhận các tác vụ đến, tái tạo môi trường, chạy công việc và truyền các đại lượng và biểu đồ ngược lại trình quản lý thử nghiệm.

Biến bất kỳ máy nào — máy ảo đám mây, máy GPU cục bộ hoặc máy tính xách tay — thành ClearML agent với:

clearml-agent daemon --queue QUEUES_TO_LISTEN_TO [--docker]

Link to this sectionCloning, Chỉnh sửa và Xếp hàng#

Với một agent đang chạy, bạn có thể chỉ định công việc trực tiếp từ giao diện người dùng:

  • 🪄 Chuột phải vào một thử nghiệm và clone nó.
  • 🎯 Chỉnh sửa các siêu tham số của nó.
  • ⏳ Chuột phải vào tác vụ đã clone và thêm vào một hàng đợi mục tiêu.

Thêm tác vụ vào hàng đợi từ giao diện người dùng

Link to this sectionThực thi tác vụ từ xa#

Bạn cũng có thể gắn cờ một tập lệnh đang chạy để thực thi từ xa theo lập trình bằng cách thêm task.execute_remotely() sau khi logger ClearML đã được khởi tạo. Thêm dòng được đánh dấu vào train.py:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE
        # data_dict is None unless the user selected a ClearML dataset, in which case ClearML fills it in.
        data_dict = loggers.clearml.data_dict
# ...

Sau thay đổi này, việc chạy tập lệnh đào tạo sẽ thực thi đến dòng đó, đóng gói mã và gửi nó đến hàng đợi.

Link to this sectionWorkers tự động mở rộng#

ClearML đi kèm với các autoscaler có khả năng khởi tạo các máy từ xa trên AWS, GCP hoặc Azure khi hàng đợi có các thử nghiệm đang chờ, biến chúng thành các ClearML agent và tắt chúng khi công việc hoàn thành — vì vậy bạn chỉ trả tiền cho phần tính toán thực sự đang chạy.

Xem video hướng dẫn bắt đầu bên dưới:

Xem video

Link to this sectionTìm hiểu thêm#

Để biết thêm thông tin về việc tích hợp ClearML với các model Ultralytics, hãy xem hướng dẫn tích hợp ClearML của chúng tôi và khám phá cách bạn có thể nâng cao quy trình MLOps của mình với các công cụ theo dõi thử nghiệm khác.

Người đóng góp

Bình luận