Meet YOLO26: next-gen vision AI.

Công thức huấn luyện YOLO26

Giới thiệu

Hướng dẫn này ghi lại chính xác công thức huấn luyện được sử dụng để tạo ra các checkpoint huấn luyện trước chính thức của YOLO26 trên COCO. Mọi siêu tham số hiển thị ở đây đều đã được nhúng sẵn trong các file weights .pt được phát hành và có thể được kiểm tra theo lập trình.

Việc hiểu rõ cách huấn luyện các mô hình cơ sở giúp bạn đưa ra quyết định tốt hơn khi tinh chỉnh: nên giữ lại các tăng cường dữ liệu nào, nên điều chỉnh trọng số hàm mất mát nào và các cài đặt bộ tối ưu hóa nào hoạt động tốt nhất cho kích thước tập dữ liệu của bạn.

Hướng dẫn này dành cho ai?

Hướng dẫn này dành cho các chuyên gia muốn hiểu những gì đã được đưa vào các checkpoint chính thức của YOLO26 — không chỉ kiến trúc, mà cả các lịch trình tốc độ học, các pipeline tăng cường và các trọng số mất mát đã định hình hiệu suất của chúng. Hãy sử dụng thông tin này để đưa ra các lựa chọn sáng suốt khi tinh chỉnh trên dữ liệu của riêng bạn.

Kiểm tra các đối số huấn luyện

Mọi checkpoint của Ultralytics đều lưu trữ cấu hình huấn luyện đầy đủ được sử dụng để tạo ra nó. Bạn có thể kiểm tra các cài đặt này bất kỳ lúc nào:

Kiểm tra các đối số huấn luyện của checkpoint
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])

Cách này hoạt động với bất kỳ checkpoint .pt nào — bao gồm cả các bản phát hành chính thức và các mô hình bạn tự tinh chỉnh. Để xem danh sách đầy đủ các đối số huấn luyện có thể cấu hình, hãy xem tài liệu tham khảo cấu hình huấn luyện.

Tổng quan về huấn luyện

Tất cả các mô hình cơ sở YOLO26 đều được huấn luyện trên COCO ở độ phân giải 640x640 sử dụng bộ tối ưu hóa MuSGD với batch size128. Các mô hình được khởi tạo từ các weights huấn luyện trước trung gian và được tinh chỉnh với các siêu tham số tìm thấy thông qua tìm kiếm tiến hóa. Nhật ký huấn luyện và chỉ số đầy đủ cho mọi kích thước mô hình đều có sẵn trên Nền tảng Ultralytics:

Các lựa chọn thiết kế chính trên tất cả các kích thước:

  • Huấn luyện end-to-end (end2end=True) với head một-một không cần NMS
  • Bộ tối ưu hóa MuSGD kết hợp SGD với các cập nhật trực giao hóa kiểu Muon cho các trọng số conv
  • Tăng cường mosaic mạnh (xác suất ~0.9-1.0) bị vô hiệu hóa trong 10 epoch cuối (close_mosaic=10)
  • Tăng cường tỷ lệ (scale augmentation) mạnh mẽ (0.56-0.95) để xử lý các đối tượng ở các kích thước khác nhau
  • Xoay/cắt (rotation/shear) tối thiểu cho hầu hết các kích thước, giữ cho biến dạng hình học ở mức thấp

Siêu tham số theo kích thước mô hình

Bộ tối ưu hóa và Tốc độ học

Cài đặtNSMLX
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr00.00540.000380.000380.000380.00038
lrf0.04950.8820.8820.8820.882
momentum0.9470.9480.9480.9480.948
weight_decay0.000640.000270.000270.000270.00027
warmup_epochs0.980.990.990.990.99
epochs24570806040
batch128128128128128
imgsz640640640640640
Chiến lược tốc độ học

Mô hình N sử dụng tốc độ học ban đầu cao hơn với độ suy giảm nhanh (lrf=0.0495), trong khi các mô hình S/M/L/X sử dụng tốc độ học ban đầu thấp hơn nhiều với lịch trình nhẹ nhàng hơn (lrf=0.882). Điều này phản ánh các động lực hội tụ khác nhau của các mô hình nhỏ so với lớn — các mô hình nhỏ cần các cập nhật mạnh mẽ hơn để học hiệu quả.

Trọng số mất mát

Cài đặtNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Mô hình N ưu tiên hàm mất mát DFL, trong khi các mô hình S/M/L/X chuyển trọng tâm sang hồi quy bounding box. Hàm mất mát phân loại vẫn tương đối nhất quán trên tất cả các kích thước.

Pipeline tăng cường

Để có giải thích chi tiết về từng kỹ thuật, hãy xem hướng dẫn Tăng cường dữ liệu YOLO.

Cài đặtNSMLX
mosaic0.9090.9920.9920.9920.992
mixup0.0120.050.4270.4270.427
copy_paste0.0750.4040.3040.4040.404
scale0.5620.90.950.950.95
fliplr0.6060.3040.3040.3040.304
degrees1.11~0~0~0~0
shear1.46~0~0~0~0
translate0.0710.2750.2750.2750.275
hsv_h0.0140.0130.0130.0130.013
hsv_s0.6450.3530.3530.3530.353
hsv_v0.5660.1940.1940.1940.194
bgr0.1060.00.00.00.0

Các mô hình lớn hơn sử dụng tăng cường mạnh mẽ hơn về tổng thể (tăng cường mixup, copy-pastescale cao hơn), vì chúng có dung lượng lớn hơn và hưởng lợi từ điều chuẩn mạnh mẽ hơn. Mô hình N là kích thước duy nhất có tăng cường xoay, cắtBGR đáng kể.

Tham số huấn luyện nội bộ

Nâng cao: các tham số pipeline nội bộ

Các checkpoint cũng chứa các tham số đã được sử dụng trong pipeline huấn luyện nội bộ nhưng không được hiển thị dưới dạng các cài đặt có thể cấu hình bởi người dùng trong default.yaml:

Cài đặtMô tảNSMLX
muon_wTrọng số cập nhật Muon trong MuSGD0.5280.4360.4360.4360.436
sgd_wTrọng số cập nhật SGD trong MuSGD0.6740.4790.4790.4790.479
cls_wTrọng số phân loại nội bộ2.743.483.483.483.48
o2mTrọng số hàm mất mát head một-nhiều (one-to-many)1.00.7050.7050.7050.705
topkGán nhãn Top-k85555

Các giá trị này được ghi lại để đảm bảo tính tái lập nhưng không cần phải thiết lập khi tinh chỉnh (fine-tuning). Xem FAQ để biết thêm chi tiết.

Hướng dẫn tinh chỉnh

Khi tinh chỉnh YOLO26 trên tập dữ liệu của riêng bạn, bạn không cần phải sao chép toàn bộ công thức tiền huấn luyện (pretraining). Các trọng số tiền huấn luyện đã mã hóa sẵn các kiến thức về tăng cường dữ liệu (augmentation) và tối ưu hóa từ quá trình huấn luyện trên COCO. Để biết các phương pháp thực hành tốt nhất về huấn luyện chung, hãy xem Mẹo huấn luyện mô hình.

Bắt đầu đơn giản

Tinh chỉnh với các thiết lập mặc định
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Tinh chỉnh với các cài đặt mặc định là một nền tảng vững chắc. Chỉ điều chỉnh các siêu tham số (hyperparameters) nếu bạn có lý do cụ thể.

Khi nào cần điều chỉnh

Tập dữ liệu nhỏ (< 1.000 ảnh):

  • Giảm cường độ tăng cường dữ liệu: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Giảm tốc độ học (learning rate): lr0=0.001
  • Sử dụng ít epoch hơn với patience: epochs=50, patience=20
  • Cân nhắc đóng băng (freeze) các lớp backbone: freeze=10

Tập dữ liệu lớn (> 50.000 ảnh):

  • Bám sát công thức tiền huấn luyện hơn
  • Cân nhắc sử dụng optimizer=MuSGD cho các lần chạy dài hơn
  • Tăng cường độ tăng cường dữ liệu: mosaic=1.0, mixup=0.3, scale=0.9

Hình ảnh đặc thù theo lĩnh vực (trên không, y tế, dưới nước):

  • Tăng flipud=0.5 nếu hướng dọc thay đổi
  • Tăng degrees nếu các đối tượng xuất hiện ở các góc xoay tùy ý
  • Điều chỉnh hsv_shsv_v nếu điều kiện ánh sáng khác biệt đáng kể so với COCO

Để tối ưu hóa siêu tham số tự động, hãy xem Hướng dẫn tinh chỉnh siêu tham số.

Chọn kích thước model

ModelPhù hợp nhất choHướng dẫn về kích thước batch
YOLO26nThiết bị biên, di động, thời gian thực trên CPUBatch lớn (64-128) trên GPU người dùng
YOLO26sCân bằng giữa tốc độ và độ chính xácBatch trung bình (32-64)
YOLO26mĐộ chính xác cao hơn với tài nguyên tính toán vừa phảiBatch nhỏ hơn (16-32)
YOLO26lĐộ chính xác cao khi có GPUBatch nhỏ (8-16) hoặc đa GPU
YOLO26xĐộ chính xác tối đa, triển khai máy chủBatch nhỏ (4-8) hoặc đa GPU

Để biết các tùy chọn xuất và triển khai, xem Hướng dẫn xuấtTùy chọn triển khai mô hình.

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

Làm thế nào để xem các siêu tham số chính xác được sử dụng cho bất kỳ checkpoint nào?

Tải checkpoint với torch.load() và truy cập khóa train_args, hoặc sử dụng model.ckpt["train_args"] với Ultralytics API. Xem Kiểm tra tham số huấn luyện để biết các ví dụ hoàn chỉnh.

Tại sao số lượng epoch lại khác nhau cho mỗi kích thước mô hình?

Các mô hình lớn hơn hội tụ nhanh hơn trên COCO vì chúng có dung lượng lớn hơn. Mô hình N cần 245 epoch trong khi mô hình X chỉ cần 40. Khi tinh chỉnh trên tập dữ liệu của riêng bạn, số lượng epoch tối ưu phụ thuộc vào kích thước và độ phức tạp của tập dữ liệu chứ không phải kích thước mô hình. Hãy sử dụng early stopping (patience) để tìm điểm dừng thích hợp một cách tự động.

Tôi có nên sử dụng MuSGD để tinh chỉnh không?

Khi optimizer=auto (mặc định), Ultralytics tự động chọn MuSGD cho các đợt huấn luyện dài (>10.000 lần lặp) và AdamW cho các đợt ngắn hơn. Bạn có thể đặt optimizer=MuSGD một cách rõ ràng nếu muốn. Để biết thêm về cách chọn trình tối ưu hóa, hãy xem tài liệu huấn luyện.

muon_w, sgd_w, cls_w, o2m, và topk trong checkpoint là gì?

Đây là các tham số nội bộ từ quy trình huấn luyện tạo ra các checkpoint cơ sở. Chúng được lưu trữ để đảm bảo tính tái lập nhưng không phải là các thiết lập người dùng có thể cấu hình trong default.yaml. Bạn không cần phải thiết lập chúng khi tinh chỉnh. Xem Tham số huấn luyện nội bộ để biết chi tiết.

Tôi có thể sao chép chính xác quy trình tiền huấn luyện từ đầu không?

Các checkpoint được tạo bằng một nhánh huấn luyện nội bộ với các tính năng bổ sung không có trong mã nguồn công khai (như trọng số o2mcls_w có thể cấu hình). Bạn có thể đạt được kết quả rất gần bằng cách sử dụng các siêu tham số được ghi lại trên trang này với gói Ultralytics công khai, nhưng để tái lập chính xác cần phải có nhánh nội bộ.

Bình luận