Kiểm tra màu xanh lá cây
Liên kết được sao chép vào khay nhớ tạm

Đào tạo và giám sát từ xa Ultralytics YOLOv5 Sử dụng ClearML

Khám phá quan hệ đối tác của chúng tôi với ClearML cho một Ultrlaytics nâng cao YOLOv5 trải nghiệm tích hợp ML liền mạch, theo dõi thử nghiệm và nhiều hơn nữa.

Tại Ultralytics Chúng tôi hợp tác thương mại với các công ty khởi nghiệp khác để giúp chúng tôi tài trợ cho nghiên cứu và phát triển các công cụ nguồn mở tuyệt vời của chúng tôi, như YOLOv5, để giữ chúng miễn phí cho tất cả mọi người. Bài viết này có thể chứa các liên kết liên kết đến các đối tác đó.

ClearML là đối tác mới nhất của chúng tôi: một hộp công cụ mã nguồn mở được thiết kế để giúp bạn tiết kiệm thời gian.

Với sứ mệnh đẩy nhanh việc áp dụng ML, ClearML làm cho ML liền mạch để tích hợp vào bất kỳ sản phẩm Phần mềm và Phần cứng nào ngoài kia.

Sự tích hợp này làm cho việc đào tạo một trở nên đơn giản hơn YOLOv5 Mô hình hóa và sử dụng ClearML Trình quản lý thử nghiệm để theo dõi nó tự động. Bạn có thể dễ dàng chỉ định một ClearML ID phiên bản tập dữ liệu làm đầu vào dữ liệu và nó sẽ tự động được sử dụng để đào tạo mô hình của bạn.

Đưa tính năng theo dõi thử nghiệm của bạn lên cấp độ tiếp theo

  • Theo dõi mọi YOLOv5 Chạy đào tạo trong trình quản lý thử nghiệm.
  • Phiên bản và dễ dàng truy cập dữ liệu đào tạo tùy chỉnh của bạn với tích hợp ClearML Công cụ lập phiên bản dữ liệu.
  • Nhận mAP tốt nhất bằng cách sử dụng ClearML Tối ưu hóa siêu tham số.
  • Biến người mới được đào tạo của bạn YOLOv5 mô hình hóa thành API chỉ với một vài lệnh sử dụng ClearML Phục vụ.

Tùy thuộc vào số lượng công cụ bạn muốn sử dụng, bạn có thể gắn bó với trình quản lý thử nghiệm hoặc xâu chuỗi tất cả chúng lại với nhau thành một quy trình ấn tượng.

Thiết lập mọi thứ

Để theo dõi các thí nghiệm và dữ liệu của bạn, ClearML cần giao tiếp với máy chủ. Bạn có hai lựa chọn cho việc này: hoặc đăng ký miễn phí ClearML Dịch vụ lưu trữ hoặc thiết lập máy chủ của riêng bạn, hãy xem tại đây .

Ngay cả máy chủ cũng là mã nguồn mở, vì vậy nếu bạn đang xử lý dữ liệu nhạy cảm, điều đó không có vấn đề gì!

  1. Cài đặt clearml python Gói: Cài đặt pip clearml
  2. Kết nối ClearML SDK đến máy chủ bằng cách tạo thông tin đăng nhập (đi ngay trên cùng Cài đặt -> Không gian làm việc -> Tạo thông tin đăng nhập mới), sau đó thực hiện lệnh bên dưới và làm theo hướng dẫn: clearml-Init

Và thì đấy! Bạn đã sẵn sàng để bắt đầu...

Đào tạo YOLOv5 Với ClearML

Để bật ClearML Theo dõi thử nghiệm, chỉ cần cài đặt ClearML Gói pip.

Cài đặt pip clearml

Điều này sẽ cho phép tích hợp với YOLOv5 kịch bản đào tạo. Mọi hoạt động đào tạo từ bây giờ sẽ được ghi lại và lưu trữ bởi ClearML Trình quản lý thử nghiệm. Nếu bạn muốn thay đổi project_name hoặc task_name, hãy truy cập trình ghi tùy chỉnh của chúng tôi, nơi bạn có thể thay đổi nó: utils / logger /clearml/clearml_utils.py

python train.py --img 640 --lô 16 --kỷ nguyên 3 --dữ liệu coco128.yaml --trọng số yolov5s.pt --cache

Điều này sẽ nắm bắt:

  • Mã nguồn + thay đổi không cam kết
  • Gói đã cài đặt
  • Tham số (Hyper)
  • Tệp mô hình (sử dụng --save-period n để lưu một điểm kiểm tra sau mỗi n kỷ nguyên)
  • Đầu ra bảng điều khiển
  • Vô hướng (mAP_0.5, mAP_0.5: 0.95, độ chính xác, thu hồi, tổn thất, tỷ lệ học tập, ...)
  • Thông tin chung như chi tiết máy, thời gian chạy, ngày tạo, v.v.
  • Tất cả các lô được tạo ra như correlogram nhãn và ma trận nhầm lẫn
  • Hình ảnh với các hộp giới hạn trên mỗi kỷ nguyên
  • Khảm mỗi kỷ nguyên
  • Xác thực hình ảnh mỗi kỷ nguyên

Không tệ lắm! Bây giờ, chúng ta có thể hình dung tất cả thông tin này trong ClearML Giao diện người dùng để có cái nhìn tổng quan về tiến trình đào tạo của chúng tôi. Thêm cột tùy chỉnh vào chế độ xem bảng (chẳng hạn như mAP_0,5) để bạn có thể dễ dàng sắp xếp trên mô hình hoạt động tốt nhất. Hoặc chọn nhiều thử nghiệm và so sánh trực tiếp chúng!

Chúng ta thậm chí còn có thể làm nhiều hơn với tất cả thông tin này, như tối ưu hóa siêu tham số và thực thi từ xa, vì vậy hãy tiếp tục đọc để tìm hiểu cách thực hiện!

Quản lý phiên bản tập dữ liệu

Lập phiên bản dữ liệu của bạn riêng biệt với mã của bạn nói chung là một ý tưởng hay và giúp bạn dễ dàng có được phiên bản mới nhất. Kho lưu trữ này hỗ trợ cung cấp ID phiên bản tập dữ liệu và nó sẽ đảm bảo lấy dữ liệu nếu chưa có. Bên cạnh đó, quy trình làm việc này cũng lưu ID tập dữ liệu đã sử dụng như một phần của tham số tác vụ, vì vậy bạn sẽ luôn biết chắc chắn dữ liệu nào đã được sử dụng trong thử nghiệm nào!

Dữ liệu Ultralytics YOLOv5 và ClearML

Chuẩn bị tập dữ liệu của bạn

Các YOLOv5 kho lưu trữ hỗ trợ một số bộ dữ liệu khác nhau bằng cách sử dụng các tệp YAML chứa thông tin của chúng. Theo mặc định, các bộ dữ liệu được tải xuống .. /datasets thư mục liên quan đến thư mục gốc kho lưu trữ. Vì vậy, nếu bạn tải xuống tập dữ liệu coco128 bằng liên kết trong YAML hoặc với các tập lệnh được cung cấp bởi yolov5, bạn nhận được cấu trúc thư mục này:

..
|_ yolov5
|_ bộ dữ liệu
|_ COCO128
|_ hình ảnh
|_ nhãn
|_ GIẤY PHÉP
|_ README.txt

Nhưng đây có thể là bất kỳ tập dữ liệu nào bạn muốn. Hãy thoải mái sử dụng của riêng bạn, miễn là bạn giữ cấu trúc thư mục này.

Tiếp theo, ⚠️sao chép tệp YAML tương ứng vào thư mục gốc của thư mục⚠️ tập dữ liệu. Các tệp YAML này chứa thông tin ClearML sẽ cần sử dụng đúng tập dữ liệu. Bạn cũng có thể tự làm điều này, tất nhiên, chỉ cần làm theo cấu trúc của YAML ví dụ.

Về cơ bản, chúng ta cần các khóa sau: path, train, test, val, nc, names.

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

Tải lên tập dữ liệu của bạn

Để đưa tập dữ liệu này vào ClearML Là một tập dữ liệu phiên bản, hãy chuyển đến thư mục gốc tập dữ liệu và chạy lệnh sau:

CD COCO128

clearml-đồng bộ hóa dữ liệu --dự án YOLOv5 --Tên coco128 --thư mục.


Lệnh clearml-Data sync thực sự là một lệnh tốc ký. Bạn cũng có thể chạy lần lượt các lệnh này:

# Tùy chọn thêm --parent nếu bạn muốn base

# Phiên bản này trên một phiên bản tập dữ liệu khác, vì vậy không có tệp trùng lặp nào được tải lên!

clearml-tạo dữ liệu --name coco128 --project YOLOv5/p>

clearml-dữ liệu thêm --tập tin .

clearml-đóng dữ liệu

Chạy đào tạo bằng cách sử dụng ClearML Tập dữ liệu

Bây giờ bạn có một ClearML tập dữ liệu, bạn có thể rất đơn giản sử dụng nó để đào tạo tùy chỉnh YOLOv5 Mô hình.

python train.py --IMG 640 --Đợt 16 --Kỷ nguyên 3 --Dữ liệu clearml:// --weights yolov5s.pt --cache

Tối ưu hóa siêu tham số

Bây giờ chúng ta đã có các thử nghiệm và phiên bản dữ liệu của mình, đã đến lúc xem xét những gì chúng ta có thể xây dựng trên đầu!

Sử dụng thông tin mã, các gói đã cài đặt và chi tiết môi trường, bản thân thử nghiệm hiện có thể tái tạo hoàn toàn. Thực tế ClearML Cho phép bạn sao chép một thử nghiệm và thậm chí thay đổi các tham số của nó. Sau đó, chúng tôi chỉ có thể tự động chạy lại nó với các thông số mới này, về cơ bản đây là những gì HPO làm!

Để chạy tối ưu hóa siêu tham số cục bộ, chúng tôi đã bao gồm một tập lệnh được tạo sẵn cho bạn. Chỉ cần đảm bảo rằng một nhiệm vụ đào tạo đã được chạy ít nhất một lần, vì vậy nó nằm trong ClearML Trình quản lý thử nghiệm, về cơ bản chúng tôi sẽ sao chép nó và thay đổi các siêu tham số của nó.

Bạn sẽ cần điền ID của tác vụ mẫu này vào tập lệnh được tìm thấy tại utils/loggers/clearml/hpo.py và sau đó chỉ cần chạy nó. Bạn có thể thay đổi task.execute_locally() thành task.execute() để đặt nó trong một ClearML Xếp hàng và nhờ một nhân viên từ xa làm việc trên đó thay thế.

# Để sử dụng optuna, hãy cài đặt nó trước, nếu không bạn có thể thay đổi trình tối ưu hóa thành chỉ là RandomSearch pip install optuna python tiện ích / logger /clearml/hpo.py

HPO, Ultralytics YOLOv5 và ClearML

Thực thi từ xa (Nâng cao)

Chạy HPO cục bộ thực sự tiện dụng, nhưng nếu chúng ta muốn chạy thử nghiệm của mình trên một máy từ xa thì sao? Có lẽ bạn có quyền truy cập vào một rất mạnh mẽ GPU máy tại chỗ hoặc bạn có một số ngân sách để sử dụng GPU đám mây. Đây là nơi ClearML Đại lý đi vào chơi.

Kiểm tra những gì nhân viên có thể làm tại đây:

Tóm lại: mọi thử nghiệm được theo dõi bởi trình quản lý thử nghiệm chứa đủ thông tin để tái tạo nó trên một máy khác nhau (gói đã cài đặt, thay đổi không cam kết, v.v.). Vì vậy, một ClearML Agent thực hiện điều đó: nó lắng nghe một hàng đợi cho các nhiệm vụ đến và khi tìm thấy một tác vụ, nó sẽ tạo lại môi trường và chạy nó trong khi vẫn báo cáo vô hướng, biểu đồ, v.v. cho người quản lý thử nghiệm.

Bạn có thể biến bất kỳ máy nào (máy ảo đám mây, máy ảo cục bộ GPU máy, máy tính xách tay của riêng bạn ...) thành một ClearML đại lý bằng cách chạy đơn giản:

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

Nhân bản, chỉnh sửa và xếp hàng

Với đại lý của chúng tôi đang chạy, chúng tôi có thể cung cấp cho nó một số công việc. Hãy nhớ từ phần HPO rằng chúng ta có thể sao chép một tác vụ và chỉnh sửa các siêu tham số? Chúng tôi cũng có thể làm điều đó từ giao diện!

🪄 Sao chép thử nghiệm bằng cách nhấp chuột phải vào thử nghiệm

🎯 Chỉnh sửa các siêu tham số theo những gì bạn muốn chúng trở thành

⏳ Hàng đợi tác vụ đến bất kỳ hàng đợi nào bằng cách bấm chuột phải vào tác vụ đó

Hàng đợi, Ultralytics YOLOv5 và ClearML

Thực hiện một tác vụ từ xa

Bây giờ bạn có thể sao chép một tác vụ như chúng tôi đã giải thích ở trên hoặc chỉ cần đánh dấu tập lệnh hiện tại của bạn bằng cách thêm task.execute_remotely () và khi thực thi, nó sẽ được đưa vào hàng đợi, để tác nhân bắt đầu làm việc!

Để chạy YOLOv5 Tập lệnh đào tạo từ xa, tất cả những gì bạn phải làm là thêm dòng này vào tập lệnh training.py sau ClearML Logger đã được khởi tạo:

# ... # 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 either None is user did not choose for ClearML dataset or is filled in by ClearML data_dict = loggers.clearml.data_dict # ...

Khi chạy kịch bản đào tạo sau thay đổi này, python sẽ chạy tập lệnh cho đến dòng đó, sau đó nó sẽ đóng gói mã và gửi nó đến hàng đợi thay thế!

Công nhân Autoscaling

ClearML Đi kèm với Auto Scalers quá! Công cụ này sẽ tự động quay các máy từ xa mới trong đám mây bạn chọn (AWS, GCP, Azure) và biến chúng thành ClearML tổng đài viên sẽ hỗ trợ bạn bất cứ khi nào có thí nghiệm được phát hiện trong hàng đợi. Khi các tác vụ được xử lý, bộ chia tỷ lệ tự động sẽ tự động tắt các máy từ xa và bạn ngừng thanh toán! Hãy xem video bắt đầu chia tỷ lệ tự động bên dưới.

Bất kỳ câu hỏi? Tham gia cộng đồng của chúng tôi và để lại câu hỏi của bạn ngay hôm nay!

Logo FacebookBiểu trưng TwitterBiểu trưng LinkedInBiểu tượng sao chép liên kết

Đọc thêm trong danh mục này

Hãy xây dựng tương lai
của AI cùng nhau!

Bắt đầu hành trình của bạn với tương lai của machine learning