YOLO26 학습 레시피
소개
이 가이드는 COCO에서 공식 YOLO26 사전 학습 체크포인트를 생성하는 데 사용된 정확한 학습 레시피를 문서화합니다. 여기에 표시된 모든 하이퍼파라미터는 이미 출시된 .pt 가중치에 내장되어 있으며 프로그래밍 방식으로 검사할 수 있습니다.
기본 모델이 어떻게 학습되었는지 이해하면 파인튜닝 시 더 나은 결정을 내리는 데 도움이 됩니다. 어떤 데이터 증강을 유지할지, 어떤 손실 함수 가중치를 조정할지, 데이터셋 크기에 가장 잘 맞는 옵티마이저 설정이 무엇인지 파악할 수 있습니다.
이 가이드는 공식 YOLO26 체크포인트에 무엇이 들어갔는지 이해하고 싶은 실무자를 위한 것입니다. 단순히 아키텍처뿐만 아니라 성능을 형성한 학습률 스케줄, 증강 파이프라인, 손실 가중치까지 다룹니다. 이 정보를 활용하여 자신의 데이터로 파인튜닝할 때 정보에 기반한 선택을 하세요.
학습 인수 검사
모든 Ultralytics 체크포인트는 이를 생성하는 데 사용된 전체 학습 구성을 저장합니다. 언제든지 이 설정을 검사할 수 있습니다.
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])공식 릴리스와 자신의 파인튜닝 모델을 포함한 모든 .pt 체크포인트에서 사용할 수 있습니다. 구성 가능한 학습 인수 전체 목록은 학습 구성 참조를 확인하세요.
학습 개요
모든 YOLO26 기본 모델은 MuSGD 옵티마이저와 배치 크기 128을 사용하여 640x640 해상도로 COCO에서 학습되었습니다. 모델은 중간 사전 학습 가중치로 초기화되었으며 진화 탐색을 통해 발견된 하이퍼파라미터로 정제되었습니다. 모든 모델 크기에 대한 전체 학습 로그와 메트릭은 Ultralytics Platform에서 확인할 수 있습니다.
모든 크기에 걸친 주요 설계 선택:
- 엔드투엔드 학습 (
end2end=True): NMS-프리 일대일 헤드 사용 - MuSGD 옵티마이저: SGD와 합성곱 가중치에 대한 Muon 스타일 직교화 업데이트를 결합
- 강력한 모자이크 증강 (약 0.9-1.0 확률): 마지막 10 에포크에서 비활성화 (
close_mosaic=10) - 공격적인 스케일 증강 (0.56-0.95): 다양한 크기의 객체 처리
- 대부분의 크기에서 최소 회전/전단: 기하학적 왜곡을 낮게 유지
모델 크기별 하이퍼파라미터
옵티마이저 및 학습률
| Setting | 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 모델은 더 완만한 스케줄로 훨씬 낮은 초기 학습률(lrf=0.882)을 사용했습니다. 이는 소형 모델과 대형 모델의 다른 수렴 역학을 반영합니다. 소형 모델은 효과적으로 학습하기 위해 더 공격적인 업데이트가 필요합니다.
손실 가중치
| Setting | 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 데이터 증강 가이드를 참조하세요.
| Setting | 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 |
대형 모델은 용량이 더 많고 강력한 정규화의 이점을 누리기 때문에 전반적으로 더 공격적인 증강(mixup, copy-paste, scale 높음)을 사용합니다. N 모델은 의미 있는 회전, 전단, BGR 증강이 있는 유일한 크기입니다.
내부 학습 파라미터
고급: 내부 파이프라인 파라미터
체크포인트에는 내부 학습 파이프라인에서 사용되었지만 default.yaml에서 사용자 구성 설정으로 노출되지 않는 파라미터도 포함되어 있습니다.
| Setting | Description | 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를 참조하세요.
파인튜닝 가이드
자신의 데이터셋에서 YOLO26을 파인튜닝할 때는 전체 사전 학습 레시피를 복제할 필요가 없습니다. 사전 학습된 가중치에는 이미 COCO 학습에서 나온 증강 및 최적화 지식이 인코딩되어 있습니다. 더 일반적인 학습 모범 사례는 모델 학습 팁을 참조하세요.
단순하게 시작하기
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)기본값으로 파인튜닝하는 것이 강력한 기준선입니다. 특별한 이유가 있을 때만 하이퍼파라미터를 조정하세요.
조정이 필요한 경우
소규모 데이터셋 (이미지 1,000개 미만):
- 증강 강도 줄이기:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - 학습률 낮추기:
lr0=0.001 - patience를 사용하여 더 적은 에포크 사용:
epochs=50,patience=20 - 백본 레이어 동결 고려:
freeze=10
대규모 데이터셋 (이미지 50,000개 초과):
- 사전 학습 레시피와 더 가깝게 맞추기
- 긴 실행에는
optimizer=MuSGD고려 - 증강 늘리기:
mosaic=1.0,mixup=0.3,scale=0.9
도메인 특화 이미지 (항공, 의료, 수중):
- 수직 방향이 다양한 경우
flipud=0.5증가 - 객체가 임의의 회전으로 나타나는 경우
degrees증가 - 조명 조건이 COCO와 크게 다른 경우
hsv_s및hsv_v조정
자동화된 하이퍼파라미터 최적화는 하이퍼파라미터 튜닝 가이드를 참조하세요.
모델 크기 선택
| Model | Best For | Batch Size Guidance |
|---|---|---|
| YOLO26n | 엣지 디바이스, 모바일, CPU 실시간 | 소비자용 GPU에서 대형 배치 (64-128) |
| YOLO26s | 균형 잡힌 속도와 정확도 | 중간 배치 (32-64) |
| YOLO26m | 적당한 연산으로 높은 정확도 | 소형 배치 (16-32) |
| YOLO26l | GPU 사용 가능 시 높은 정확도 | 소형 배치 (8-16) 또는 멀티 GPU |
| YOLO26x | 최대 정확도, 서버 배포 | 소형 배치 (4-8) 또는 멀티 GPU |
내보내기 및 배포 옵션은 내보내기 가이드 및 모델 배포 옵션을 참조하세요.
FAQ
체크포인트에 사용된 정확한 하이퍼파라미터를 어떻게 확인하나요?
torch.load()로 체크포인트를 로드하고 train_args 키에 접근하거나, Ultralytics API를 사용하여 model.ckpt["train_args"]를 사용하세요. 전체 예제는 학습 인수 검사를 참조하세요.
각 모델 크기마다 에포크 수가 다른 이유는 무엇인가요?
대형 모델은 용량이 더 많기 때문에 COCO에서 더 빨리 수렴합니다. N 모델은 245 에포크가 필요했지만 X 모델은 40 에포크만 필요했습니다. 자신의 데이터셋에서 파인튜닝할 때 최적의 에포크 수는 모델 크기가 아닌 데이터셋 크기와 복잡성에 따라 달라집니다. 조기 중단(patience)을 사용하여 적절한 중단 지점을 자동으로 찾으세요.
파인튜닝에 MuSGD를 사용해야 하나요?
optimizer=auto(기본값)인 경우, Ultralytics는 더 긴 학습 실행(>10,000 이터레이션)에는 MuSGD를, 더 짧은 실행에는 AdamW를 자동으로 선택합니다. 원하는 경우 optimizer=MuSGD를 명시적으로 설정할 수 있습니다. 옵티마이저 선택에 대한 자세한 내용은 학습 문서를 참조하세요.
체크포인트의 muon_w, sgd_w, cls_w, o2m, topk는 무엇인가요?
이것들은 기본 체크포인트를 생성한 학습 파이프라인의 내부 파라미터입니다. 재현성을 위해 저장되지만 default.yaml에서 사용자 구성 설정이 아닙니다. 파인튜닝 시 설정할 필요가 없습니다. 자세한 내용은 내부 학습 파라미터를 참조하세요.
사전 학습을 처음부터 정확히 복제할 수 있나요?
체크포인트는 공개 코드베이스에 없는 추가 기능(구성 가능한 o2m 가중치 및 cls_w 등)을 갖춘 내부 학습 브랜치를 사용하여 생성되었습니다. 공개 Ultralytics 패키지를 사용하여 이 페이지에 문서화된 하이퍼파라미터로 매우 유사한 결과를 얻을 수 있지만, 정확한 재현을 위해서는 내부 브랜치가 필요합니다.