Model Soups
Descubre cómo las sopas de modelos mejoran la precisión y la robustez promediando los pesos de los modelos Ultralytics YOLO. Aprende a aumentar el rendimiento sin aumentar la latencia.
Model Soups se refiere a una técnica de aprendizaje automático en la que los pesos de múltiples redes neuronales, ajustadas con precisión a partir del mismo modelo base preentrenado usando diferentes hiperparámetros, se promedian 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.
Cuando ajustas un modelo, los profesionales suelen realizar un amplio barrido de hyperparameter tuning para encontrar la configuración con mejor rendimiento. Tradicionalmente, se selecciona el mejor modelo individual y se descartan los demás. Sin embargo, crear un model soup aprovecha las diversas características aprendidas por todos los modelos del barrido. Al promediar directamente sus model weights, la red resultante suele superar al mejor modelo individual, combinando eficazmente sus puntos fuertes y minimizando el overfitting. Este proceso es altamente eficiente y se puede gestionar fácilmente en entornos colaborativos como Ultralytics Platform.
Aplicaciones en el mundo real#
Los Model Soups son muy efectivos en escenarios donde los recursos computacionales son limitados, pero se requiere una alta precisión y robustez.
- Visión de vehículos autónomos: Al implementar sistemas de object detection en coches autónomos, los modelos deben generalizar en diversas condiciones de iluminación y meteorológicas. Al promediar múltiples modelos entrenados con diversas aumentaciones de datos y tasas de aprendizaje, los ingenieros crean una mezcla muy robusta que mantiene una baja inference latency. Esto garantiza que las velocidades de procesamiento en tiempo real cruciales para la autonomous navigation no se vean afectadas.
- Diagnóstico médico móvil: En aplicaciones de inteligencia artificial en el borde, como la ejecución de image classification en smartphones para la detección dermatológica inicial, la potencia de cálculo es sumamente limitada. Un model soup proporciona la precisión mejorada necesaria para la fiabilidad clínica, asegurando al mismo tiempo que el tamaño final quepa fácilmente en mobile edge devices sin agotar la batería ni requerir conectividad en la nube.
Diferenciación de conceptos relacionados#
Para comprender el panorama de la deep learning optimization, es importante distinguir los Model Soups de técnicas similares:
- Model Ensemble: El ensemble combina las predicciones (salidas) de múltiples modelos independientes. Aunque esto mejora la precisión, requiere ejecutar cada modelo durante la inferencia, multiplicando el coste computacional. Los Model Soups promedian los pesos antes de la inferencia, manteniendo el coste computacional idéntico al de un único modelo.
- Model Merging: Este es un término más amplio para combinar modelos que pueden haber sido entrenados en tareas o conjuntos de datos completamente diferentes. Los Model Soups son un subconjunto específico de la fusión donde todos los modelos provienen exactamente de la misma pre-trained base architecture y se ajustan en la misma tarea objetivo.
Ejemplo de implementación#
Crear un model soup uniforme implica acceder al PyTorch state dictionary de múltiples modelos entrenados y promediar matemáticamente sus tensores. A continuación se muestra un ejemplo conciso de cómo lograr esto utilizando un flujo de trabajo de Ultralytics YOLO26 respaldado de forma nativa por el PyTorch framework.
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 instanceAl aprovechar esta técnica, los profesionales de la visión artificial pueden mejorar fácilmente las métricas de rendimiento como las capacidades de zero-shot learning y la robustez general sin sacrificar la velocidad de implementación requerida para las arquitecturas de inteligencia artificial modernas y orientadas al borde.






