YOLO26 훈련 레시피
소개
이 안내서는 정확한 내용을 설명합니다 교육 공식 제품을 제조하는 데 사용된 레시피 YOLO26 사전 학습된 체크포인트 COCO. 모든 초매개변수 여기에 표시된 내용은 이미 출시된 버전에 포함되어 있습니다 .pt 가중치가 지정되어 있으며, 프로그래밍 방식으로 확인할 수 있습니다.
기본 모델이 어떻게 훈련되었는지 이해하면, 파인 튜닝 시 어떤 데이터 증강 기법을 유지할지, 어떤 손실 함수 가중치를 조정할지, 그리고 데이터셋 규모에 가장 적합한 최적화기 설정이 무엇인지에 대해 더 나은 결정을 내리는 데 도움이 됩니다.
이 가이드는 누구를 위한 것인가요?
이 가이드는 YOLO26의 공식 체크포인트에 어떤 요소들이 반영되었는지 이해하고 싶은 실무자들을 위한 것입니다. 아키텍처뿐만 아니라, 성능을 결정짓는 학습률 스케줄, 데이터 증강 파이프라인, 손실 함수 가중치까지 다룹니다. 이 정보를 활용하여 자체 데이터로 모델 튜닝을 진행할 때 합리적인 결정을 내리시기 바랍니다.
훈련 인자 검사
모든 Ultralytics 해당 체크포인트를 생성하는 데 사용된 전체 훈련 구성이 저장됩니다. 이 설정은 언제든지 확인할 수 있습니다:
체크포인트 훈련 인자 검사
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])
import torch
# Load any official checkpoint
ckpt = torch.load("yolo26n.pt", map_location="cpu", weights_only=False)
# Print all training arguments
for k, v in sorted(ckpt["train_args"].items()):
print(f"{k}: {v}")
이 방법은 어떤 경우에도 적용됩니다 .pt 체크포인트 — 공식 릴리스와 사용자가 직접 미세 조정한 모델 모두에 적용됩니다. 구성 가능한 훈련 인수의 전체 목록은 다음을 참조하십시오. 교육 구성 안내.
교육 개요
모든 YOLO26 기본 모델은 COCO 640x640 COCO 배치 크기 128, MuSGD 최적화기를 적용해 훈련되었습니다. 모델은 사전 훈련된 중간 가중치로 초기화된 후, 진화적 탐색을 통해 도출된 하이퍼파라미터로 미세 조정되었습니다. 모든 모델 크기에 대한 전체 훈련 로그와 평가 지표는 Ultralytics 확인할 수 있습니다:
모든 사이즈에 적용된 주요 디자인 특징:
- 전 과정 교육 (
end2end=True) NMS 일대일 헤드 - SGD 뮤온(Muon) 방식의 직교화 업데이트를 결합한 컨볼루션 가중치용 MuSGD 최적화기
- 대규모 모자이크 보강 (확률 약 0.9~1.0) 지난 10 에포크 동안 비활성화됨 (
close_mosaic=10) - 다양한 크기의 물체를 처리하기 위한 공격적인 스케일 확대 (0.56~0.95)
- 대부분의 사이즈에서 회전 및 전단 변형을 최소화하여 기하학적 왜곡을 낮게 유지합니다
모델 규모별 하이퍼파라미터
최적화기와 학습률
| 설정 | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | 무스그디 | 무스그디 | 무스그디 | 무스그디 | 무스그디 |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
학습률 전략
N 모델은 초기 학습률을 높게 설정하고 급격하게 감소시키는 방식을 사용했다(lrf=0.0495), 반면 S/M/L/X 모델은 훨씬 낮은 초기 학습률과 완만한 학습 일정을 사용했으며 (lrf=0.882). 이는 소규모 모델과 대규모 모델 간의 수렴 역학이 다르다는 점을 반영한 것으로, 소규모 모델은 효과적으로 학습하기 위해 더 적극적인 업데이트가 필요합니다.
손실 중량
| 설정 | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
N 모델은 DFL 손실 함수를 우선시하는 반면, S/M/L/X 모델은 바운딩 박스 회귀에 중점을 둡니다. 분류 손실 함수는 모든 크기에서 비교적 일관되게 유지됩니다.
증강 파이프라인
각 기법에 대한 자세한 설명은 YOLO 증강 가이드를 참조하십시오.
| 설정 | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
더 큰 모델들은 용량이 더 크고 강력한 정규화의 이점을 누리기 때문에 전반적으로 더 공격적인 데이터 증강 기법(더 높은 믹스업, 복사-붙여넣기, 스케일링)을 사용합니다. N 모델은 회전, 전단, BGR 증강이 의미 있게 적용되는 유일한 크기입니다.
내부 훈련 매개변수
고급: 내부 파이프라인 매개변수
이 체크포인트에는 내부 훈련 파이프라인에서 사용되었으나 아니 에서 사용자 설정으로 제공되는 default.yaml:
| 설정 | 설명 | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | MuSGD에서 뮤온 업데이트 가중치 | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | MuSGD에서의 SGD 가중치 | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | 내부 가중치 | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | 일대다 손실 가중치 | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Top-k 레이블 할당 | 8 | 5 | 5 | 5 | 5 |
이 설정들은 재현성을 위해 기록된 것이지만, 미세 조정 시에는 설정할 필요가 없습니다. 자세한 내용은 FAQ를 참조하십시오.
미세 조정 지침
자신의 데이터셋으로 YOLO26을 미세 조정할 때는 사전 학습 과정을 모두 재현할 필요가 없습니다. 사전 학습된 가중치에는 이미 COCO 과정에서 얻은 데이터 변형 및 최적화 지식이 반영되어 있습니다. 보다 일반적인 훈련 모범 사례에 대해서는 ‘모델 훈련 팁’을 참조하십시오.
간단하게 시작하기
기본값으로 세부 조정
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
yolo train model=yolo26n.pt data=your-dataset.yaml epochs=100 imgsz=640
기본값을 사용한 미세 조정은 훌륭한 기준점이 됩니다. 특별한 이유가 있는 경우에만 하이퍼파라미터를 조정하십시오.
언제 조정해야 하는가
Small datasets (< 1,000 images):
- 증강 강도 감소:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - 학습률 낮추기:
lr0=0.001 - 더 적게 사용하세요 epochs 인내심을 가지고:
epochs=50,patience=20 - 백본 계층을 고정하는 방안을 고려해 보십시오:
freeze=10
대규모 데이터 세트(50,000장 이상의 이미지):
- 사전 훈련 레시피를 더 충실히 따르세요
- 고려해 보십시오
optimizer=MuSGD장거리 달리기를 위해 - 증강 효과 강화:
mosaic=1.0,mixup=0.3,scale=0.9
특정 분야별 영상 (항공, 의료, 수중):
- 증가
flipud=0.5세로 방향이 달라지는 경우 - 증가
degrees물체가 임의의 회전 각도로 나타날 경우 - 조정
hsv_s및hsv_v조명 조건이 COCO와 크게 다를 경우
자동화된 하이퍼파라미터 최적화에 대해서는 ‘하이퍼파라미터 튜닝’ 가이드를 참조하십시오.
모델 사이즈 선택
| 모델 | 최적 용도 | 배치 크기 안내 |
|---|---|---|
| YOLO26n | 엣지 디바이스, 모바일, CPU 기반 실시간 처리 | 일반 소비자용 GPU에서의 대용량 배치(64~128) |
| YOLO26s | 속도와 정확성의 조화 | 중간 규모 배치 (32~64개) |
| YOLO26m | 적당한 연산량으로 더 높은 정확도 | 소량 배치 (16~32개) |
| YOLO26l | GPU 사용할 수 GPU 때 높은 정확도를 제공합니다 | 소량 배치(8~16개) 또는GPU |
| YOLO26x | 최고의 정확도, 서버 배포 | 소규모 배치(4~8개) 또는GPU |
내보내기 및 배포 옵션에 대해서는 ‘내보내기 가이드 ’와 ‘모델 배포 옵션’을 참조하십시오.
FAQ
특정 체크포인트에 사용된 정확한 하이퍼파라미터를 어떻게 확인할 수 있나요?
다음 명령을 사용하여 체크포인트를 불러옵니다 torch.load() 그리고 다음을 이용하십시오 train_args 키를 누르거나, 다음을 사용하세요 model.ckpt["train_args"] Ultralytics 를 사용하여. 참조 훈련 인자 검사 자세한 예시는 다음을 참조하십시오.
모델 크기에 따라 에포크 수가 다른 이유는 무엇인가요?
더 큰 모델은 처리 용량이 더 크기 COCO 데이터셋에서 더 빠르게 수렴합니다. N 모델은 245 에포크가 필요했던 반면, X 모델은 40 에포크만으로도 충분했습니다. 자체 데이터셋으로 미세 조정을 수행할 때는 최적의 에포크 수가 모델의 규모가 아니라 데이터셋의 크기와 복잡성에 따라 달라집니다. 조기 종료(patience)를 사용하여 적절한 중단 지점을 자동으로 찾습니다.
미세 조정에 MuSGD를 사용해야 할까요?
때 optimizer=auto (기본값), Ultralytics 선택합니다 무스그디 더 긴 훈련 실행(10,000회 이상 반복)의 경우, AdamW 더 짧은 것들에 대해. 명시적으로 설정할 수 있습니다 optimizer=MuSGD 원하신다면. 최적화기 선택에 대한 자세한 내용은 교육 자료.
무엇인가요 muon_w, sgd_w, cls_w, o2m및 topk 검문소에서?
이들은 기본 체크포인트를 생성한 훈련 파이프라인의 내부 매개변수입니다. 재현성을 위해 저장되지만, 아니 사용자가 설정할 수 있는 설정 default.yaml. 미세 조정 시에는 이 설정들을 지정할 필요가 없습니다. 참조: 내부 훈련 매개변수 자세한 내용은 참조하십시오.
처음부터 정확히 동일한 사전 훈련을 재현할 수 있을까요?
이 체크포인트는 공개 코드베이스에는 없는 추가 기능(예: 구성 가능한 o2m 무게와 cls_w). 공개된 Ultralytics 이 페이지에 설명된 하이퍼파라미터를 사용하면 매우 유사한 결과를 얻을 수 있지만, 정확히 동일한 결과를 재현하려면 내부 브랜치를 사용해야 합니다.