YOLO Vision 2026:

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 quy trình training đượ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 hyperparameter được hiển thị ở đây đều đã được nhúng trong trọng số .pt được phát hành và có thể được kiểm tra bằng lập trình.

Việc nắm rõ những gì đã được đưa vào các checkpoint chính thức — không chỉ kiến trúc, mà còn cả lịch trình learning rate, các đường ống tăng cường dữ liệu và trọng số tổn thất định hình hiệu suất của chúng — giúp bạn đưa ra các quyết định tốt hơn khi fine-tuning: nên giữ lại các data augmentations nào, điều chỉnh trọng số loss function nào và cài đặt trình 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.

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

Tất cả các model cơ sở YOLO26 đều được huấn luyện trên COCO ở độ phân giải 640x640 bằng cách sử dụng bộ tối ưu hóa MuSGD với batch size 128. Thay vì bắt đầu từ trọng số ngẫu nhiên trong một lần chạy duy nhất, các model đượ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 siêu tham số được tìm thấy thông qua evolutionary search. Nhật ký huấn luyện đầy đủ và các số liệu cho mọi kích thước model đề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 đầu cuối (End-to-end training) (end2end=True) với phần đầu one-to-one không cần NMS
  • Trình tối ưu hóa MuSGD kết hợp SGD với các bản cập nhật trực giao theo phong cách Muon cho các ma trận trọng số (trọng số tuyến tính 2D và bộ lọc conv 4D, được định hình lại thành 2D)
  • Tăng cường mosaic nặng (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

Kiể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"])

Kết quả đầu ra liệt kê cấu hình đầy đủ gồm hơn 100 mục, bao gồm mọi giá trị quy trình được tài liệu hóa 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

Điều 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 lẫn các mô hình tự tinh chỉnh của riêng bạn. Để có 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.

Hyperparameter huấn luyện YOLO26 theo quy mô mô hình#

Các bảng dưới đây nhóm quy trình theo danh mục — trình tối ưu hóa và lịch trình, trọng số tổn thất và tăng cường. Mọi giá trị đều đến thẳng từ train_args được nhúng trong các checkpoint được phát hành.

Optimizer 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 tốc độ học ban đầu cao hơn với độ suy giảm dốc (lrf=0.0495), trong khi các mô hình S/M/L/X sử dụng LR 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 động lực hội tụ khác nhau giữa các mô hình nhỏ hơn và 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 tập hiệu quả.

Trọng số hàm mất mát (Loss Weights)#

Trọng số tổn thất cân bằng ba thành phần của tổn thất phát hiện — hồi quy IoU bounding box (box), phân loại (cls) và một số hạn hồi quy khoảng cách hộp (dfl). Lưu ý rằng YOLO26 không có DFL sẽ tái sử dụng mức tăng dfl để làm trọng số cho tổn thất L1 trên khoảng cách hộp được chuẩn hóa thay vì tổn thất tiêu cự phân phối (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 số hạn 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. Tổn thất phân loại vẫn tương đối ổn định trên tất cả các kích thước.

Quy trình Augmentation#

Để 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 giá trị được hiển thị là ~0 dưới 0.01 trong các checkpoint thực tế (ví dụ: degrees=0.00012 cho mô hình S) — việc tăng cường dữ liệu thực tế bị vô hiệu hóa.

Các mô hình lớn hơn sử dụng việc tăng cường mạnh mẽ hơn nói chung (mixup, copy-paste và scale cao hơn), vì chúng có dung lượng lớn hơn và hưởng lợi từ regularization mạnh hơn. Mô hình N là kích thước duy nhất có sự tăng cường xoay, trượt và BGR có ý nghĩa.

Tham 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 phơi bày dưới dạng cài đặt có thể cấu hình của 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 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 để biết ý nghĩa của chúng khi fine-tuning.

Fine-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 tái tạo toàn bộ quy trình huấn luyện trước. Các trọng số đã được huấn luyện trước đã mã hóa kiến thức tăng cường và tối ưu hóa từ quá trình huấn luyện COCO. Để biết thêm các phương pháp hay nhất về huấn luyện chung, hãy xem Mẹo Huấn luyện Mô hình.

Fine-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ể.

Khi 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 độ tăng cường: 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 epochs hơn với tính năng kiên nhẫn (patience): epochs=50, patience=20
  • Cân nhắ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
  • Cân nhắc optimizer=MuSGD cho các lần chạy dài hơn
  • Tăng cường độ tăng cường: 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 hyperparameter tự động, hãy xem Hướng dẫn Tinh chỉnh Hyperparameter.

Chọ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.

Kết luận#

Các checkpoint YOLO26 đi kèm với toàn bộ quy trình huấn luyện được nhúng sẵn, do đó các hyperparameter chính xác đằng sau mọi kích thước mô hình luôn chỉ cách một lần tra cứu train_args. Bắt đầu fine-tuning từ các giá trị mặc định, điều chỉnh một cách có chủ đích 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ó thắc mắc trong quá trình thực hiện, hãy hỏi cộng đồng trên kho lưu trữ GitHub Ultralytics hoặc máy chủ Discord Ultralytics.

Câu hỏi thường gặp#

  • 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 Checkpoint YOLO26 để có các ví dụ hoàn chỉ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 của chúng 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 cho 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 chứ không phải kích thước mô hình. Sử dụng early stopping (patience) để tự động tìm điểm dừng phù hợp.

  • 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 chạy huấn luyện dài hơn (>10.000 vòng lặp) và AdamW cho các lần chạy 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 thức hoạt động của MuSGD, hãy xem tài liệu huấn luyện.

  • Đâ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 tạo. Chúng không phải là các cài đặt có thể cấu hình của người dùng trong default.yaml, và việc truyền chúng vào model.train() sẽ gây ra lỗi đối số không hợp lệ — gói công khai không đọc chúng. Bạn không cần phải thiết lập chúng khi fine-tuning; hãy xem Tham số Huấn luyện Nội bộ để biết giá trị của chúng theo kích thước mô hình.

  • Không hẳn vậy — các checkpoint được tạo ra 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ơ mã nguồn công khai (như trọng số o2m có thể cấu hình và cls_w). Bạn có thể nhận được kết quả rất gần bằng cách sử dụng các hyperparameter được tài liệu hóa trên trang này với gói Ultralytics công khai, nhưng việc tái tạo chính xác đòi hỏi nhánh nội bộ.

Những người đóng góp

Bình luận