YOLO26 학습 레시피#
소개#
본 가이드는 COCO에서 공식 YOLO26 사전 학습된 체크포인트를 생성하는 데 사용된 정확한 훈련 레시피를 문서화합니다. 여기에 표시된 모든 하이브리드 파라미터는 이미 배포된 .pt 가중치에 내장되어 있으며 프로그래밍 방식으로 확인할 수 있습니다.
아키텍처뿐만 아니라 성능을 결정하는 learning rate 스케줄, augmentation 파이프라인, 손실 가중치 등 공식 체크포인트에 포함된 내용을 파악하면 fine-tuning 시 더 나은 결정을 내리는 데 도움이 됩니다. 유지할 data augmentations, 조정할 loss function 가중치, 그리고 데이터셋 크기에 가장 적합한 옵티마이저 설정을 선택할 수 있습니다.
학습 개요#
모든 YOLO26 기본 모델은 batch size 128과 함께 MuSGD 최적화 알고리즘을 사용하여 640x640 해상도의 COCO에서 학습되었습니다. 단일 실행에서 무작위 가중치로 시작하는 대신, 모델은 중간 사전 학습된 가중치에서 초기화되었고 evolutionary search를 통해 발견된 하이퍼파라미터로 정제되었습니다. 모든 모델 크기에 대한 전체 학습 로그 및 측정기준은 Ultralytics Platform에서 확인할 수 있습니다.
모든 크기에 걸친 주요 설계 선택:
- NMS가 없는 일대일 헤드를 사용하는 End-to-end training (
end2end=True) - 가중치 행렬(2D 선형 가중치 및 2D로 재배열되는 4D conv 필터)에 대한 Muon 스타일 직교화 업데이트와 SGD를 결합한 MuSGD 옵티마이저
- 마지막 10 에포크에서 비활성화된 강력한 모자이크 augmentation(~0.9-1.0 확률) (
close_mosaic=10) - 공격적인 스케일 증강(0.56-0.95, 다양한 크기의 객체를 처리하기 위함)
- 최소한의 회전/전단 변환(대부분의 크기에서 기하학적 왜곡을 낮게 유지)
YOLO26 체크포인트 학습 인수 검사#
모든 Ultralytics 체크포인트는 생성에 사용된 전체 학습 구성을 저장하므로, 이 페이지의 각 수치를 직접 확인할 수 있습니다:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])출력에는 이 페이지에 문서화된 모든 레시피 값을 포함하여 100개가 넘는 항목의 전체 구성이 나열됩니다. 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이는 공식 배포 버전이든 사용자 지정 파인튜닝 모델이든 모든 .pt 체크포인트에 작동합니다. 설정 가능한 전체 학습 인자 목록은 training configuration reference를 참조하세요.
모델 크기별 YOLO26 학습 하이퍼파라미터#
아래 표에서는 레시피를 옵티마이저 및 스케줄, 손실 가중치, augmentation 카테고리별로 그룹화합니다. 모든 값은 배포된 체크포인트에 내장된 train_args에서 직접 가져온 것입니다.
옵티마이저 및 학습률#
이러한 옵티마이저 및 스케줄 설정은 각 크기에 대한 COCO 사전 학습을 주도했습니다. N 모델이 나머지 모델과 어떻게 다른지 주목하십시오:
| 설정 | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
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 모델은 더 완만한 스케줄과 함께 훨씬 낮은 초기 LR(lrf=0.882)을 사용했습니다. 이는 소형 모델과 대형 모델의 서로 다른 수렴 동역학을 반영합니다. 소형 모델은 효과적으로 학습하기 위해 더 공격적인 업데이트가 필요합니다.
손실 가중치#
손실 가중치는 검출 손실의 세 가지 구성 요소인 bounding box IoU 회귀(box), 분류(cls), 그리고 상자 거리 회귀 항(dfl)의 균형을 맞춥니다. DFL이 없는 YOLO26은 분포 초점 손실(distribution focal loss) 대신 정규화된 상자 거리의 L1 손실에 가중치를 부여하기 위해 dfl 게인을 재용도한다는 점에 유의하세요:
| 설정 | 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 모델은 IoU 기반 상자 회귀에 비중을 둡니다. 분류 손실은 모든 크기에서 비교적 일관되게 유지됩니다.
증강 파이프라인#
각 기술에 대한 자세한 설명은 YOLO Data Augmentation guide를 참조하세요.
| 설정 | 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 |
~0으로 표시된 값은 실제 체크포인트에서 0.01 미만입니다(예: S 모델의 경우 degrees=0.00012). 즉, augmentation이 실제로 비활성화되어 있습니다.
대형 모델은 더 많은 용량을 가지고 있고 더 강한 regularization의 이점을 얻을 수 있으므로 전반적으로 더 공격적인 augmentation(더 높은 믹스업, 복사-붙여넣기, 스케일)을 사용합니다. N 모델은 의미 있는 회전, 전단(shear), BGR augmentation이 있는 유일한 크기입니다.
내부 학습 파라미터#
고급: 내부 파이프라인 파라미터
체크포인트에는 내부 학습 파이프라인에서 사용되었지만 default.yaml에서 사용자가 설정할 수 있는 설정으로 노출되지 않은 파라미터도 포함되어 있습니다:
| 설정 | 설명 | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | MuSGD의 Muon 업데이트 가중치 | 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 entry on these parameters를 참조하세요.
자체 데이터셋으로 YOLO26 파인 튜닝하기#
자체 데이터셋으로 YOLO26을 파인튜닝할 때 전체 사전 학습 레시피를 복제할 필요는 없습니다. 사전 학습된 가중치는 이미 COCO 학습의 augmentation 및 최적화 지식을 인코딩하고 있습니다. 보다 일반적인 학습 모범 사례는 Tips for Model Training을 참조하세요.
기본 설정으로 파인 튜닝하기#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)기본 설정으로 파인 튜닝하는 것은 강력한 기준점이 됩니다. 특별한 이유가 있는 경우에만 하이퍼파라미터를 조정하십시오.
YOLO26 하이퍼파라미터 조정 시기#
소규모 데이터셋 (1,000장 미만 이미지):
- Augmentation 강도 감소:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - 낮은 학습률:
lr0=0.001 - patience를 적용하여 더 적은 epochs 사용:
epochs=50,patience=20 - 백본 레이어 동결 고려:
freeze=10
대규모 데이터셋 (50,000장 초과 이미지):
- 사전 학습 레시피와 최대한 유사하게 일치
- 더 긴 실행을 위해
optimizer=MuSGD고려 - Augmentation 증가:
mosaic=1.0,mixup=0.3,scale=0.9
도메인 특화 이미지 (항공, 의료, 수중):
- 수직 방향이 다양할 경우
flipud=0.5증가 - 개체가 임의의 회전으로 나타나는 경우
degrees증가 - 조명 조건이 COCO와 크게 다른 경우
hsv_s및hsv_v조정
자동화된 하이퍼파라미터 최적화에 대해서는 Hyperparameter Tuning guide를 참조하세요.
모델 크기 선택#
| 모델 | 최적 대상 | 배치 크기 지침 |
|---|---|---|
| YOLO26n | 엣지 디바이스, 모바일, CPU 실시간 처리 | 일반 GPU에서 대규모 배치 (64-128) |
| YOLO26s | 속도와 정확도의 균형 | 중간 규모 배치 (32-64) |
| YOLO26m | 적절한 컴퓨팅 리소스로 높은 정확도 확보 | 소규모 배치 (16-32) |
| YOLO26l | GPU 사용 가능 시 높은 정확도 | 소규모 배치 (8-16) 또는 멀티 GPU |
| YOLO26x | 최대 정확도, 서버 배포 | 소규모 배치 (4-8) 또는 멀티 GPU |
내보내기 및 배포 옵션에 대해서는 Export guide 및 Model Deployment Options를 참조하세요.
결론#
YOLO26 체크포인트는 전체 학습 레시피가 내장된 상태로 제공되므로 모든 모델 크기 뒤에 있는 정확한 하이퍼파라미터를 train_args 조회 한 번으로 확인할 수 있습니다. 기본값에서 파인튜닝을 시작하고, 이 페이지의 표를 사용하여 신중하게 조정한 뒤, 자체 검증 세트와 비교하여 모든 변경 사항을 확인하세요. 진행 중에 질문이 생기면 Ultralytics GitHub repository 또는 Ultralytics Discord server의 커뮤니티에 문의하세요.
FAQ#
torch.load()(으)로 체크포인트를 로드하고train_args키에 액세스하거나, Ultralytics API와 함께model.ckpt["train_args"]를 사용하세요. 전체 예제는 Inspecting YOLO26 Checkpoint Training Args를 참조하세요.대형 모델은 더 큰 용량으로 인해 수렴이 빨라지기 때문에 일반적으로 COCO에서 더 적은 에포크가 필요했습니다(X 모델은 N의 245에 비해 40 에포크 동안 학습됨). 단, 횟수가 엄격하게 단조증가하지는 않습니다(S는 70, M은 80 사용). 자체 데이터셋으로 파인튜닝할 때 최적의 에포크 수는 모델 크기가 아니라 데이터셋의 크기와 복잡성에 따라 다릅니다. 적절한 중단점을 자동으로 찾으려면 조기 종료(
patience)를 사용하세요.보통 선택할 필요가 없습니다. 기본
optimizer=auto을 사용하면 Ultralytics는 더 긴 학습 실행(>10,000회 반복)에는 MuSGD를, 더 짧은 실행에는 AdamW를 자동으로 선택합니다. 선호하는 경우optimizer=MuSGD을 명시적으로 설정할 수 있습니다. MuSGD 작동 방식에 대한 자세한 내용은 training documentation을 참조하세요.이는 재현성을 위해
train_args에 기록된, 베이스 체크포인트를 생성한 학습 파이프라인의 내부 파라미터입니다. 이는default.yaml에서 사용자가 설정할 수 있는 설정이 아니며,model.train()에 전달하면 잘못된 인수 오류가 발생합니다. 공개 패키지는 이를 읽지 않습니다. 파인튜닝 시 이를 설정할 필요는 없습니다. 모델 크기별 값은 Internal Training Parameters를 참조하세요.정확히 그렇지는 않습니다. 체크포인트는 공개 코드베이스에 없는 추가 기능(예: 설정 가능한
o2m가중치 및cls_w)이 포함된 내부 학습 브랜치를 사용하여 생성되었습니다. 공개 Ultralytics 패키지와 이 페이지에 문서화된 하이퍼파라미터를 사용하면 매우 근접한 결과를 얻을 수 있지만, 정확한 복원을 위해서는 내부 브랜치가 필요합니다.