Ir al contenido

Receta de Entrenamiento de YOLO26

Introducción

Esta guía documenta la receta exacta entrenamiento utilizada para producir los YOLO26 puntos de control preentrenados oficiales en COCO. Cada hiperparámetro mostrado aquí ya está incrustado en los pesos .pt liberados y puede inspeccionarse programáticamente.

Comprender cómo se entrenaron los modelos base le ayuda a tomar mejores decisiones al realizar el ajuste fino: qué aumentos de datos mantener, qué pesos de la función de pérdida ajustar y qué configuraciones del optimizador funcionan mejor para el tamaño de su conjunto de datos.

¿A quién va dirigida esta guía?

Esta guía está dirigida a profesionales que desean comprender los detalles de los puntos de control oficiales de YOLO26 — no solo la arquitectura, sino también los programas de tasa de aprendizaje, las tuberías de aumento y los pesos de pérdida que moldearon su rendimiento. Utilice esta información para tomar decisiones informadas al realizar el ajuste fino con sus propios datos.

Inspección de Argumentos de Entrenamiento

Cada punto de control de Ultralytics almacena la configuración de entrenamiento completa utilizada para producirlo. Puede inspeccionar estos ajustes en cualquier momento:

Inspeccionar argumentos de entrenamiento del punto de control

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}")

Esto funciona para cualquier .pt punto de control — tanto para las versiones oficiales como para sus propios modelos ajustados. Para ver la lista completa de argumentos de entrenamiento configurables, consulte la referencia de configuración de entrenamiento.

Visión General del Entrenamiento

Todos los modelos base de YOLO26 se entrenaron en COCO con una resolución de 640x640 utilizando el optimizador MuSGD con un tamaño de lote de 128. Los modelos se inicializaron a partir de pesos preentrenados intermedios y se refinaron con hiperparámetros encontrados mediante búsqueda evolutiva. Los registros de entrenamiento completos y las métricas para cada tamaño de modelo están disponibles en la Plataforma Ultralytics:

Decisiones clave de diseño en todos los tamaños:

  • Entrenamiento de extremo a extremo (end2end=True) con cabezal uno a uno sin NMS
  • Optimizador MuSGD que combina SGD con actualizaciones ortogonalizadas estilo Muon para los pesos de las convoluciones
  • Aumento intensivo de mosaico (probabilidad de ~0.9-1.0) desactivado en las últimas 10 épocas (close_mosaic=10)
  • Aumento de escala agresivo (0.56-0.95) para manejar objetos de diferentes tamaños
  • Rotación/cizallamiento mínimo para la mayoría de los tamaños, manteniendo baja la distorsión geométrica

Hiperparámetros por Tamaño de Modelo

Optimizador y Tasa de Aprendizaje

ConfiguraciónNSMLX
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

Estrategia de tasa de aprendizaje

El modelo N utilizó una tasa de aprendizaje inicial más alta con una disminución pronunciada (lrf=0.0495), mientras que los modelos S/M/L/X utilizaron una LR inicial mucho más baja con un programa más suave (lrf=0.882). Esto refleja las diferentes dinámicas de convergencia de los modelos más pequeños frente a los más grandes — los modelos más pequeños necesitan actualizaciones más agresivas para aprender de manera efectiva.

Pesos de pérdida

ConfiguraciónNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

El modelo N prioriza la pérdida DFL, mientras que los modelos S/M/L/X cambian el énfasis a la regresión de cajas delimitadoras. La pérdida de clasificación se mantiene relativamente consistente en todos los tamaños.

Pipeline de Aumento

Para una explicación detallada de cada técnica, consulte la guía de aumento de datos de YOLO.

ConfiguraciónNSMLX
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

Los modelos más grandes utilizan un aumento más agresivo en general (mayor MixUp, copiar-pegar y escala), ya que tienen mayor capacidad y se benefician de una regularización más fuerte. El modelo N es el único tamaño con un aumento significativo de rotación, cizallamiento y BGR.

Parámetros Internos de Entrenamiento

Avanzado: parámetros internos del pipeline

Los puntos de control también contienen parámetros que se utilizaron en el pipeline de entrenamiento interno pero que no están expuestos como configuraciones configurables por el usuario en default.yaml:

ConfiguraciónDescripciónNSMLX
muon_wPeso de actualización Muon en MuSGD0.5280.4360.4360.4360.436
sgd_wPeso de actualización SGD en MuSGD0.6740.4790.4790.4790.479
cls_wPeso de clasificación interno2.743.483.483.483.48
o2mPeso de pérdida de cabezal de uno a muchos1.00.7050.7050.7050.705
topkAsignación de etiquetas top-k85555

Estos se registran para la reproducibilidad, pero no necesitan ser configurados durante el ajuste fino. Consulte las Preguntas Frecuentes para más detalles.

Guía de Ajuste Fino

Al realizar el ajuste fino de YOLO26 en su propio conjunto de datos, no es necesario replicar la receta completa de preentrenamiento. Los pesos preentrenados ya codifican el conocimiento de aumento y optimización del entrenamiento con COCO. Para obtener más información sobre las mejores prácticas de entrenamiento general, consulte Consejos para el Entrenamiento de Modelos.

Empezar Sencillo

Ajuste fino con valores predeterminados

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

El ajuste fino con valores predeterminados es una línea base sólida. Solo ajuste los hiperparámetros si tiene una razón específica para hacerlo.

Cuándo Ajustar

Small datasets (< 1,000 images):

  • Reducir la intensidad del aumento: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Reducir la tasa de aprendizaje: lr0=0.001
  • Usar menos épocas con paciencia: epochs=50, patience=20
  • Considerar congelar las capas del backbone: freeze=10

Grandes conjuntos de datos (> 50.000 imágenes):

  • Ajustarse más a la receta de preentrenamiento
  • Considerar optimizer=MuSGD para ejecuciones más largas
  • Aumentar la augmentación: mosaic=1.0, mixup=0.3, scale=0.9

Imágenes específicas de dominio (aéreas, médicas, subacuáticas):

  • Aumentar flipud=0.5 si la orientación vertical varía
  • Aumentar degrees si los objetos aparecen con rotaciones arbitrarias
  • Ajustar hsv_s y hsv_v si las condiciones de iluminación difieren significativamente de COCO

Para la optimización automatizada de hiperparámetros, consulte la guía de Ajuste de Hiperparámetros.

Elección del Tamaño del Modelo

ModeloIdeal paraGuía de Tamaño de Lote
YOLO26nDispositivos de borde, móviles, en tiempo real en CPULotes grandes (64-128) en GPUs de consumo
YOLO26sVelocidad y precisión equilibradasTamaños de lote medianos (32-64)
YOLO26mMayor precisión con un cómputo moderadoTamaños de lote más pequeños (16-32)
YOLO26lAlta precisión cuando la GPU está disponibleTamaños de lote pequeños (8-16) o multi-GPU
YOLO26xMáxima precisión, despliegue en servidorTamaños de lote pequeños (4-8) o multi-GPU

Para opciones de exportación y despliegue, consulte la guía de exportación y las Opciones de Despliegue de Modelos.

Preguntas frecuentes

¿Cómo puedo ver los hiperparámetros exactos utilizados para cualquier punto de control?

Cargue el punto de control con torch.load() y acceda a la train_args clave, o utilice model.ckpt["train_args"] con la API de Ultralytics. Consulte Inspección de Argumentos de Entrenamiento para ejemplos completos.

¿Por qué el número de épocas es diferente para cada tamaño de modelo?

Los modelos más grandes convergen más rápido en COCO porque tienen mayor capacidad. El modelo N necesitó 245 épocas, mientras que el modelo X solo necesitó 40. Al ajustar un modelo con su propio conjunto de datos, el número óptimo de épocas depende del tamaño y la complejidad de su conjunto de datos, no del tamaño del modelo. Utilice la parada temprana (patience) para encontrar automáticamente el punto de parada adecuado.

¿Debería usar MuSGD para el ajuste fino?

Cuándo optimizer=auto (el valor predeterminado), Ultralytics selecciona automáticamente MuSGD para ejecuciones de entrenamiento más largas (>10.000 iteraciones) y AdamW para las más cortas. Puede establecer explícitamente optimizer=MuSGD si lo prefiere. Para más información sobre la selección del optimizador, consulte la documentación de entrenamiento.

¿Qué son los muon_w, sgd_w, cls_w, o2m, y topk en el punto de control?

Estos son parámetros internos del pipeline de entrenamiento que produjo los puntos de control base. Se almacenan para la reproducibilidad, pero no son no están configuraciones configurables por el usuario en default.yaml. No es necesario configurarlos al realizar el ajuste fino. Consulte Parámetros Internos de Entrenamiento para obtener más detalles.

¿Puedo replicar el preentrenamiento exacto desde cero?

Los puntos de control se produjeron utilizando una rama de entrenamiento interna con características adicionales no presentes en el código base público (como configurables o2m pesos y cls_w). Se pueden obtener resultados muy similares utilizando los hiperparámetros documentados en esta página con el paquete público de Ultralytics, pero una reproducción exacta requiere la rama interna.



📅 Creado hace 7 días ✏️ Actualizado hace 5 días
Y-T-Gdependabotraimbekovm

Comentarios