Receta de entrenamiento de YOLO26#
Introducción#
Esta guía documenta la receta de entrenamiento exacta utilizada para producir los puntos de control preentrenados oficiales de YOLO26 en COCO. Cada hiperparámetro que se muestra aquí ya está incrustado en los pesos publicados de .pt y se puede inspeccionar mediante programación.
Saber qué se incluyó en los puntos de control oficiales —no solo la arquitectura, sino los calendarios de tasa de aprendizaje, las canalizaciones de aumento y los pesos de pérdida que moldearon su rendimiento— te ayuda a tomar mejores decisiones al realizar el ajuste fino: qué aumentos de datos conservar, qué pesos de la función de pérdida ajustar y qué configuraciones de optimizador funcionan mejor para el tamaño de tu conjunto de datos.
Descripción general del entrenamiento#
Todos los modelos base de YOLO26 se entrenaron en COCO a una resolución de 640x640 utilizando el optimizador MuSGD con un batch size de 128. En lugar de comenzar desde pesos aleatorios en una sola ejecución, los modelos se inicializaron a partir de pesos preentrenados intermedios y se refinaron con hiperparámetros encontrados mediante evolutionary search. Los registros de entrenamiento completos y las métricas para cada tamaño de modelo están disponibles en Ultralytics Platform.
Opciones de diseño clave 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 de estilo Muon para matrices de peso (pesos lineales 2D y filtros de convolución 4D, que se reformatean a 2D)
- Aumento de mosaico intenso (probabilidad de ~0.9-1.0) deshabilitado 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
Inspección de los argumentos de entrenamiento de los puntos de control de YOLO26#
Cada punto de control de Ultralytics almacena la configuración de entrenamiento completa utilizada para producirlo, por lo que puedes verificar cada número de esta página tú mismo:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])La salida enumera la configuración completa de más de 100 entradas, incluido cada valor de receta documentado en esta página. Un extracto para 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: MuSGDEsto funciona para cualquier punto de control de .pt, tanto para los lanzamientos oficiales como para tus propios modelos ajustados. Para ver la lista completa de argumentos de entrenamiento configurables, consulta la referencia de configuración de entrenamiento.
Hiperparámetros de entrenamiento de YOLO26 por tamaño de modelo#
Las tablas siguientes agrupan la receta por categoría: optimizador y calendario, pesos de pérdida y aumento. Cada valor proviene directamente de train_args incrustado en los puntos de control publicados.
Optimizador y tasa de aprendizaje#
Estas configuraciones de optimizador y calendario impulsaron el preentrenamiento en COCO para cada tamaño; observa cómo el modelo N se diferencia del resto:
| Configuració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 |
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 tasa de aprendizaje inicial mucho más baja con un calendario más suave (lrf=0.882). Esto refleja las diferentes dinámicas de convergencia entre los modelos más pequeños y los más grandes; los modelos más pequeños necesitan actualizaciones más agresivas para aprender eficazmente.
Pesos de pérdida#
Los pesos de pérdida equilibran los tres componentes de la pérdida de detección: la regresión de IoU de la caja delimitadora (box), la clasificación (cls) y un término de regresión de distancia de caja (dfl). Ten en cuenta que YOLO26 sin DFL reutiliza la ganancia de dfl para ponderar una pérdida L1 en distancias de caja normalizadas en lugar de la pérdida focal de distribución:
| Configuración | 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 |
El modelo N prioriza el término de regresión de distancia de dfl, mientras que los modelos S/M/L/X desplazan el énfasis hacia la regresión de caja basada en IoU. La pérdida de clasificación se mantiene relativamente constante en todos los tamaños.
Canalización de aumento#
Para obtener una explicación detallada de cada técnica, consulta la guía de aumento de datos de YOLO.
| Configuración | 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 |
Los valores que se muestran como ~0 están por debajo de 0.01 en los puntos de control reales (por ejemplo, degrees=0.00012 para el modelo S); el aumento está efectivamente deshabilitado.
Los modelos más grandes utilizan un aumento más agresivo en general (mayor mixup, copy-paste 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 rotación, cizallamiento y aumento BGR significativos.
Parámetros de entrenamiento internos#
Avanzado: parámetros de canalización interna
Los puntos de control también contienen parámetros que se utilizaron en la canalización de entrenamiento interna pero que no se exponen como configuraciones configurables por el usuario en default.yaml:
| Configuración | Descripción | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Peso de actualización de Muon en MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | Peso de actualización de SGD en MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Peso de clasificación interno | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Peso de pérdida de la cabecera one-to-many | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Asignación de etiquetas Top-k | 8 | 5 | 5 | 5 | 5 |
Consulta la entrada de preguntas frecuentes sobre estos parámetros para saber qué significan al realizar el ajuste fino.
Ajuste fino de YOLO26 en tu propio conjunto de datos#
Al realizar el ajuste fino de YOLO26 en tu propio conjunto de datos, no necesitas replicar la receta de preentrenamiento completa. Los pesos preentrenados ya codifican el conocimiento de aumento y optimización del entrenamiento en COCO. Para obtener mejores prácticas de entrenamiento más generales, consulta Consejos para el entrenamiento de modelos.
Ajuste fino con la configuración predeterminada#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)El ajuste fino con los valores predeterminados es una base sólida. Ajusta los hiperparámetros solo si tienes una razón específica para hacerlo.
Cuándo ajustar los hiperparámetros de YOLO26#
Conjuntos de datos pequeños (< 1.000 imágenes):
- Reducir la intensidad del aumento:
mosaic=0.5,mixup=0.0,copy_paste=0.0 - Bajar la tasa de aprendizaje:
lr0=0.001 - Usar menos épocas con paciencia:
epochs=50,patience=20 - Considerar congelar las capas del backbone:
freeze=10
Conjuntos de datos grandes (> 50.000 imágenes):
- Iguala más estrechamente la receta de preentrenamiento
- Considerar
optimizer=MuSGDpara ejecuciones más largas - Aumentar el incremento:
mosaic=1.0,mixup=0.3,scale=0.9
Imágenes de dominio específico (aéreas, médicas, subacuáticas):
- Aumentar
flipud=0.5si la orientación vertical varía - Aumentar
degreessi los objetos aparecen en rotaciones arbitrarias - Ajustar
hsv_syhsv_vsi las condiciones de iluminación difieren significativamente de COCO
Para la optimización automatizada de hiperparámetros, consulta la guía de optimización de hiperparámetros.
Elige un tamaño de modelo#
| Modelo | Ideal para | Guía para el tamaño de lote (batch size) |
|---|---|---|
| YOLO26n | Dispositivos Edge, móviles, tiempo real en CPU | Lotes grandes (64-128) en GPUs de consumo |
| YOLO26s | Velocidad y precisión equilibradas | Lotes medianos (32-64) |
| YOLO26m | Mayor precisión con cómputo moderado | Lotes más pequeños (16-32) |
| YOLO26l | Alta precisión cuando hay GPU disponible | Lotes pequeños (8-16) o multi-GPU |
| YOLO26x | Precisión máxima, despliegue en servidor | Lotes pequeños (4-8) o multi-GPU |
Para ver las opciones de exportación y despliegue, consulta la guía de exportación y las opciones de despliegue de modelos.
Conclusión#
Los puntos de control de YOLO26 vienen con su receta de entrenamiento completa integrada, por lo que los hiperparámetros exactos detrás de cada tamaño de modelo están siempre a una sola búsqueda de train_args de distancia. Comienza el ajuste fino a partir de los valores predeterminados, ajusta deliberadamente utilizando las tablas de esta página y verifica cada cambio con tu propio conjunto de validación. Si surgen preguntas en el camino, pregunta a la comunidad en el repositorio de GitHub de Ultralytics o en el servidor de Discord de Ultralytics.
FAQ#
Carga el punto de control con
torch.load()y accede a la clavetrain_args, o utilizamodel.ckpt["train_args"]con la API de Ultralytics. Consulta Inspección de los argumentos de entrenamiento de los puntos de control de YOLO26 para ver ejemplos completos.Los modelos más grandes generalmente necesitaron menos épocas en COCO porque su mayor capacidad acelera la convergencia —el modelo X se entrenó durante 40 épocas frente a las 245 de N—, aunque los recuentos no son estrictamente monótonos (S usó 70, M usó 80). Al realizar el ajuste fino en tu propio conjunto de datos, el número óptimo de épocas depende del tamaño y la complejidad de tus datos, no del tamaño del modelo. Utiliza la parada temprana (
patience) para encontrar el punto de parada adecuado automáticamente.Por lo general, no necesitas elegir: con el valor predeterminado de
optimizer=auto, Ultralytics selecciona automáticamente MuSGD para ejecuciones de entrenamiento más largas (>10,000 iteraciones) y AdamW para las más cortas. Puedes configurar explícitamenteoptimizer=MuSGDsi lo prefieres. Para obtener más información sobre cómo funciona MuSGD, consulta la documentación de entrenamiento.Estos son parámetros internos de la canalización de entrenamiento que produjo los puntos de control base, registrados en
train_argspara garantizar la reproducibilidad. No son configuraciones configurables por el usuario endefault.yaml, y pasarlos amodel.train()genera un error de argumento inválido; el paquete público no los lee. No necesitas configurarlos al realizar el ajuste fino; consulta Parámetros de entrenamiento internos para conocer sus valores por tamaño de modelo.No exactamente; los puntos de control se produjeron utilizando una rama de entrenamiento interna con características adicionales que no están en la base de código pública (como los pesos configurables de
o2mycls_w). Puedes obtener resultados muy cercanos 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.