Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Sopas de modelo

Descubre cómo Model Soups mejora la precisión y la solidez al promediar los pesos deYOLO Ultralytics . Aprende a mejorar el rendimiento sin aumentar la latencia.

Las «sopas de modelos» son una técnica de aprendizaje automático en la que se promedia el peso de varias redes neuronales, ajustadas a partir del mismo modelo base preentrenado utilizando diferentes hiperparámetros, para crear un único modelo más robusto. Este enfoque permite a los desarrolladores mejorar la precisión general y la generalización sin aumentar el coste computacional durante la inferencia.

Al ajustar un modelo, los profesionales suelen realizar un amplio barrido de ajuste de hiperparámetros para encontrar la configuración que ofrece mejores resultados. Tradicionalmente, se selecciona el mejor modelo y se descartan el resto. Sin embargo, la creación de un «model soup» aprovecha las diversas características aprendidas por todos los modelos en el barrido. Al promediar directamente los pesos de los modelos, la red resultante suele superar al mejor modelo individual, combinando eficazmente sus puntos fuertes y minimizando al mismo tiempo el sobreajuste. Este proceso es muy eficiente y puede gestionarse fácilmente en entornos colaborativos como la Ultralytics .

Aplicaciones en el mundo real

Los modelos «soup» resultan muy eficaces en situaciones en las que los recursos computacionales son limitados, pero se requiere una alta precisión y robustez.

  • Visión para vehículos autónomos: al implementar sistemas de detección de objetos en coches autónomos, los modelos deben ser capaces de generalizar en diversas condiciones de iluminación y meteorológicas. Al promediar varios modelos entrenados con diferentes aumentos de datos y tasas de aprendizaje, los ingenieros crean una combinación muy robusta que mantiene una baja latencia de inferencia. Esto garantiza que las velocidades de procesamiento en tiempo real, fundamentales para la navegación autónoma, no se vean afectadas.
  • Diagnóstico médico móvil: en las aplicaciones de IA periférica, como la clasificación de imágenes en teléfonos inteligentes para la detección dermatológica inicial, la potencia de cálculo es muy limitada. Un «model soup» proporciona el aumento de precisión necesario para garantizar la fiabilidad clínica, al tiempo que asegura que el tamaño final del modelo se adapte fácilmente a los dispositivos móviles periféricos sin agotar la batería ni requerir conexión a la nube.

Diferenciar conceptos relacionados

Para orientarse en el ámbito de la optimización del aprendizaje profundo, es importante distinguir los «Model Soups» de otras técnicas similares:

  • Conjunto de modelos: El ensamblaje combina las predicciones (resultados) de varios modelos independientes. Aunque esto mejora la precisión, requiere ejecutar todos los modelos durante la inferencia, lo que multiplica el coste computacional. Los «model soups» promedian los ponderos antes de la inferencia, manteniendo el coste computacional al mismo nivel que el de un único modelo.
  • Fusión de modelos: se trata de un término más amplio que hace referencia a la combinación de modelos que pueden haber sido entrenados para tareas o conjuntos de datos totalmente diferentes. Los «model soups» son un subconjunto específico de la fusión en el que todos los modelos proceden exactamente de la misma arquitectura base preentrenada y se ajustan para la misma tarea objetivo.

Ejemplo de aplicación

Para crear una «sopa de modelos» uniforme, hay que acceder al diccionarioPyTorch de varios modelos entrenados y calcular matemáticamente la media de sus tensores. A continuación se muestra un ejemplo conciso de cómo se puede lograr esto utilizando un flujo de trabajo Ultralytics compatible de forma nativa con el PyTorch .

import torch

# Load the PyTorch state dictionaries from two fine-tuned YOLO26 models
model1 = torch.load("yolo26_run1.pt")["model"].state_dict()
model2 = torch.load("yolo26_run2.pt")["model"].state_dict()

# Create a uniform model soup by averaging the model weights
soup_dict = {key: (model1[key] + model2[key]) / 2.0 for key in model1.keys()}

# The resulting soup_dict can now be loaded into a new YOLO26 instance

Al aprovechar esta técnica, los profesionales de la visión artificial pueden mejorar fácilmente métricas de rendimiento como las capacidades de aprendizaje sin entrenamiento previo y la robustez general, sin sacrificar la velocidad de implementación que requieren las arquitecturas modernas de IA centradas en el borde.

¡Construyamos juntos el futuro de la IA!

Comience su viaje con el futuro del aprendizaje automático