Meet YOLO26: next-gen vision AI.

Link to this sectionCông thức huấn luyện YOLO26#

Link to this sectionGiớ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 tiền huấn luyện YOLO26 chính thức trên COCO. Mọi hyperparameter được trình bày ở đây đã được tích hợp sẵn trong các trọng số .pt đã phát hành và có thể được kiểm tra theo lập trình.

Việc biết được những gì đã tạo nên các checkpoint chính thức — không chỉ kiến trúc, mà còn là các lịch trình learning rate, quy trình augmentation, và trọng số loss đã định hình hiệu suất của chúng — sẽ giúp bạn đưa ra quyết định tốt hơn khi fine-tuning: những data augmentations nào cần giữ lại, những trọng số loss function nào cần điều chỉnh, và các cài đặt optimizer nào hoạt động tốt nhất cho quy mô tập dữ liệu của bạn.

Link to this sectionTổng quan về huấn luyện#

Tất cả các mô hình cơ sở YOLO26 được huấn luyện trên COCO ở độ phân giải 640x640 sử dụng optimizer MuSGD với batch size 128. Thay vì bắt đầu từ các trọng số ngẫu nhiên trong một lần chạy duy nhất, các mô hình được khởi tạo từ các trọng số tiền huấn luyện trung gian và được tinh chỉnh bằng các hyperparameter tìm thấy thông qua tìm kiếm tiến hóa. Nhật ký huấn luyện đầy đủ và các số liệu cho mọi quy mô mô hình đều có sẵn trên Ultralytics Platform:

Các lựa chọn thiết kế chính trên tất cả các quy mô:

  • Huấn luyện end-to-end (end2end=True) với head one-to-one không cần NMS
  • Optimizer MuSGD kết hợp SGD với các bản cập nhật trực giao hóa kiểu Muon cho các ma trận trọng số (tham số có ndim >= 2, chẳng hạn như trọng số conv và linear)
  • Augmentation 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)
  • Augmentation tỷ lệ (scale) 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 quy mô, giữ cho biến dạng hình học ở mức thấp

Link to this sectionKiểm tra các tham số huấn luyện của Checkpoint YOLO26#

Mỗi checkpoint của Ultralytics lưu trữ cấu hình huấn luyện đầy đủ được sử dụng để tạo ra nó, vì vậy bạn có thể tự mình xác minh từng con số trên trang này:

Kiểm tra các tham số huấn luyện checkpoint
from ultralytics import YOLO

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

Đầu ra liệt kê cấu hình đầy đủ của hơn 100 mục, bao gồm mọi giá trị công thức được ghi lại trên trang này. Một đoạn trích cho yolo26n.pt:

batch: 128
...
box: 5.62767
...
close_mosaic: 10
cls: 0.56099
...
dfl: 9.03871
...
epochs: 245
...
lr0: 0.0054
lrf: 0.04952
...
optimizer: MuSGD

Cách này hoạt động với bất kỳ checkpoint .pt nào — cả các bản phát hành chính thức và các mô hình bạn tự fine-tune. Để 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 về cấu hình huấn luyện.

Link to this sectionHyperparameter huấn luyện YOLO26 theo quy mô mô hình#

Các bảng dưới đây nhóm công thức theo danh mục — optimizer và lịch trình, trọng số loss, và augmentation. Mọi giá trị đều đến trực tiếp từ train_args được tích hợp trong các checkpoint đã phát hành.

Link to this sectionOptimizer và Learning Rate#

Các cài đặt optimizer và lịch trình này đã thúc đẩy quá trình tiền huấn luyện COCO cho từng quy mô; hãy lưu ý cách mô hình N khác biệt với phần còn lại:

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 Learning rate

Mô hình N đã sử dụng learning rate khởi đầ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 LR khởi đầ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 mô hình lớn hơn — các mô hình nhỏ hơn cần các bản cập nhật mạnh mẽ hơn để học hiệu quả.

Link to this sectionTrọng số hàm mất mát (Loss Weights)#

Các trọng số loss cân bằng ba thành phần của loss phát hiện — hồi quy IoU bounding box (box), phân loại (cls), và một thuật ngữ hồi quy khoảng cách hộp (dfl). Lưu ý rằng YOLO26 không dùng DFL sẽ tái sử dụng mức tăng dfl để đánh trọng số loss L1 trên các khoảng cách hộp chuẩn hóa thay vì distribution focal loss:

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 thuật ngữ hồi quy khoảng cách dfl, trong khi các mô hình S/M/L/X chuyển trọng tâm sang hồi quy hộp dựa trên IoU. Loss phân loại vẫn tương đối ổn định trên tất cả các quy mô.

Link to this sectionQuy trình Augmentation#

Để có lời giải thích chi tiết về từng kỹ thuật, hãy xem hướng dẫn Augmentation 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 giá trị hiển thị là ~0 nằm dưới 0.01 trong các checkpoint thực tế (ví dụ: degrees=0.00012 cho mô hình S) — augmentation đó thực tế đã bị vô hiệu hóa.

Các mô hình lớn hơn sử dụng augmentation tổng thể mạnh mẽ hơn (mixup, copy-paste, và scale cao hơn), vì chúng có khả năng học lớn hơn và được hưởng lợi từ việc regularization mạnh hơn. Mô hình N là quy mô duy nhất có augmentation xoay, cắt, và BGR đáng kể.

Link to this sectionTham số huấn luyện nội bộ#

Nâng cao: các tham số quy trình nội bộ

Các checkpoint cũng chứa các tham số được sử dụng trong quy trình huấn luyện nội bộ nhưng không được hiển thị dưới dạng cài đặt do người dùng cấu hình 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 cho head one-to-many1.00.7050.7050.7050.705
topkGán nhãn Top-k85555

Xem mục FAQ về các tham số này để hiểu ý nghĩa của chúng khi thực hiện fine-tuning.

Link to this sectionFine-Tuning YOLO26 trên tập dữ liệu của bạn#

Khi fine-tuning 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 recipe). Các weights đã được huấn luyện sẵn đã mã hóa kiến thức về 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 hay nhất về huấn luyện tổng quát, hãy xem Mẹo huấn luyện mô hình.

Link to this sectionFine-Tune với cài đặt mặc định#

Fine-tune với các giá trị mặc định
from ultralytics import YOLO

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

Fine-tuning với các giá trị mặc định là một baseline mạnh mẽ. Chỉ điều chỉnh các siêu tham số nếu bạn có lý do cụ thể.

Link to this sectionKhi nào cần điều chỉnh các siêu tham số của YOLO26#

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

  • Giảm cường độ augmentation: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Giảm learning rate: lr0=0.001
  • Sử dụng ít epochs hơn với patience: epochs=50, patience=20
  • Xem xét việc đóng băng các lớp backbone: freeze=10

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

  • Phù hợp chặt chẽ hơn với công thức tiền huấn luyện
  • Xem xét optimizer=MuSGD cho các lần chạy dài hơn
  • Tăng cường augmentation: mosaic=1.0, mixup=0.3, scale=0.9

Hình ảnh chuyên biệt 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ố.

Link to this sectionChọn kích thước mô hình#

Mô hìnhPhù hợp nhất choHướng dẫn về Batch Size
YOLO26nThiết bị Edge, di động, thời gian thực trên CPUBatch lớn (64-128) trên GPU người dùng phổ thô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 mức 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, hãy xem Hướng dẫn XuấtTùy chọn Triển khai Mô hình.

Link to this sectionKết luận#

Các checkpoint YOLO26 đi kèm với công thức huấn luyện đầy đủ được nhúng bên trong, vì vậy các siêu tham số chính xác đằng sau mỗi kích thước mô hình luôn có thể được tìm thấy thông qua tra cứu train_args. Hãy bắt đầu fine-tuning từ các cài đặt mặc định, điều chỉnh cẩn thận bằng cách sử dụng các bảng trên trang này và xác minh mọi thay đổi dựa trên tập validation của riêng bạn. Nếu có câu hỏi phát sinh trong quá trình thực hiện, hãy hỏi cộng đồng trên kho lưu trữ Ultralytics GitHub hoặc máy chủ Ultralytics Discord.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLà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 bằng 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 các đối số huấn luyện của Checkpoint YOLO26 để biết các ví dụ đầy đủ.

Link to this sectionTại sao số lượng epoch lại khác nhau đối với mỗi kích thước mô hình?#

Các mô hình lớn hơn thường cần ít epoch hơn trên COCO vì dung lượng lớn hơn giúp tăng tốc hội tụ — mô hình X được huấn luyện trong 40 epoch so với 245 của N — mặc dù số lượng không hoàn toàn đơn điệu (S dùng 70, M dùng 80). Khi fine-tuning 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, không phải kích thước mô hình. Sử dụng tính năng dừng sớm (patience) để tìm điểm dừng phù hợp một cách tự động.

Link to this sectionTôi có nên sử dụng MuSGD để fine-tuning không?#

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

Link to this sectionCác tham số muon_w, sgd_w, cls_w, o2mtopk 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ở, được ghi lại trong train_args để đảm bảo tính tái lập. Chúng không phải là các cài đặt do người dùng cấu hình trong default.yaml, và việc chuyển chúng vào model.train() sẽ gây ra lỗi đối số không hợp lệ — gói phần mềm công khai không đọc các giá trị này. Bạn không cần thiết lập chúng khi fine-tuning; xem Các tham số huấn luyện nội bộ để biết giá trị của chúng theo từng kích thước mô hình.

Link to this sectionTôi có thể sao chép chính xác quá trình tiền huấn luyện từ đầu không?#

Không chính xác — các checkpoint được tạo bằng cách sử dụ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 cơ sở mã công khai (như trọng số o2mcls_w có thể cấu hình). Bạn có thể nhận được kết quả rất gần với thực tế 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 tạo chính xác thì cần nhánh nội bộ đó.

Người đóng góp

Bình luận