Task Vectors
Un vector de tarea es la diferencia entre los pesos de un modelo ajustado y los de un modelo base; representa una habilidad que se puede añadir, eliminar o combinar. Repasa sus usos.
Los vectores de tareas representan los cambios concretos que se realizan en los pesos de una red neuronal durante el ajuste fino para adquirir una nueva capacidad. Al restar los parámetros de un modelo base fundacional 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 concreta. Este enfoque permite a los desarrolladores aplicar sencillas operaciones aritméticas a los parámetros del modelo para dirigir, modificar o combinar comportamientos del modelo sin necesitar más recursos de cómputo para el entrenamiento.
Diferencias entre los vectores de tarea y el aprendizaje por transferencia#
El concepto de aprendizaje por transferencia consiste en entrenar secuencialmente un modelo con un nuevo conjunto de datos para adaptar sus conocimientos existentes; los vectores de tarea, en cambio, actúan directamente sobre los pesos estructurales del modelo una vez terminado el entrenamiento. En lugar de volver a entrenar los gradientes para aprender un nuevo dominio, la interpolación en el espacio de pesos mediante vectores de tarea permite combinar linealmente las diferencias de pesos de varios modelos entrenados de forma independiente. Esto permite la fusión de modelos sin ejemplos, de modo que un único modelo hereda varias capacidades a la vez sin la habitual sobrecarga computacional durante el entrenamiento.
Aplicaciones en el mundo real#
La capacidad de manipular algebraicamente modelos de aprendizaje profundo ha propiciado varias aplicaciones de gran impacto en los procesos modernos de IA:
- Combinación de modelos multitarea: Los ingenieros pueden combinar vectores de tareas de modelos ajustados a partir del mismo modelo base, como dos modelos de detección de objetos entrenados con conjuntos de datos distintos. Los vectores de tareas solo se combinan entre arquitecturas idénticas, por lo que un modelo ajustado para detectar objetos no se puede combinar con otro ajustado para la segmentación de imágenes. Si se aplica a un modelo base de Ultralytics YOLO26, el resultado es un único modelo que hereda las fortalezas de cada modelo ajustado original.
- Olvido selectivo de máquinas y seguridad de la IA: Si un modelo genera resultados sesgados o peligrosos, los investigadores pueden calcular un vector de tarea que represente ese comportamiento no deseado concreto. Al restar este vector de los pesos del modelo, pueden «eliminar» eficazmente dicho comportamiento, lo que contribuye significativamente a mejorar la seguridad de la IA y los estándares sólidos de ética de la IA.
- Adaptación de dominio en visión artificial: Al adaptar modelos a entornos concretos —por ejemplo, al pasar de la inferencia en tiempo real diurna a la nocturna—, los vectores de tarea permiten ajustar la intensidad de la adaptación. Aplicar una fracción del vector (por ejemplo, un factor de escala de 0,5) puede producir un modelo equilibrado que funcione bien en ambos dominios.
Uso de vectores de tarea en PyTorch#
Para crear y aplicar un vector de tarea, es necesario acceder al diccionario de estados de PyTorch y manipularlo. El siguiente ejemplo muestra cómo extraer un vector de tarea de un modelo Ultralytics YOLO26 ajustado y aplicarlo de nuevo al modelo base con un factor de escala concreto.
from ultralytics import YOLO
# Carga los diccionarios de estados de los modelos base y ajustado
base_weights = YOLO("yolo26n.pt").model.state_dict()
tuned_weights = YOLO("yolo26n-custom.pt").model.state_dict()
# Calcula el vector de tareas (pesos ajustados menos pesos base), omitiendo los búferes de enteros
task_vector = {k: tuned_weights[k] - base_weights[k] for k in base_weights if base_weights[k].is_floating_point()}
# Aplica el vector de tarea al modelo base con un factor de escala de 0.5
for k, delta in task_vector.items():
base_weights[k] += 0.5 * deltaEl futuro de la manipulación de pesos#
A medida que aumenta el número de parámetros de arquitecturas como los modelos de lenguaje de gran tamaño y los grandes transformadores de visión, resulta económicamente inviable volver a entrenarlos para cada pequeño ajuste. Los vectores de tarea ofrecen una alternativa matemáticamente elegante para la optimización de modelos posterior al entrenamiento. Al compartir vectores de tarea ligeros en lugar de modelos enteros de varios gigabytes, la comunidad de IA puede acelerar la colaboración de código abierto en IA. Cuando hayas perfeccionado tus vectores de tarea personalizados, la plataforma Ultralytics simplifica los procesos posteriores de implementación de modelos y monitorización, y garantiza que los pesos optimizados se traduzcan directamente en puntos de conexión listos para producción.










