Model Merging
Descubre cómo la fusión de modelos combina múltiples modelos preentrenados en uno solo. Aprende a fusionar pesos de Ultralytics YOLO26 para aumentar el rendimiento sin latencia adicional.
La fusión de modelos es una técnica innovadora en machine learning (ML) que combina los parámetros aprendidos (pesos) de varios modelos preentrenados en un único modelo unificado. A diferencia de las configuraciones tradicionales con múltiples modelos, la fusión combina directamente los pesos del modelo en el espacio de parámetros. Esto permite a los profesionales combinar el conocimiento especializado de varios modelos ajustados en diferentes tareas o conjuntos de datos sin incurrir en los costes computacionales y de memoria de ejecutar varios modelos simultáneamente.
Al aplicar operaciones directamente a los pesos, la fusión de modelos mantiene la huella arquitectónica de una sola red. Esto es especialmente valioso al implementar pipelines avanzados de computer vision (CV) en dispositivos de borde (edge), donde reducir la latencia de inferencia y ahorrar memoria es fundamental.
Link to this sectionDiferenciar la fusión de modelos#
Resulta útil diferenciar la fusión de modelos de conceptos relacionados como Model Ensemble y Transfer Learning.
- Fusión de modelos frente a Model Ensemble: Un conjunto (ensemble) de modelos mantiene las redes individuales separadas, ejecutando cada una durante la inferencia y promediando sus resultados. Esto aumenta la precisión pero multiplica la carga computacional. La fusión de modelos combina los pesos reales antes de la inferencia, lo que da como resultado un único modelo que no requiere cómputo adicional en tiempo de ejecución.
- Fusión de modelos frente a Transfer Learning: El Transfer Learning implica tomar un modelo base y seguir entrenándolo en un nuevo conjunto de datos. La fusión de modelos no requiere ningún fine-tuning adicional; utiliza operaciones matemáticas para fusionar modelos ya entrenados.
Link to this sectionTécnicas comunes#
Los investigadores han desarrollado varios métodos para combinar eficazmente los pesos sin destruir las capacidades subyacentes de la red, tal y como se explora en investigaciones académicas recientes en arXiv.
- Weight Averaging: El método más sencillo, que consiste en calcular la media de los pesos de múltiples modelos que comparten la misma arquitectura.
- Aritmética de tareas (Task Arithmetic): Una técnica en la que se suman o restan "vectores de tarea" (la diferencia entre un modelo ajustado y su modelo base) para combinar o eliminar comportamientos específicos.
- TIES-Merging: Un enfoque avanzado que resuelve la interferencia de parámetros recortando valores redundantes y eligiendo signos consistentes entre los modelos, preservando el rendimiento en diversas tareas.
Link to this sectionAplicaciones en el mundo real#
La fusión de modelos es altamente efectiva para construir sistemas generalizados sin necesidad de reentrenar desde cero.
- Vehículos autónomos: Un coche autónomo podría utilizar un modelo base Ultralytics YOLO26. Los ingenieros pueden entrenar de forma independiente una versión del modelo para detectar movimientos sutiles de peatones y otra para leer señales de tráfico complejas. La fusión de estos dos modelos crea un detector único y altamente capaz que maneja ambas tareas simultáneamente sin duplicar el tiempo de inferencia.
- IA en sanidad: En imagen médica, diferentes hospitales de investigación podrían ajustar modelos en conjuntos de datos locales especializados (por ejemplo, uno para escáneres de resonancia magnética y otro para escáneres de tomografía computarizada) debido a las estrictas leyes de privacidad de datos. Al fusionar los modelos de forma segura, los investigadores pueden crear una herramienta de diagnóstico integral que se beneficie de diversas distribuciones de datos.
Link to this sectionEjemplo: Promedio simple de pesos#
Puedes realizar fácilmente una fusión básica de modelos utilizando PyTorch. El siguiente ejemplo demuestra cómo promediar los diccionarios de estado de dos modelos de estructura idéntica.
import torch
# Load the weights (state dicts) from two identical architectures
weights_a = torch.load("yolo26_task1.pt")["model"].state_dict()
weights_b = torch.load("yolo26_task2.pt")["model"].state_dict()
# Perform simple weight averaging
merged_weights = {k: (weights_a[k] + weights_b[k]) / 2.0 for k in weights_a.keys()}
# Save the newly merged model weights
torch.save({"model": merged_weights}, "yolo26_merged.pt")Para los equipos que buscan simplificar los complejos flujos de trabajo de anotación de conjuntos de datos, entrenamiento e implementación, la Plataforma Ultralytics proporciona una interfaz intuitiva para gestionar proyectos de visión por ordenador de principio a fin sin esfuerzo.






