YOLO Vision 2026:

Receta de entrenamiento de YOLO26#

Introducción#

Esta guía documenta la receta exacta de entrenamiento utilizada para producir los checkpoints oficiales preentrenados de YOLO26 en COCO. Cada hiperparámetro que se muestra aquí ya está integrado en los pesos .pt publicados, junto con el registro de entrenamiento por época y la revisión del código de la ejecución, y todo se puede inspeccionar mediante programación.

Saber qué se incluyó en los checkpoints oficiales —no solo la arquitectura, sino también las estrategias de tasa de aprendizaje, las canalizaciones de aumento y los pesos de la función de pérdida que determinaron su rendimiento— te ayuda a tomar mejores decisiones al hacer fine-tuning: qué aumentos de datos conservar, qué pesos de la función de pérdida ajustar y qué configuraciones del optimizador funcionan mejor con el tamaño de tu dataset.

Lee el artículo para conocer todos los detalles

Esta página cubre los hiperparámetros registrados en los checkpoints publicados. Para conocer los motivos que los justifican, incluidos la arquitectura, los cambios en la pérdida y en la asignación de etiquetas, y las ablaciones, lee Ultralytics YOLO26: Unified Real-Time End-to-End Vision Models.

Resumen del entrenamiento#

Todos los modelos base de YOLO26 se entrenaron en dos etapas: preentrenamiento en Objects365v1 durante 150 épocas, seguido de fine-tuning en COCO. Ambas etapas se ejecutaron con una resolución de 640x640, el optimizador MuSGD y un tamaño de batch de 128. Ningún checkpoint de YOLO26 se entrenó en COCO partiendo de pesos aleatorios, por eso la etapa de COCO es corta para la mayoría de los tamaños y sus hiperparámetros se obtuvieron mediante una búsqueda evolutiva. Los registros de entrenamiento y las métricas completos de cada tamaño de modelo se almacenan dentro de los checkpoints publicados y se muestran como gráficos en Ultralytics Platform.

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

  • Preentrenamiento en Objects365 para todos los tamaños antes de la etapa de COCO
  • Entrenamiento de extremo a extremo (end2end=True) con una cabecera one-to-one sin NMS
  • Optimizador MuSGD que combina SGD con actualizaciones ortogonalizadas al estilo de Muon para matrices de pesos (pesos lineales 2D y filtros convolucionales 4D, que se redimensionan a 2D)
  • Aumento de mosaico intenso (probabilidad de ~0.9-1.0) desactivado durante las últimas épocas (close_mosaic=8 en el preentrenamiento, close_mosaic=10 en COCO)
  • Aumento de escala agresivo (0.5-0.95) para gestionar objetos de distintos tamaños
  • Rotación y deformación mínimas para la mayoría de los tamaños, manteniendo baja la distorsión geométrica

Etapa 1: preentrenamiento en Objects365#

Cada checkpoint de YOLO26 para COCO se sometió a fine-tuning a partir de un checkpoint de Objects365v1 del mismo tamaño. Esos pesos preentrenados también se publican y están documentados en la página del dataset Objects365. Cada checkpoint de COCO indica sus pesos iniciales en la configuración de entrenamiento integrada en el archivo .pt, y la sección Inspección de los argumentos de entrenamiento del checkpoint de YOLO26 que aparece más abajo muestra cómo leerlos:

Checkpoint de COCOPesos iniciales
yolo26n.ptyolo26n-objv1-150.pt
yolo26s.ptyolo26s-objv1-150.pt
yolo26m.ptyolo26m-objv1-150.pt
yolo26l.ptyolo26l-objv1-150.pt
yolo26x.ptyolo26x-objv1-150.pt

El preentrenamiento utilizó principalmente la configuración predeterminada en lugar de valores obtenidos mediante búsqueda. lr0, lrf, momentum, weight_decay, box y cls coinciden con default.yaml, mientras que warmup_epochs, close_mosaic y dfl se sobrescribieron. La configuración se comparte entre tamaños, salvo warmup_epochs en X, las intensidades de los aumentos y los pesos internos de MuSGD y de la cabecera que aparecen después de las tablas:

ConfiguraciónValor
dataObjects365v1
epochs150
imgsz640
batch128
optimizerMuSGD
lr0 / lrf0.01 / 0.01
momentum0.937
weight_decay0.0005
warmup_epochs1 (2 para X)
close_mosaic8
box / cls / dfl7.5 / 0.5 / 6.0
AumentoNSMLX
mosaic1.01.01.01.01.0
mixup0.00.050.150.150.2
copy_paste0.10.150.40.50.6
scale0.50.90.90.90.9

Estas tablas cubren la configuración que determina el preentrenamiento, no la configuración completa. Los checkpoints registran más de 100 argumentos, así que muestra train_args como se indica abajo para consultar la lista autorizada.

Avanzado: parámetros internos del preentrenamiento

El preentrenamiento también varió el mismo tipo de parámetros de la rama experimental descritos en Parámetros internos de entrenamiento. cls_w tenía el valor 1.0 para todos los tamaños:

ConfiguraciónNSMLX
muon_w0.450.50.450.450.5
sgd_w0.550.50.550.550.6
o2m0.10.10.11.01.0
Parte de los pesos de Objects365

No necesitas el dataset Objects365 para reutilizar la etapa 1. Los checkpoints preentrenados se descargan automáticamente como cualquier otro recurso de Ultralytics, así que puedes hacer fine-tuning con tu propio dataset:

from ultralytics import YOLO

model = YOLO("yolo26s-objv1-150.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Para volver a ejecutar la etapa de COCO, parte de los mismos pesos y pasa los valores del optimizador, la pérdida y los aumentos de la etapa 2 correspondientes a ese tamaño, indicados en las tablas siguientes. Estas tablas omiten argumentos no predeterminados menores, como warmup_momentum, warmup_bias_lr, perspective, flipud y cutmix, así que muestra train_args del checkpoint para obtener la configuración exacta. El paquete publicado rechaza los parámetros internos, que requieren la rama experimental.

Inspección de los argumentos de entrenamiento del checkpoint de YOLO26#

Cada checkpoint de Ultralytics almacena la configuración de entrenamiento completa utilizada para producirlo, así que puedes verificar por ti mismo cada número de esta página:

Inspeccionar los argumentos de entrenamiento del checkpoint
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])

La salida muestra la configuración completa, con más de 100 entradas, incluidos todos los valores de la receta documentados en esta página. Este es un fragmento de 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

Esto funciona con cualquier checkpoint .pt, tanto con las versiones oficiales como con tus propios modelos sometidos a fine-tuning. Para consultar la lista completa de argumentos de entrenamiento configurables, visita la referencia de configuración del entrenamiento.

Visualización de las curvas de entrenamiento#

train_args no es lo único que se almacena. Cada checkpoint también contiene el results.csv completo, época por época, de la ejecución que lo produjo, junto con sus métricas finales de validación. Las curvas de los checkpoints oficiales de YOLO26 se publican en Ultralytics Platform, y cualquier archivo .pt se puede arrastrar y soltar en un proyecto para representar los mismos datos, ya que los metadatos se analizan automáticamente a partir del archivo.

Cada checkpoint cubre la etapa que lo produjo, por lo que las curvas de COCO están en yolo26s.pt y las curvas de 150 épocas de Objects365 están en yolo26s-objv1-150.pt.

Comprobación de la revisión del código#

ckpt["git"] registra el commit que produjo el checkpoint, y esos commits se encuentran en ramas experimentales públicas del repositorio de Ultralytics, por lo que puedes consultar el código exacto de entrenamiento:

from ultralytics import YOLO

print(YOLO("yolo26n.pt").ckpt["git"])
# {'root': ..., 'branch': 'exp-main', 'commit': 'cb13d5f9cfbd6f299da3620c625f81d721dc2849', ...}
git fetch origin cb13d5f9cfbd6f299da3620c625f81d721dc2849
git checkout cb13d5f9cfbd6f299da3620c625f81d721dc2849

Las ramas experimentales contienen trabajo que nunca llegó a main, como o2m y cls_w configurables. Entrenar en main con los hiperparámetros documentados abajo no producirá resultados idénticos bit a bit, pero quedará a una distancia insignificante de las métricas publicadas.

Hiperparámetros de entrenamiento de YOLO26 por tamaño de modelo#

Estos son los valores de la etapa 2, aplicados sobre los pesos de Objects365 anteriores. Las tablas siguientes agrupan la receta por categorías: optimizador y estrategia, pesos de la pérdida y aumentos. Cada valor procede directamente de train_args, integrado en los checkpoints publicados.

Optimizador y tasa de aprendizaje#

Esta configuración del optimizador y de la estrategia controló el fine-tuning en COCO para cada tamaño; fíjate en que el modelo N se diferencia del resto:

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 la tasa de aprendizaje

El modelo N utilizó una tasa de aprendizaje inicial más alta con una reducción pronunciada (lrf=0.0495), mientras que los modelos S/M/L/X utilizaron una tasa de aprendizaje inicial mucho más baja con una estrategia más gradual (lrf=0.882). Esto refleja las distintas dinámicas de convergencia de los modelos pequeños y grandes: los modelos pequeños necesitan actualizaciones más agresivas para aprender de forma eficaz.

Pesos de la pérdida#

Los pesos de la pérdida equilibran los tres componentes de la pérdida de detección: regresión de IoU de la caja delimitadora (box), clasificación (cls) y un término de regresión de distancia de la caja (dfl). Ten en cuenta que YOLO26 sin DFL reutiliza la ganancia dfl para ponderar una pérdida L1 sobre las distancias normalizadas de las cajas, en lugar de la pérdida focal de distribución:

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

El modelo N prioriza el término de regresión de distancia dfl, mientras que los modelos S/M/L/X dan más importancia a la regresión de cajas basada en IoU. La pérdida de clasificación se mantiene relativamente constante en todos los tamaños.

Canalización de aumentos#

Para obtener una explicación detallada de cada técnica, consulta la guía de aumentos 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 valores mostrados como ~0 son inferiores a 0.01 en los checkpoints reales (por ejemplo, degrees=0.00012 para el modelo S), por lo que el aumento está prácticamente desactivado.

Los modelos más grandes utilizan aumentos más agresivos en general (mayor mixup y escala), ya que tienen más capacidad y se benefician de una regularización más intensa. El modelo N es el único tamaño con una rotación, deformación y aumento BGR significativos.

Parámetros internos de entrenamiento#

Avanzado: parámetros internos de la canalización

Los checkpoints también contienen parámetros utilizados en la rama experimental de entrenamiento, pero que no se ofrecen como configuraciones ajustables por el usuario en default.yaml:

ConfiguraciónDescripciónNSMLX
muon_wPeso de actualización de Muon en MuSGD0.5280.4360.4360.4360.436
sgd_wPeso de actualización de SGD en MuSGD0.6740.4790.4790.4790.479
cls_wPeso interno de clasificación2.743.483.483.483.48
o2mPeso de pérdida de la cabecera one-to-many1.00.7050.7050.7050.705
topkAsignación de etiquetas top-k85555

Consulta la entrada de preguntas frecuentes sobre estos parámetros para saber qué significan al hacer fine-tuning.

Fine-tuning de YOLO26 con tu propio dataset#

Al hacer fine-tuning de YOLO26 con tu propio dataset, no necesitas replicar toda la receta de preentrenamiento. Los pesos preentrenados ya incorporan los conocimientos sobre aumentos y optimización adquiridos durante el entrenamiento en COCO. Para conocer las prácticas recomendadas generales de entrenamiento, consulta Consejos para entrenar modelos.

Fine-tuning con la configuración predeterminada#

Fine-tuning 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 fine-tuning con la configuración predeterminada es una base sólida. Ajusta los hiperparámetros solo si tienes un motivo concreto para hacerlo.

Cuándo ajustar los hiperparámetros de YOLO26#

Datasets pequeños (< 1.000 imágenes):

  • Reduce la intensidad de los aumentos: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Reduce la tasa de aprendizaje con un optimizador explícito: optimizer=AdamW, lr0=0.001
  • Utiliza menos épocas con paciencia: epochs=50, patience=20
  • Considera congelar las capas del backbone: freeze=10

Datasets grandes (> 50.000 imágenes):

  • Reproduce la receta de preentrenamiento con mayor fidelidad
  • Considera optimizer=MuSGD para ejecuciones más largas
  • Aumenta los aumentos: mosaic=1.0, mixup=0.3, scale=0.9

Imágenes específicas del dominio (aéreas, médicas, submarinas):

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

Para la optimización automatizada de hiperparámetros, consulta la guía de ajuste de hiperparámetros.

Elige un tamaño de modelo#

ModeloIdeal paraGuía sobre el tamaño de batch
YOLO26nDispositivos Edge, móviles y tiempo real en CPUBatches grandes (64-128) en GPU de consumo
YOLO26sEquilibrio entre velocidad y precisiónBatches medianos (32-64)
YOLO26mMayor precisión con un uso moderado de recursosBatches más pequeños (16-32)
YOLO26lAlta precisión cuando hay una GPU disponibleLotes pequeños (8-16) o varias GPU
YOLO26xMáxima precisión, despliegue en servidorLotes pequeños (4-8) o varias GPU

Para consultar las opciones de exportación y despliegue, visita la guía de exportación y Opciones de despliegue de modelos.

Conclusión#

Los checkpoints de YOLO26 incluyen su receta de entrenamiento completa, por lo que los hiperparámetros exactos de cada tamaño de modelo están siempre a una consulta de train_args. Empieza el ajuste fino con los valores predeterminados, realiza ajustes deliberados usando las tablas de esta página y verifica cada cambio con tu propio conjunto de validación. Si te surgen dudas durante el proceso, pregunta a la comunidad en el repositorio de Ultralytics en GitHub o en el servidor de Discord de Ultralytics.

Preguntas frecuentes#

  • Carga el checkpoint con torch.load() y accede a la clave train_args, o utiliza model.ckpt["train_args"] con la API de Ultralytics. Consulta Inspección de los argumentos de entrenamiento de los checkpoints de YOLO26 para ver ejemplos completos.

  • Cada tamaño recibió las mismas 150 épocas de preentrenamiento con Objects365, por lo que los recuentos de COCO solo abarcan la fase de ajuste fino. Los modelos más grandes convergen en COCO en menos de esas épocas: 40 para X frente a 245 para N. Los recuentos no son estrictamente monotónicos (S utilizó 70 y M utilizó 80) porque se obtuvieron mediante la búsqueda de hiperparámetros específica de cada tamaño. Al realizar el ajuste fino con tu propio conjunto de datos, el número óptimo de épocas depende del tamaño y la complejidad del conjunto de datos, no del tamaño del modelo. Utiliza la detención temprana (patience) para encontrar automáticamente el momento adecuado de detener el entrenamiento.

  • Proceden de la rama experimental que generó los checkpoints base y se registraron en train_args para garantizar la reproducibilidad. No son ajustes configurables por el usuario en default.yaml, y pasarlos a model.train() genera un error de argumento no válido porque el paquete publicado no los lee. No necesitas establecerlos al realizar el ajuste fino; consulta Parámetros de entrenamiento internos para ver sus valores correspondientes a cada tamaño de modelo.

  • No. Cada checkpoint de COCO se ajustó a partir de un checkpoint de Objects365v1 del mismo tamaño que ya había sido entrenado durante 150 épocas, tal como se describe en Fase 1: preentrenamiento con Objects365 y en el artículo de YOLO26. No hay ningún entrenamiento de COCO desde cero detrás de las cifras publicadas, por lo que una comparación desde cero con esas cifras no se realiza en igualdad de condiciones.

  • Están dentro de los checkpoints y se representan gráficamente en Ultralytics Platform. Cada checkpoint almacena el results.csv completo de su ejecución, por época, de modo que al cargar un archivo .pt en un proyecto de Platform se representan las pérdidas, la evolución de mAP y las tasas de aprendizaje sin necesidad de escribir código. Consulta Visualización de las curvas de entrenamiento. La fase de Objects365 tiene su propio registro en los checkpoints yolo26*-objv1-150.pt.

  • Obtendrás unas métricas muy próximas a las publicadas, pero no idénticas. Para utilizar una configuración idéntica, comprueba el commit registrado en el checkpoint y entrena en esa rama. Consulta Comprobación de la revisión del código.

Comentarios