Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Fusión de modelos

Descubre cómo la fusión de modelos combina varios modelos preentrenados en uno solo. Aprende a fusionar los pesos Ultralytics para mejorar el rendimiento sin aumentar la latencia.

La fusión de modelos es una técnica innovadora en el aprendizaje automático (ML) que combina los parámetros aprendidos (pesos) de varios modelos preentrenados en un único modelo unificado. A diferencia de las configuraciones multimodelo tradicionales, la fusión combina directamente los pesos de los modelos en el espacio de parámetros. Esto permite a los profesionales combinar el conocimiento especializado de varios modelos ajustados para diferentes tareas o conjuntos de datos sin incurrir en los costes de memoria y computación que supone ejecutar múltiples modelos simultáneamente.

Al aplicar las operaciones directamente a los pesos, la fusión de modelos mantiene la huella arquitectónica de una sola red. Esto resulta especialmente valioso a la hora de implementar flujos de trabajo avanzados de visión artificial (CV) en dispositivos periféricos, donde reducir la latencia de inferencia y ahorrar memoria es fundamental.

Fusión de modelos de distinción

Es útil diferenciar la fusión de modelos de conceptos relacionados como el conjunto de modelos y el aprendizaje por transferencia.

  • Fusión de modelos frente a conjunto de modelos: un conjunto de modelos mantiene las redes individuales separadas, ejecutando cada una de ellas 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 tiempo de ejecución adicional.
  • Fusión de modelos frente al aprendizaje por transferencia: el aprendizaje por transferencia consiste en tomar un modelo base y entrenarlo aún más con un nuevo conjunto de datos. La fusión de modelos no requiere ningún ajuste adicional; utiliza operaciones matemáticas para fusionar modelos ya entrenados.

Técnicas habituales

Los investigadores han desarrollado varios métodos para combinar eficazmente los pesos sin mermar las capacidades subyacentes de la red, tal y como se analiza en recientes investigaciones académicas publicadas en arXiv.

  • Promedio de pesos: El método más sencillo, que consiste en calcular la media de los pesos de varios modelos que comparten la misma arquitectura.
  • Aritmética de tareas: técnica en la que se suman o restan «vectores de tareas» (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 entre parámetros eliminando los valores redundantes y seleccionando signos coherentes entre los distintos modelos, lo que permite mantener el rendimiento en diversas tareas.

Aplicaciones en el mundo real

La fusión de modelos resulta muy eficaz para crear sistemas generalizados sin necesidad de volver a entrenar los modelos desde cero.

  • Vehículos autónomos: Un coche autónomo podría utilizar un modelo base Ultralytics . Los ingenieros pueden entrenar de forma independiente una versión del modelo para detect movimientos detect de los peatones y otra para interpretar señales de tráfico complejas. La fusión de estos dos modelos da lugar a un único detector de gran capacidad que gestiona ambas tareas simultáneamente sin duplicar el tiempo de inferencia.
  • La IA en el sector sanitario: En el ámbito de las imágenes médicas, los distintos hospitales de investigación pueden ajustar sus modelos a partir de conjuntos de datos locales especializados (por ejemplo, uno para resonancias magnéticas y otro para tomografías computarizadas) debido a las estrictas leyes de protección de datos. Al fusionar los modelos de forma segura, los investigadores pueden crear una herramienta de diagnóstico integral que se beneficie de la diversidad de distribuciones de datos.

Ejemplo: Promedio ponderado simple

Puedes realizar fácilmente fusiones básicas de modelos utilizando PyTorch. El siguiente ejemplo muestra cómo calcular la media de los diccionarios de estado de dos modelos con una 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 desean simplificar los complejos flujos de trabajo relacionados con la anotación, el entrenamiento y la implementación de conjuntos de datos, la Ultralytics ofrece una interfaz intuitiva que permite gestionar proyectos de IA de visión de principio a fin sin esfuerzo.

¡Construyamos juntos el futuro de la IA!

Comience su viaje con el futuro del aprendizaje automático