Bằng cách nhấp vào “Chấp nhận tất cả cookie”, bạn đồng ý lưu trữ cookie trên thiết bị của mình để cải thiện khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thông tin thêm
Cài đặt Cookie
Bằng cách nhấp vào “Chấp nhận tất cả cookie”, bạn đồng ý lưu trữ cookie trên thiết bị của mình để cải thiện khả năng điều hướng trang web, phân tích việc sử dụng trang web và hỗ trợ các nỗ lực tiếp thị của chúng tôi. Thông tin thêm
Khám phá mối quan hệ hợp tác của chúng tôi với ClearML để có trải nghiệm Ultralytics YOLOv5 nâng cao với tích hợp ML liền mạch, theo dõi thử nghiệm và nhiều tính năng khác.
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 hoạt động nghiên cứu và phát triển các công cụ nguồn mở tuyệt vời của mình, như YOLOv5, để giữ chúng miễn phí cho 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 bộ 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 thúc đẩy việc áp dụng ML, ClearML giúp ML dễ dàng tích hợp vào bất kỳ sản phẩm Phần mềm và Phần cứng nào hiện có.
Việc tích hợp này giúp việc huấn luyện mô hình YOLOv5 và sử dụng trình quản lý thử nghiệm ClearML để tự động theo dõi mô hình trở nên đơn giản hơn nữa. Bạn có thể dễ dàng chỉ định ID phiên bản tập dữ liệu ClearML làm dữ liệu đầu vào và ID này sẽ tự động được sử dụng để huấn luyện mô hình.
Đưa việc theo dõi thí nghiệm của bạn lên một tầm cao mới
Theo dõi mọi lần chạy đào tạo YOLOv5 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 bằng Công cụ quản lý phiên bản dữ liệu ClearML tích hợp.
Có được mAP tốt nhất bằng cách sử dụng Tối ưu hóa siêu tham số ClearML.
Biến mô hình YOLOv5 mới được đào tạo của bạn thành API chỉ bằng một vài lệnh bằng ClearML Serving.
Bạn có thể tùy ý sử dụng bao nhiêu công cụ trong số này, bạn có thể sử dụng trình quản lý thử nghiệm hoặc kết hợp 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: đăng ký miễn phí Dịch vụ lưu trữ ClearML hoặc thiết lập máy chủ của riêng bạn, xem tại đây .
Ngay cả máy chủ cũng là mã nguồn mở, do đó nếu bạn đang xử lý dữ liệu nhạy cảm thì không có vấn đề gì!
Cài đặt gói python clearml: pip install clearml
Kết nối ClearML SDK với máy chủ bằng cách tạo thông tin xác thực (đi tới đầu trang bên phải đến Cài đặt → Không gian làm việc → Tạo thông tin xác thực 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ế là xong! Bạn đã sẵn sàng để bắt đầu...
Đào tạo YOLOv5 với ClearML
Để bật tính năng theo dõi thử nghiệm ClearML, chỉ cần cài đặt gói pip ClearML.
pip cài đặt clearml
Điều này sẽ cho phép tích hợp với tập lệnh đào tạo YOLOv5. Mọi lần chạy đào tạo từ bây giờ sẽ được trình quản lý thử nghiệm ClearML ghi lại và lưu trữ. Nếu bạn muốn thay đổi project_name hoặc task_name, hãy chuyển đến trình ghi nhật ký tùy chỉnh của chúng tôi, nơi bạn có thể thay đổi: utils/loggers/clearml/clearml_utils.py
Tệp mô hình (sử dụng --save-period n để lưu điểm kiểm tra sau mỗi n kỷ nguyên)
Đầu ra của bảng điều khiển
Số vô hướng (mAP_0.5, mAP_0.5:0.95, độ chính xác, khả năng thu hồi, mất mát, tốc độ học, ...)
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 biểu đồ được tạo ra như biểu đồ tương quan nhãn và ma trận nhầm lẫn
Hình ảnh có hộp giới hạn theo từng thời đại
Khảm theo thời đại
Hình ảnh xác thực theo từng thời đại
Không tệ lắm! Bây giờ, chúng ta có thể trực quan hóa tất cả thông tin này trong Giao diện người dùng ClearML để có cái nhìn tổng quan về tiến trình đào tạo của mình. Thêm các cột tùy chỉnh vào chế độ xem bảng (ví dụ như mAP_0.5) để bạn có thể dễ dàng sắp xếp theo mô hình có hiệu suất 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ó thể làm được nhiều hơn nữa 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 đọc tiếp để tìm hiểu cách thực hiện nhé!
Quản lý phiên bản tập dữ liệu
Việc phân chia phiên bản dữ liệu riêng biệt với mã thường là một ý tưởng hay và cũng 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à 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!
Chuẩn bị bộ dữ liệu của bạn
Kho lưu trữ YOLOv5 hỗ trợ một số tập 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 tập dữ liệu được tải xuống thư mục ../datasets liên quan đến thư mục gốc của 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 bằng các tập lệnh do yolov5 cung cấp, bạn sẽ nhận được cấu trúc thư mục này:
.. |_ yolov5 |_ tập 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 tập dữ liệu của riêng bạn, miễn là bạn tuân thủ 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 tập dữ liệu⚠️. Các tệp YAML này chứa thông tin mà ClearML sẽ cần để sử dụng tập dữ liệu một cách chính xác. Tất nhiên, bạn cũng có thể tự tạo tệp này, chỉ cần làm theo cấu trúc của các tệp YAML mẫu.
Về cơ bản, chúng ta cần các khóa sau: path, train, test, val, nc, names.
Bây giờ chúng ta đã có các thử nghiệm và phiên bản dữ liệu, đã đến lúc xem xét những gì chúng ta có thể xây dựng dựa trên đó!
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. Trê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 ta có thể tự động chạy lại nó với các tham số mới này, về cơ bản đây là những gì HPO thực hiện!
Để 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 tác vụ đào tạo đã được chạy ít nhất một lần, vì vậy nó nằm trong trình quản lý thử nghiệm ClearML, 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() để đưa nó vào hàng đợi ClearML và để một tác nhân từ xa làm việc trên 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 RandomSearch pip install optuna python utils/loggers/clearml/hpo.py
Thực hiện từ xa (Nâng cao)
Chạy HPO cục bộ rất tiện lợi, nhưng nếu chúng ta muốn chạy thử nghiệm trên một máy tính từ xa thì sao? Có thể bạn có quyền truy cập vào một máy tính GPU mạnh mẽ tại chỗ, hoặc bạn có ngân sách để sử dụng GPU đám mây. Đây chính là lúc ClearML Agent phát huy tác dụng.
Tóm lại: mọi thử nghiệm được theo dõi bởi trình quản lý thử nghiệm đều chứa đủ thông tin để tái tạo thử nghiệm đó trên một máy khác (các gói đã cài đặt, các thay đổi chưa cam kết, v.v.). Vì vậy, một tác nhân ClearML thực hiện chính xác như vậy: nó lắng nghe hàng đợi các tác 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 trong khi vẫn báo cáo các số vô hướng, biểu đồ, v.v. cho trình 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 GPU cục bộ, máy tính xách tay của bạn) thành tác nhân ClearML chỉ bằng cách chạy:
daemon clearml-agent --queue [--docker]
Sao chép, Chỉnh sửa và Xếp hàng
Với tác nhân của chúng ta đang chạy, chúng ta có thể 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 ta 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 nó
🎯 Chỉnh sửa các siêu tham số theo ý muốn của bạn
⏳ Đưa tác vụ vào bất kỳ hàng đợi nào bằng cách nhấp chuột phải vào tác vụ đó
Thực hiện một nhiệm 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 tập lệnh đào tạo YOLOv5 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 khi trình ghi ClearML đã đượ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 tập lệnh đào tạo sau khi 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 hàng đợi!
Công nhân tự động mở rộng quy mô
ClearML cũng đi kèm với bộ điều chỉnh tự động! Công cụ này sẽ tự động khởi tạo các máy chủ từ xa mới trên nền tảng đám mây bạn chọn (AWS, GCP, Azure) và biến chúng thành tác nhân ClearML cho bạn bất cứ khi nào phát hiện có thử nghiệm trong hàng đợi. Sau khi xử lý xong các tác vụ, bộ điều chỉnh tự động sẽ tự động tắt các máy chủ từ xa và bạn sẽ không phải trả phí nữa! Xem video hướng dẫn sử dụng bộ điều chỉnh tự động bên dưới.