Hình ảnh đẹp the thao ảnh đẹp

Huấn luyện mô hình với Ultralytics YOLO

Giới thiệu

Việc huấn luyện một mô hình học sâu bao gồm việc cung cấp dữ liệu và điều chỉnh các tham số để mô hình có thể đưa ra các dự đoán chính xác. Chế độ Train trong Ultralytics YOLO26 được thiết kế để huấn luyện hiệu quả các mô hình phát hiện đối tượng, tận dụng tối đa khả năng của phần cứng hiện đại. Hướng dẫn này nhằm mục đích bao quát mọi chi tiết bạn cần để bắt đầu huấn luyện mô hình của riêng mình bằng cách sử dụng tập hợp tính năng mạnh mẽ của YOLO26.

Tại sao chọn Ultralytics YOLO để huấn luyện?

Dưới đây là một số lý do thuyết phục để chọn chế độ Train của YOLO26:

  • Hiệu quả: Tận dụng tối đa phần cứng của bạn, dù bạn đang sử dụng thiết lập một GPU hay mở rộng trên nhiều GPU.
  • Tính linh hoạt: Huấn luyện trên các tập dữ liệu tùy chỉnh bên cạnh các tập dữ liệu sẵn có như COCO, VOC và ImageNet.
  • Thân thiện với người dùng: Các giao diện CLI và Python đơn giản nhưng mạnh mẽ mang lại trải nghiệm huấn luyện trực quan.
  • Tính linh hoạt của siêu tham số: Một loạt các siêu tham số có thể tùy chỉnh để tinh chỉnh hiệu suất mô hình. Để kiểm soát sâu hơn, bạn có thể tùy chỉnh trình huấn luyện của riêng mình.
  • Huấn luyện trên Cloud: Huấn luyện trên các GPU cloud thông qua Ultralytics Platform với các chỉ số theo thời gian thực và tự động lưu checkpoint.

Các tính năng chính của chế độ Train

Sau đây là một số tính năng đáng chú ý của chế độ Train trong YOLO26:

  • Tự động tải xuống tập dữ liệu: Các tập dữ liệu tiêu chuẩn như COCO, VOC và ImageNet được tự động tải xuống trong lần sử dụng đầu tiên.
  • Hỗ trợ đa GPU: Mở rộng nỗ lực huấn luyện của bạn một cách liền mạch trên nhiều GPU để đẩy nhanh quá trình.
  • Cấu hình siêu tham số: Tùy chọn sửa đổi các siêu tham số thông qua các tệp cấu hình YAML hoặc các đối số CLI.
  • Trực quan hóa và Giám sát: Theo dõi thời gian thực các chỉ số huấn luyện và trực quan hóa quá trình học để có thông tin chi tiết tốt hơn.

Ví dụ sử dụng

Huấn luyện YOLO26n trên tập dữ liệu COCO8 trong 100 epoch với kích thước ảnh 640. Thiết bị huấn luyện có thể được chỉ định bằng đối số device. Nếu không có đối số nào được truyền, GPU device=0 sẽ được sử dụng nếu khả dụng; nếu không, device='cpu' sẽ được sử dụng. Xem phần Đối số bên dưới để biết danh sách đầy đủ các đối số huấn luyện.

Huấn luyện đa GPU

Huấn luyện đa GPU cho phép sử dụng tài nguyên phần cứng khả dụng hiệu quả hơn bằng cách phân phối khối lượng công việc huấn luyện trên nhiều GPU. Tính năng này khả dụng thông qua cả Python API và giao diện dòng lệnh. Để kích hoạt huấn luyện đa GPU, hãy chỉ định ID thiết bị GPU bạn muốn sử dụng.

Huấn luyện GPU nhàn rỗi

Huấn luyện GPU nhàn rỗi cho phép tự động chọn các GPU ít được sử dụng nhất trong hệ thống đa GPU, tối ưu hóa việc sử dụng tài nguyên mà không cần chọn GPU thủ công. Tính năng này xác định các GPU khả dụng dựa trên các chỉ số sử dụng và bộ nhớ VRAM còn trống.

Thuật toán tự động chọn ưu tiên các GPU có:

  1. Phần trăm sử dụng hiện tại thấp hơn
  2. Bộ nhớ khả dụng cao hơn (VRAM trống)
  3. Nhiệt độ và mức tiêu thụ điện năng thấp hơn

Tính năng này đặc biệt có giá trị trong các môi trường điện toán dùng chung hoặc khi chạy nhiều tác vụ huấn luyện trên các mô hình khác nhau. Nó tự động thích ứng với các điều kiện thay đổi của hệ thống, đảm bảo phân bổ tài nguyên tối ưu mà không cần can thiệp thủ công.

Huấn luyện MPS trên Apple Silicon

Với sự hỗ trợ cho chip Apple silicon được tích hợp trong các mô hình Ultralytics YOLO, giờ đây bạn có thể huấn luyện các mô hình của mình trên các thiết bị sử dụng framework Metal Performance Shaders (MPS) mạnh mẽ. MPS cung cấp một cách thực thi hiệu năng cao cho các tác vụ tính toán và xử lý hình ảnh trên chip silicon tùy chỉnh của Apple.

Để kích hoạt huấn luyện trên chip Apple silicon, bạn nên chỉ định 'mps' làm thiết bị khi bắt đầu quá trình huấn luyện. Dưới đây là ví dụ về cách bạn có thể thực hiện điều này trong Python và thông qua dòng lệnh:

Trong khi tận dụng sức mạnh tính toán của chip Apple silicon, điều này cho phép xử lý hiệu quả hơn các tác vụ huấn luyện. Để có hướng dẫn chi tiết hơn và các tùy chọn cấu hình nâng cao, vui lòng tham khảo tài liệu PyTorch MPS.

Tiếp tục huấn luyện bị gián đoạn

Việc tiếp tục huấn luyện từ trạng thái đã lưu trước đó là một tính năng quan trọng khi làm việc với các mô hình học sâu. Điều này rất hữu ích trong nhiều tình huống khác nhau, như khi quá trình huấn luyện bị gián đoạn bất ngờ, hoặc khi bạn muốn tiếp tục huấn luyện mô hình với dữ liệu mới hoặc trong nhiều epoch hơn.

Khi việc huấn luyện được tiếp tục, Ultralytics YOLO tải trọng số từ mô hình đã lưu cuối cùng và cũng khôi phục trạng thái bộ tối ưu hóa, trình lập lịch tốc độ học và số epoch. Điều này cho phép bạn tiếp tục quá trình huấn luyện một cách liền mạch từ nơi nó bị dừng lại.

Bạn có thể dễ dàng tiếp tục huấn luyện trong Ultralytics YOLO bằng cách đặt đối số resume thành True khi gọi phương thức train và chỉ định đường dẫn đến tệp .pt chứa các trọng số mô hình đã huấn luyện một phần.

Dưới đây là ví dụ về cách tiếp tục một quá trình huấn luyện bị gián đoạn bằng Python và thông qua dòng lệnh:

Bằng cách đặt resume=True, hàm train sẽ tiếp tục huấn luyện từ nơi nó bị dừng lại, sử dụng trạng thái được lưu trữ trong tệp 'path/to/last.pt'. Nếu đối số resume bị bỏ qua hoặc đặt thành False, hàm train sẽ bắt đầu một phiên huấn luyện mới.

Hãy nhớ rằng các checkpoint được lưu ở cuối mỗi epoch theo mặc định, hoặc theo các khoảng thời gian cố định bằng cách sử dụng đối số save_period, vì vậy bạn phải hoàn thành ít nhất 1 epoch để tiếp tục một lần huấn luyện.

Cài đặt Huấn luyện

Các cài đặt huấn luyện cho các mô hình YOLO bao gồm nhiều siêu tham số và cấu hình khác nhau được sử dụng trong quá trình huấn luyện. Những cài đặt này ảnh hưởng đến hiệu suất, tốc độ và độ chính xác của mô hình. Các cài đặt huấn luyện chính bao gồm batch size, tốc độ học, momentum và suy giảm trọng số. Ngoài ra, việc lựa chọn bộ tối ưu hóa, hàm mất mát và thành phần tập dữ liệu huấn luyện có thể tác động đến quá trình huấn luyện. Việc tinh chỉnh và thử nghiệm cẩn thận với các cài đặt này là rất quan trọng để tối ưu hóa hiệu suất.

Bộ tối ưu hóa MuSGD

Trong YOLO26, MuSGD là một bộ tối ưu hóa lai kết hợp các cập nhật SGD tiêu chuẩn với các cập nhật trực giao kiểu Muon.

Nó được khuyến nghị cho các quá trình huấn luyện YOLO26 dài hơn và các tập dữ liệu lớn hơn, nơi các cập nhật Muon trực giao có thể giúp ổn định việc tối ưu hóa.

Chỉ các tham số có param.ndim >= 2 (như trọng số tích chập) mới nhận được cập nhật kiểu Muon cùng với SGD, trong khi các tham số có chiều thấp hơn như các lớp chuẩn hóa batch và các hệ số thiên kiến (bias) vẫn giữ nguyên ở SGD tiêu chuẩn.

Khi optimizer=auto được sử dụng, Ultralytics tự động chọn MuSGD cho các lần huấn luyện dài hơn (thường khi số vòng lặp > 10000). Đối với các lần chạy ngắn hơn, trình huấn luyện quay lại sử dụng AdamW.

Ví dụ về cách sử dụng:

Xem phần triển khai trong ultralytics/optim/muon.py và logic tự động chọn bộ tối ưu hóa trong BaseTrainer.build_optimizer.

Các cài đặt và siêu tham số tăng cường dữ liệu

Các kỹ thuật tăng cường dữ liệu rất cần thiết để cải thiện độ bền và hiệu suất của các mô hình YOLO bằng cách đưa tính biến đổi vào dữ liệu huấn luyện, giúp mô hình khái quát hóa tốt hơn với dữ liệu chưa từng thấy. Bảng sau đây phác thảo mục đích và tác động của mỗi đối số tăng cường dữ liệu:

Những cài đặt này có thể được điều chỉnh để đáp ứng các yêu cầu cụ thể của tập dữ liệu và tác vụ hiện tại. Thử nghiệm với các giá trị khác nhau có thể giúp tìm ra chiến lược tăng cường tối ưu dẫn đến hiệu suất mô hình tốt nhất.

Ghi nhật ký

Trong khi huấn luyện một mô hình YOLO26, bạn có thể thấy việc theo dõi hiệu suất của mô hình theo thời gian là rất hữu ích. Đây là nơi ghi nhật ký phát huy tác dụng. Ultralytics YOLO hỗ trợ ba loại logger - Comet, ClearML và TensorBoard.

Để sử dụng một logger, hãy chọn nó từ menu thả xuống trong đoạn mã trên và chạy nó. Logger đã chọn sẽ được cài đặt và khởi tạo.

Comet

Comet là một nền tảng cho phép các nhà khoa học dữ liệu và nhà phát triển theo dõi, so sánh, giải thích và tối ưu hóa các thử nghiệm và mô hình. Nó cung cấp các chức năng như chỉ số thời gian thực, sự khác biệt về mã và theo dõi siêu tham số.

Để sử dụng Comet:

Hãy nhớ đăng nhập vào tài khoản Comet của bạn trên trang web của họ và lấy khóa API. Bạn sẽ cần thêm khóa này vào các biến môi trường hoặc script của mình để ghi lại các thử nghiệm.

ClearML

ClearML là một nền tảng mã nguồn mở giúp tự động hóa việc theo dõi các thử nghiệm và hỗ trợ chia sẻ tài nguyên hiệu quả. Nó được thiết kế để giúp các nhóm quản lý, thực thi và tái tạo công việc ML của họ một cách hiệu quả hơn.

Để sử dụng ClearML:

Sau khi chạy tập lệnh này, bạn sẽ cần đăng nhập vào tài khoản ClearML của mình trên trình duyệt và xác thực phiên làm việc.

TensorBoard

TensorBoard là một bộ công cụ trực quan hóa cho TensorFlow. Nó cho phép bạn trực quan hóa biểu đồ TensorFlow của mình, vẽ đồ thị các số liệu định lượng về quá trình thực thi biểu đồ và hiển thị dữ liệu bổ sung như hình ảnh đi qua nó.

Để sử dụng TensorBoard trong Google Colab:

Để sử dụng TensorBoard cục bộ, hãy chạy lệnh bên dưới và xem kết quả tại localhost:6006.

Lệnh này sẽ tải TensorBoard và trỏ nó đến thư mục nơi lưu trữ nhật ký đào tạo của bạn.

Sau khi thiết lập logger, bạn có thể tiếp tục đào tạo mô hình. Tất cả các số liệu đào tạo sẽ được tự động ghi lại trên nền tảng bạn đã chọn, và bạn có thể truy cập các nhật ký này để theo dõi hiệu suất mô hình theo thời gian, so sánh các mô hình khác nhau và xác định các lĩnh vực cần cải thiện.

Câu hỏi thường gặp (FAQ)

Tôi có thể đào tạo mà không cần GPU cục bộ không?

Có. Ultralytics Platform hỗ trợ đào tạo trên đám mây với các tín dụng miễn phí để bắt đầu. Tải lên tập dữ liệu của bạn, chọn một mô hình và GPU, sau đó đào tạo trực tiếp từ trình duyệt. Xem hướng dẫn đào tạo trên đám mây để biết chi tiết.

Làm cách nào để đào tạo một mô hình nhận diện đối tượng bằng Ultralytics YOLO26?

Để đào tạo một mô hình nhận diện đối tượng sử dụng Ultralytics YOLO26, bạn có thể sử dụng Python API hoặc CLI. Dưới đây là ví dụ cho cả hai:

Để biết thêm chi tiết, hãy tham khảo phần Cài đặt Đào tạo.

Các tính năng chính của chế độ Đào tạo (Train mode) trong Ultralytics YOLO26 là gì?

Các tính năng chính của chế độ Đào tạo trong Ultralytics YOLO26 bao gồm:

  • Tự động Tải xuống Tập dữ liệu: Tự động tải xuống các tập dữ liệu tiêu chuẩn như COCO, VOC và ImageNet.
  • Hỗ trợ Đa GPU: Mở rộng quy mô đào tạo trên nhiều GPU để xử lý nhanh hơn.
  • Cấu hình Siêu tham số (Hyperparameter): Tùy chỉnh các siêu tham số thông qua tệp YAML hoặc các đối số CLI.
  • Trực quan hóa và Giám sát: Theo dõi số liệu đào tạo theo thời gian thực để có thông tin chi tiết hơn.

Những tính năng này giúp việc đào tạo trở nên hiệu quả và tùy biến theo nhu cầu của bạn. Để biết thêm chi tiết, hãy xem phần Các tính năng chính của chế độ Đào tạo.

Làm cách nào để tiếp tục đào tạo từ một phiên bị gián đoạn trong Ultralytics YOLO26?

Để tiếp tục đào tạo từ một phiên bị gián đoạn, hãy đặt đối số resume thành True và chỉ định đường dẫn đến checkpoint đã lưu gần nhất.

Kiểm tra phần Tiếp tục Đào tạo bị Gián đoạn để biết thêm thông tin.

Làm cách nào để đào tạo mô hình trên một tập dữ liệu không cân bằng?

Sự mất cân bằng lớp xảy ra khi một số lớp có ít ví dụ hơn đáng kể so với các lớp khác trong dữ liệu đào tạo của bạn. Điều này có thể khiến mô hình hoạt động kém trên các lớp hiếm. Ultralytics YOLO hỗ trợ trọng số lớp thông qua đối số cls_pw để giải quyết vấn đề này.

Đối số cls_pw kiểm soát quyền lực trọng số lớp dựa trên tần suất lớp nghịch đảo:

  • cls_pw=0.0 (mặc định): Tắt trọng số lớp
  • cls_pw=1.0: Áp dụng trọng số tần suất nghịch đảo đầy đủ
  • Các giá trị từ 0.0 đến 1.0: Cung cấp trọng số một phần cho sự mất cân bằng vừa phải

Trọng số lớp được tính là (1.0 / class_counts) ^ cls_pw và được chuẩn hóa để giá trị trung bình của chúng bằng 1.0.

Tôi có thể đào tạo các mô hình YOLO26 trên chip Apple silicon không?

Có, Ultralytics YOLO26 hỗ trợ đào tạo trên chip Apple silicon sử dụng framework Metal Performance Shaders (MPS). Chỉ định 'mps' làm thiết bị đào tạo của bạn.

Để biết thêm chi tiết, hãy tham khảo phần Đào tạo MPS trên Apple Silicon.

Các cài đặt đào tạo phổ biến là gì và làm cách nào để cấu hình chúng?

Ultralytics YOLO26 cho phép bạn cấu hình nhiều cài đặt đào tạo khác nhau như kích thước batch, tốc độ học (learning rate), số epoch và nhiều cài đặt khác thông qua các đối số. Dưới đây là tổng quan ngắn gọn:

Để có hướng dẫn chuyên sâu về cài đặt đào tạo, hãy xem phần Cài đặt Đào tạo.