Yolo Vision Shenzhen
Shenzhen
Únete ahora
Glosario

Vectores de tareas

Descubre cómo los vectores de tareas permiten fusionar modelos y dirigir el comportamiento de forma eficiente. Descubre cómo manipular los pesos Ultralytics para la multitarea sin entrenamiento previo.

Los vectores de tareas representan los cambios específicos realizados en los peso de una red neuronal durante el ajuste fino para lograr una nueva capacidad. Al restar los parámetros de un modelo base fundamental de los de un modelo ajustado, los investigadores pueden aislar un vector direccional en el espacio de pesos que encapsula el comportamiento aprendido para esa tarea específica. Este enfoque permite a los desarrolladores aplicar simples operaciones aritméticas sobre los parámetros del modelo para dirigir, modificar o fusionar comportamientos del modelo sin requerir recursos computacionales adicionales para el entrenamiento.

En qué se diferencian los vectores de tareas del aprendizaje por transferencia

Mientras que el concepto de aprendizaje por transferencia implica entrenar secuencialmente un modelo con un nuevo conjunto de datos para adaptar sus conocimientos existentes, los vectores de tarea actúan directamente sobre los pesos estructurales del modelo tras el entrenamiento. En lugar de volver a entrenar los gradientes para aprender un nuevo dominio, la interpolación del espacio de pesos mediante vectores de tareas permite a los profesionales combinar linealmente las diferencias de pesos de múltiples modelos entrenados de forma independiente. Esto permite la fusión de modelos «zero-shot», lo que permite que un único modelo herede múltiples capacidades simultáneamente sin la típica sobrecarga computacional durante el entrenamiento.

Aplicaciones en el mundo real

La capacidad de manipular modelos de aprendizaje profundo de forma algebraica ha dado lugar a varias aplicaciones de gran repercusión en los procesos modernos de IA:

Trabajar con vectores de tareas en PyTorch

Para crear y aplicar un vector de tareas es necesario acceder al diccionarioPyTorch y manipularlo. El siguiente ejemplo muestra cómo extraer un vector de tareas de un modelo YOLO26 ajustado y volver a aplicarlo al modelo base con un factor de escala específico.

from ultralytics import YOLO

# Load the state dictionaries for the base and fine-tuned models
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()

# Calculate the task vector (tuned weights minus base weights)
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights.keys()}

# Apply the task vector to the base model using a 0.5 scaling factor
for k in base_weights.keys():
    base_weights[k] += 0.5 * task_vector[k]

El futuro de la manipulación del peso

A medida que arquitecturas como los grandes modelos de lenguaje y los transformadores de visión a gran escala aumentan su número de parámetros, volver a entrenarlas para cada pequeño ajuste se vuelve económicamente inviable. Los vectores de tarea ofrecen una alternativa matemáticamente elegante para la optimización de modelos tras el entrenamiento . Al compartir vectores de tareas ligeros en lugar de modelos completos de varios gigabytes, la comunidad de IA puede acelerar la colaboración de código abierto en IA. Una vez que se hayan perfeccionado sus vectores de tareas personalizados, el uso de la Ultralytics simplifica los procesos posteriores de implementación y supervisión de modelos, garantizando que sus pesos optimizados se traduzcan directamente en puntos finales listos para la producción.

¡Construyamos juntos el futuro de la IA!

Comience su viaje con el futuro del aprendizaje automático