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 .
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.
Para orientarse en el ámbito de la optimización del aprendizaje profundo, es importante distinguir los «Model Soups» de otras técnicas similares:
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.
Comience su viaje con el futuro del aprendizaje automático