YOLO26 학습 레시피#
소개#
이 가이드에서는 COCO에서 공식 YOLO26 사전 학습 체크포인트를 생성하는 데 사용된 정확한 학습 레시피를 설명합니다. 여기에 제시된 모든 하이퍼파라미터는 릴리스된 .pt 가중치에 에포크별 학습 로그 및 실행 코드 리비전과 함께 이미 포함되어 있으며, 모든 내용을 프로그래밍 방식으로 검사할 수 있습니다.
공식 체크포인트에 아키텍처뿐만 아니라 성능을 형성한 학습률 스케줄, 증강 파이프라인, 손실 가중치까지 어떤 요소가 포함되었는지 파악하면 파인튜닝 시 더 나은 결정을 내리는 데 도움이 됩니다. 즉, 어떤 데이터 증강을 유지하고, 어떤 손실 함수 가중치를 조정하며, 데이터셋 크기에 가장 적합한 옵티마이저 설정이 무엇인지 판단할 수 있습니다.
이 페이지에서는 릴리스된 체크포인트에 기록된 하이퍼파라미터를 다룹니다. 아키텍처, 손실 및 라벨 할당 변경 사항, 어블레이션을 포함한 설계 근거는 Ultralytics YOLO26: 통합 실시간 엔드투엔드 비전 모델을 참조하십시오.
학습 개요#
모든 YOLO26 기본 모델은 두 단계로 학습되었습니다. 먼저 Objects365v1 사전 학습을 150에포크 수행한 후 COCO 파인튜닝을 진행했습니다. 두 단계 모두 640x640 해상도에서 MuSGD 옵티마이저와 배치 크기 128을 사용했습니다. 무작위 가중치에서 COCO로 학습된 YOLO26 체크포인트는 없으며, 이것이 대부분의 모델 크기에서 COCO 단계가 짧은 이유입니다. 또한 COCO 단계의 하이퍼파라미터는 진화적 탐색을 통해 결정되었습니다. 모든 모델 크기의 전체 학습 로그와 메트릭은 릴리스된 체크포인트 내부에 저장되며 Ultralytics Platform에서 차트로 표시됩니다.
모든 크기에 공통으로 적용된 주요 설계 선택 사항:
- COCO 단계 전에 모든 크기에서 Objects365 사전 학습 수행
- **듀얼 헤드 학습**은 one-to-many 및 one-to-one 감독을 모두 사용하며, 추론 시 기본적으로 NMS를 사용하고
nms=False을 통해 NMS-free 헤드를 선택합니다. - 가중치 행렬(2D 선형 가중치 및 2D로 재구성된 4D 컨볼루션 필터)에 Muon 방식의 직교화 업데이트와 SGD를 결합한 MuSGD 옵티마이저
- 강력한 모자이크 증강 (~0.9-1.0 확률)을 마지막 에포크에서 비활성화 (
close_mosaic=8은 사전 학습에서,close_mosaic=10은 COCO에서 사용) - 서로 다른 크기의 객체를 처리하기 위한 공격적인 스케일 증강 (0.5-0.95)
- 대부분의 크기에서 최소한의 회전/전단을 적용하여 기하학적 왜곡을 낮게 유지
1단계: Objects365 사전 학습#
모든 YOLO26 COCO 체크포인트는 동일한 크기의 Objects365v1 체크포인트에서 파인튜닝되었습니다. 이러한 사전 학습 가중치도 공개되어 있으며 Objects365 데이터셋 페이지에 문서화되어 있습니다. 각 COCO 체크포인트는 .pt 파일에 포함된 학습 구성에서 시작 가중치를 지정하며, 아래의 YOLO26 체크포인트 학습 인자 검사에서 이를 읽는 방법을 보여 줍니다.
| COCO 체크포인트 | 시작 가중치 |
|---|---|
yolo26n.pt | yolo26n-objv1-150.pt |
yolo26s.pt | yolo26s-objv1-150.pt |
yolo26m.pt | yolo26m-objv1-150.pt |
yolo26l.pt | yolo26l-objv1-150.pt |
yolo26x.pt | yolo26x-objv1-150.pt |
사전 학습에서는 탐색된 값보다 대부분 기본 설정을 사용했습니다. lr0, lrf, momentum, weight_decay, box, cls는 default.yaml과 일치하며, warmup_epochs, close_mosaic, dfl는 재정의되었습니다. X의 warmup_epochs, 증강 강도, 그리고 표 다음에 나열된 내부 MuSGD 및 헤드 가중치를 제외하면 설정은 모든 크기에서 공유됩니다.
| 설정 | 값 |
|---|---|
data | Objects365v1 |
epochs | 150 |
imgsz | 640 |
batch | 128 |
optimizer | MuSGD |
lr0 / lrf | 0.01 / 0.01 |
momentum | 0.937 |
weight_decay | 0.0005 |
warmup_epochs | 1 (X는 2) |
close_mosaic | 8 |
box / cls / dfl | 7.5 / 0.5 / 6.0 |
| 증강 | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
mixup | 0.0 | 0.05 | 0.15 | 0.15 | 0.2 |
copy_paste | 0.1 | 0.15 | 0.4 | 0.5 | 0.6 |
scale | 0.5 | 0.9 | 0.9 | 0.9 | 0.9 |
이 표는 전체 구성이 아니라 사전 학습에 영향을 주는 설정을 다룹니다. 체크포인트에는 100개가 넘는 인자가 기록되어 있으므로, 권위 있는 목록을 확인하려면 아래와 같이 train_args을 출력하십시오.
고급: 내부 사전 학습 파라미터
사전 학습에서는 내부 학습 파라미터에 설명된 것과 동일한 종류의 실험 브랜치 파라미터도 변경했습니다. cls_w은 모든 크기에서 1.0이었습니다.
| 설정 | N | S | M | L | X |
|---|---|---|---|---|---|
muon_w | 0.45 | 0.5 | 0.45 | 0.45 | 0.5 |
sgd_w | 0.55 | 0.5 | 0.55 | 0.55 | 0.6 |
o2m | 0.1 | 0.1 | 0.1 | 1.0 | 1.0 |
1단계를 재사용하는 데 Objects365 데이터셋은 필요하지 않습니다. 사전 학습 체크포인트는 다른 Ultralytics 에셋과 마찬가지로 자동으로 다운로드되므로 자체 데이터셋에서 파인튜닝할 수 있습니다.
from ultralytics import YOLO
model = YOLO("yolo26s-objv1-150.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)대신 COCO 단계를 다시 실행하려면 동일한 가중치에서 시작하고 아래 표에서 해당 크기의 2단계 옵티마이저, 손실 및 증강 값을 전달하십시오. 이 표에는 warmup_momentum, warmup_bias_lr, perspective, flipud, cutmix와 같은 더 작은 비기본 인자는 포함되어 있지 않으므로, 정확한 구성은 체크포인트에서 train_args를 출력하십시오. 내부 파라미터는 릴리스된 패키지에서 거부되며 실험 브랜치가 필요합니다.
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 체크포인트에서 작동합니다. 구성 가능한 전체 학습 인자 목록은 학습 구성 레퍼런스를 참조하십시오.
학습 곡선 보기#
저장되는 것은 train_args만이 아닙니다. 모든 체크포인트에는 해당 체크포인트를 생성한 실행의 완전한 에포크별 results.csv과 최종 검증 메트릭도 포함됩니다. 공식 YOLO26 체크포인트의 곡선은 Ultralytics Platform에 공개되어 있으며, 모든 .pt 파일을 프로젝트에 끌어다 놓으면 파일에서 메타데이터를 자동으로 파싱하여 동일한 데이터를 차트로 표시할 수 있습니다.
각 체크포인트에는 해당 체크포인트를 생성한 단계가 포함되므로 COCO 곡선은 yolo26s.pt에, 150에포크 Objects365 곡선은 yolo26s-objv1-150.pt에 있습니다.
코드 리비전 확인#
ckpt["git"]에는 체크포인트를 생성한 커밋이 기록되어 있으며, 해당 커밋은 Ultralytics 저장소의 공개 실험 브랜치에 있으므로 정확한 학습 코드를 체크아웃할 수 있습니다.
from ultralytics import YOLO
print(YOLO("yolo26n.pt").ckpt["git"])
# {'root': ..., 'branch': 'exp-main', 'commit': 'cb13d5f9cfbd6f299da3620c625f81d721dc2849', ...}git fetch origin cb13d5f9cfbd6f299da3620c625f81d721dc2849
git checkout cb13d5f9cfbd6f299da3620c625f81d721dc2849실험 브랜치에는 main에 반영되지 않은 작업이 포함되어 있으며, 여기에는 구성 가능한 o2m 및 cls_w가 포함됩니다. 아래에 문서화된 하이퍼파라미터로 main에서 학습하면 비트 단위로 동일하지는 않지만, 공개된 메트릭과 무시할 수 있을 정도로 작은 차이의 결과를 얻습니다.
모델 크기별 YOLO26 학습 하이퍼파라미터#
위의 Objects365 가중치에 적용되는 2단계 값입니다. 아래 표에서는 레시피를 옵티마이저 및 스케줄, 손실 가중치, 증강의 범주로 나눕니다. 모든 값은 릴리스된 체크포인트에 포함된 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)을 사용했습니다. 이는 소형 모델과 대형 모델의 서로 다른 수렴 동역학을 반영합니다. 소형 모델은 효과적으로 학습하려면 더 공격적인 업데이트가 필요합니다.
손실 가중치#
손실 가중치는 검출 손실의 세 가지 구성 요소인 바운딩 박스 IoU 회귀(box), 분류(cls), 박스 거리 회귀 항(dfl) 사이의 균형을 조정합니다. DFL이 없는 YOLO26은 dfl 게인을 분포 초점 손실 대신 정규화된 박스 거리에 대한 L1 손실의 가중치로 용도를 변경한다는 점에 유의하십시오.
| 설정 | 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 데이터 증강 가이드를 참조하십시오.
| 설정 | 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). 즉, 증강이 사실상 비활성화되어 있습니다.
대형 모델은 전반적으로 더 공격적인 증강(더 높은 mixup 및 scale)을 사용합니다. 더 큰 용량을 갖추고 있어 강한 정규화의 이점을 얻기 때문입니다. N 모델은 유의미한 회전, 전단 및 BGR 증강을 사용하는 유일한 크기입니다.
내부 학습 파라미터#
고급: 내부 파이프라인 파라미터
체크포인트에는 실험 학습 브랜치에서 사용되었지만 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 항목을 참조하십시오.
사용자 자체 데이터셋에서 YOLO26 파인튜닝#
자체 데이터셋에서 YOLO26을 파인튜닝할 때 전체 사전 학습 레시피를 재현할 필요는 없습니다. 사전 학습 가중치에 COCO 학습에서 얻은 증강 및 최적화 지식이 이미 포함되어 있기 때문입니다. 보다 일반적인 학습 모범 사례는 모델 학습 팁을 참조하십시오.
기본 설정으로 파인튜닝#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)기본값을 사용한 파인튜닝은 강력한 기준선입니다. 특별한 이유가 있는 경우에만 하이퍼파라미터를 조정하십시오.
YOLO26 하이퍼파라미터를 조정해야 하는 경우#
소규모 데이터셋(< 1,000개 이미지):
- 증강 강도 감소:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - 명시적 옵티마이저와 함께 더 낮은 학습률 사용:
optimizer=AdamW,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조정
자동화된 하이퍼파라미터 최적화는 하이퍼파라미터 튜닝 가이드를 참조하십시오.
모델 크기 선택#
| 모델 | 적합한 용도 | 배치 크기 가이드 |
|---|---|---|
| YOLO26n | Edge 디바이스, 모바일, CPU 실시간 처리 | 소비자용 GPU에서 큰 배치(64-128) |
| YOLO26s | 속도와 정확도의 균형 | 중간 배치(32-64) |
| YOLO26m | 적당한 연산량으로 더 높은 정확도 | 더 작은 배치(16-32) |
| YOLO26l | GPU를 사용할 수 있을 때 높은 정확도 | 작은 배치(8~16) 또는 멀티 GPU |
| YOLO26x | 최대 정확도, 서버 배포 | 작은 배치(4~8) 또는 멀티 GPU |
내보내기 및 배포 옵션은 내보내기 가이드와 모델 배포 옵션을 참조하십시오.
결론#
YOLO26 체크포인트에는 전체 학습 레시피가 내장되어 있으므로 모든 모델 크기에 적용된 정확한 하이퍼파라미터를 언제든지 train_args 조회 한 번으로 확인할 수 있습니다. 기본값으로 파인튜닝을 시작하고, 이 페이지의 표를 사용하여 신중하게 조정한 다음, 자체 검증 세트를 기준으로 모든 변경 사항을 확인하십시오. 진행 중 궁금한 점이 있으면 Ultralytics GitHub 저장소 또는 Ultralytics Discord 서버에서 커뮤니티에 질문하십시오.
FAQ#
torch.load()으로 체크포인트를 로드하고train_args키에 액세스하거나, Ultralytics API에서model.ckpt["train_args"]를 사용하십시오. 전체 예제는 YOLO26 체크포인트 학습 인자 확인을 참조하십시오.모든 크기는 Objects365 사전 학습을 동일하게 150 epoch 수행했으므로 COCO 수치는 파인튜닝 단계만 포함합니다. 대형 모델은 해당 epoch 중 더 적은 수로 COCO에서 수렴하며, X는 40회, N은 245회입니다. 수치는 크기에 따라 엄 strictly 단조롭게 증가하지 않는데(S는 70회, M은 80회 사용), 이는 크기별 하이퍼파라미터 탐색의 결과이기 때문입니다. 자체 데이터 세트에서 파인튜닝할 때 최적 epoch 수는 모델 크기가 아니라 데이터 세트의 규모와 복잡도에 따라 달라집니다. 조기 종료(
patience)를 사용하여 적절한 중지 지점을 자동으로 찾으십시오.이는 기본 체크포인트를 생성한 실험 브랜치에서 비롯된 값이며, 재현성을 위해
train_args에 기록되어 있습니다. 이러한 값은default.yaml에서 사용자가 구성할 수 있는 설정이 아니며, 릴리스된 패키지가 해당 값을 읽지 않기 때문에model.train()에 전달하면 잘못된 인자 오류가 발생합니다. 파인튜닝할 때 이를 설정할 필요는 없으며, 모델 크기별 값은 내부 학습 파라미터를 참조하십시오.아닙니다. 각 COCO 체크포인트는 이미 150 epoch 학습된 동일한 크기의 Objects365v1 체크포인트에서 파인튜닝되었으며, 1단계: Objects365 사전 학습과 YOLO26 논문에 설명되어 있습니다. 게시된 수치에 해당하는 처음부터 학습한 COCO 실행은 없으므로, 처음부터 학습한 결과와 해당 수치를 비교하는 것은 동일 조건의 비교가 아닙니다.
체크포인트 내부에 있으며 Ultralytics Platform에 차트로 표시됩니다. 모든 체크포인트는 해당 실행의 epoch별 전체
results.csv을 저장하므로,.pt파일을 Platform 프로젝트에 끌어다 놓기만 하면 코드 없이 손실, mAP 변화 및 학습률을 플로팅할 수 있습니다. 학습 곡선 보기를 참조하십시오. Objects365 단계에는yolo26*-objv1-150.pt체크포인트에 자체 로그가 있습니다.게시된 metric에 근접한 결과를 얻을 수 있지만, 완전히 동일하지는 않습니다. 동일한 설정을 사용하려면 체크포인트에 기록된 commit을 체크아웃하고 해당 브랜치에서 학습하십시오. 코드 리비전 확인을 참조하십시오.