⚠️ Contenido generado con IA — no revisado por Gian. Este resumen fue producido automáticamente y no ha sido validado. Puede contener errores o imprecisiones.

Editing Models with Task Arithmetic

Autores: Gabriel Ilharco, Marco Tulio Ribeiro, Mitchell Wortsman, Suchin Gururangan, Ludwig Schmidt, Hannaneh Hajishirzi, Ali Farhadi

Publicado en: ICLR, 2023

Fecha de publicación: 2022-12-08

Tipo de método: Enmascarado / edición de pesos

Opinión y resumen de Gian

machine-unlearning edición-de-modelos task-vectors aritmética-de-pesos fine-tuning

Qué hace

Introduce el concepto de task vectors: vectores en el espacio de pesos del modelo que encapsulan el conocimiento adquirido al hacer fine-tuning en una tarea concreta. Muestra que estos vectores se pueden sumar, restar y combinar de forma que el modelo resultante adquiere, pierde o transfiere capacidades sin necesidad de reentrenamiento. En el contexto de unlearning, la negación de un task vector elimina la capacidad correspondiente del modelo.


Metodología

Task vectors: definición

Dado un modelo preentrenado con pesos \(\theta_\text{pre}\) y el mismo modelo fine-tuneado en la tarea \(t\) con pesos \(\theta_\text{ft}^t\), el task vector de la tarea \(t\) se define como la diferencia elemento a elemento:

\[\tau_t = \theta_\text{ft}^t - \theta_\text{pre}\]

El vector \(\tau_t\) captura exactamente qué cambió en los pesos durante el fine-tuning. Es tan simple como esto: no requiere ningún acceso a los datos de entrenamiento originales ni a los gradientes — solo los pesos del modelo preentrenado y del fine-tuneado.

Operaciones aritméticas

Con los task vectors definidos, el paper propone tres operaciones:

Suma (adquisición de capacidades): combinar varias tareas en un solo modelo sin reentrenamiento conjunto.

\[\theta_\text{new} = \theta_\text{pre} + \lambda \sum_i \tau_i\]

Negación (olvido de capacidades): restar el task vector aleja los pesos del modelo de la dirección aprendida, degradando el rendimiento en esa tarea mientras preserva el resto del modelo.

\[\theta_\text{new} = \theta_\text{pre} - \lambda \cdot \tau_t\]

Analogía (“A es a B como C es a D”): transferir la diferencia entre dos tareas a un tercer dominio.

\[\theta_\text{new} = \theta_\text{pre} + \lambda \cdot \bigl(\tau_C + (\tau_B - \tau_A)\bigr)\]

El escalar \(\lambda\) controla la intensidad de la edición y se calibra sobre un conjunto de validación. No hay parámetros adicionales ni gradientes involucrados en tiempo de edición.

Por qué funciona la negación para unlearning

La intuición es que el fine-tuning en una tarea desplaza los pesos en una dirección específica del espacio de parámetros. Aplicar \(-\lambda\tau_t\) invierte ese desplazamiento: el modelo “retrocede” hacia su estado preentrenado con respecto a esa tarea, perdiendo la capacidad adquirida. A diferencia de gradient ascent, la negación no requiere datos del forget set ni iteraciones de entrenamiento — es una operación analítica sobre pesos.


Datasets utilizados

  • Visión (con modelos CLIP ViT-L/14): Cars, DTD, EuroSAT, GTSRB, MNIST, RESISC45, SUN397, SVHN; ImageNet como control.
  • Generación de texto (GPT-2): Civil Comments (toxicidad), WikiText-103 (perplexity de control).
  • NLP (checkpoints de Hugging Face): GLUE (MRPC, RTE, CoLA, SST-2), Amazon/Yelp (sentimiento).

Resultados principales

  • Negación: reduce la precisión en la tarea objetivo en ~45.8 pp en modelos ViT-L/14, con pérdida mínima en ImageNet (control). Para toxicidad en GPT-2, reduce las generaciones tóxicas de 4.8% a 0.8% manteniendo la perplexity en WikiText-103 dentro de 0.5 puntos.
  • Suma: mantiene 98.9% de precisión normalizada al combinar pares de tareas; 91.2% al combinar las ocho tareas simultáneamente.
  • Comparación con baselines: supera a gradient ascent y a vectores aleatorios en negación; supera a fine-tuning multi-tarea en varios escenarios de suma.

Ventajas respecto a trabajos anteriores

  • Edición de modelos sin datos ni gradientes en tiempo de aplicación: solo aritmética sobre vectores de pesos.
  • Generaliza varios tipos de edición (añadir, borrar, transferir) bajo un marco unificado.
  • Opera sobre cualquier modelo fine-tuneado estándar; no requiere arquitecturas especiales ni acceso al pipeline de entrenamiento.

Trabajos previos relacionados

  • Cao & Yang (2015) — Machine Unlearning: trabajo fundacional del campo; task arithmetic ofrece una alternativa analítica al reentrenamiento exacto propuesto allí.
  • Jang et al. (2022) — Knowledge Unlearning: gradient ascent para unlearning en LLMs; la negación de task vectors logra un efecto similar sin requerir datos ni iteraciones de entrenamiento.
  • Maini et al. (2024) — TOFU: benchmark de unlearning en LLMs donde variantes de task arithmetic sirven como baseline de edición de pesos.
  • Cai et al. (2026) — Per-parameter Task Arithmetic for Unlearning: extensión directa de este trabajo que aplica task arithmetic con máscaras por parámetro para mejorar la precisión del unlearning en LLMs.

Tags

machine-unlearning edición-de-modelos task-vectors aritmética-de-pesos fine-tuning