Representation Engineering (RepE)
La ingeniería de representaciones (RepE) identifica direcciones en las activaciones ocultas de un modelo para conceptos como la honestidad y las usa para supervisar y orientar su comportamiento.
La ingeniería de representaciones (RepE) es un enfoque para comprender y controlar las redes neuronales mediante las representaciones de alto nivel de sus activaciones ocultas, como las direcciones que codifican la honestidad, la nocividad o las emociones. Tiene dos vertientes: la lectura de representaciones, que localiza un concepto en las activaciones de un modelo y lo mide en entradas nuevas, y el control de representaciones, que modifica esas activaciones o los pesos del modelo que las producen para que el modelo exprese el concepto en mayor o menor medida. Andy Zou, Dan Hendrycks y sus colaboradores del Center for AI Safety, la Universidad Carnegie Mellon y otras instituciones la presentaron en 2023 en Representation Engineering: A Top-Down Approach to AI Transparency, principalmente con modelos de lenguaje grandes (LLM). El artículo denomina descendente a este enfoque porque parte de representaciones completas distribuidas entre muchas neuronas, como la neurociencia cognitiva estudia patrones de actividad en todo el cerebro, en lugar de partir de neuronas y circuitos individuales.
Lectura de representaciones#
El principal método de lectura de RepE es la tomografía artificial lineal (LAT), que recibe su nombre de las técnicas de imagen cerebral y consta de tres pasos:
- Diseña estímulos y una tarea: Escribe entradas que difieran en el concepto objetivo y envuelve cada una en una plantilla que haga que el modelo le preste atención, como «Considera el grado de felicidad de la siguiente situación: … El grado de felicidad de la situación es».
- Recopila activaciones: Pasa los estímulos por el modelo y registra los estados ocultos de las capas elegidas, normalmente en el último token.
- Crea un modelo lineal: Calcula las diferencias entre las activaciones de estímulos emparejados y usa su primer componente principal como vector de lectura del concepto.
Al proyectar las activaciones de una nueva entrada sobre el vector de lectura se obtiene una puntuación del concepto, que puede seguirse token a token para supervisar el modelo mientras genera texto. Este ejemplo de PyTorch crea un vector de lectura de felicidad a partir de seis pares de situaciones contrastadas en la capa 8 de GPT-2, cargado desde Transformers de Hugging Face, y puntúa seis situaciones que nunca había visto:
import torch
from transformers import AutoModel, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModel.from_pretrained("gpt2")
template = "Consider the amount of happiness in the following scenario:\n{}\nThe amount of happiness in the scenario is"
def read(scenario, layer=8):
"""Return the last token's hidden state at one layer for a scenario wrapped in the template."""
with torch.no_grad():
outputs = model(**tokenizer(template.format(scenario), return_tensors="pt"), output_hidden_states=True)
return outputs.hidden_states[layer][0, -1]
# Stimulus pairs that differ only in the concept being read
pairs = [
("I passed the exam.", "I failed the exam."),
("We won the match.", "We lost the match."),
("She found her keys.", "She lost her keys."),
("The party was fun.", "The party was dull."),
("My plant is thriving.", "My plant is dying."),
("He got the job.", "He lost the job."),
]
diffs = torch.stack([read(happy) - read(sad) for happy, sad in pairs])
direction = torch.linalg.svd(diffs, full_matrices=False).Vh[0] # top principal direction of the differences
direction *= (diffs @ direction).mean().sign() # orient it toward the happy member of each pair
center = torch.stack([read(text) for pair in pairs for text in pair]).mean(0)
# Score unseen scenarios by projecting their activations onto the reading vector
for scenario in [
"The surgery went well.",
"Our flight was canceled.",
"We adopted a puppy.",
"My phone was stolen.",
"I got a raise today.",
"The basement flooded.",
]:
print(f"{(read(scenario) - center) @ direction:+6.1f} {scenario}")Las tres situaciones felices obtienen +0.6, +3.6 y +1.4, y las tres infelices, -1.3, -2.5 y -0.9, por lo que el signo de la puntuación separa las seis sin entrenar un clasificador con etiquetas. Zou et al. aplicaron el mismo procedimiento a modelos LLaMA-2-Chat para medir veracidad, honestidad, utilidad, moralidad, poder, emoción, inocuidad, sesgo y memorización, y sumaron las puntuaciones de honestidad por token en las capas intermedias para crear un detector de mentiras que señala falsedades deliberadas y alucinaciones a medida que el modelo las genera.
Control de representaciones#
Una vez identificada la dirección de un concepto, RepE modifica el comportamiento actuando sobre ella. El propio vector de lectura puede sumarse o restarse a las activaciones de una capa durante la generación, utilizándolo como vector de dirección. Para cada entrada, se calcula sobre la marcha un vector de contraste como la diferencia entre las activaciones de dos versiones de la instrucción, por ejemplo, una que indica al modelo que sea honesto y otra que le pide mentir. La adaptación de representaciones de bajo rango (LoRRA) entrena adaptadores LoRA para que las representaciones del modelo se desplacen por sí solas en la dirección objetivo, haciendo que el control sea permanente. En la prueba TruthfulQA, el control con vectores de contraste elevó la precisión de elección múltiple de LLaMA-2-Chat-13B del 35,9 % al 54,0 %.
El control creado de este modo contribuye a la seguridad de la IA. Los interruptores de circuito del mismo grupo aplican la ingeniería de representaciones a las salidas perjudiciales: cuando las representaciones internas del modelo empiezan a apuntar hacia contenido dañino, el entrenamiento las redirige. Así se bloquearon respuestas perjudiciales ante ataques de jailbreak que el modelo nunca había visto, incluidos secuestros basados en imágenes de modelos multimodales, y se conservaron sus capacidades generales.
La lectura también se aplica a los modelos de visión, ya que las redes de visión artificial también codifican conceptos como direcciones en sus mapas de características. En Ultralytics YOLO26, model.embed() devuelve un vector de activación con agrupación promedio por imagen de cualquier capa elegida; si se pasan varios índices de capa, concatena sus vectores, lo que proporciona las activaciones de los estímulos para crear un vector de lectura al estilo LAT a partir de imágenes.
RepE frente a conceptos relacionados#
- Interpretabilidad mecanicista: Trabaja de abajo arriba y reconstruye mediante ingeniería inversa neuronas, características y circuitos individuales. RepE trabaja de arriba abajo, a partir de representaciones de nivel conceptual distribuidas entre muchas neuronas.
- Vectores de dirección: Direcciones que se suman a las activaciones durante la inferencia. Son la principal herramienta de control de RepE, que además incorpora la lectura y la supervisión.
- Sondeo lineal: Entrena un clasificador supervisado con las activaciones para comprobar si una propiedad puede decodificarse. LAT obtiene su dirección a partir de diferencias sin etiquetar entre estímulos emparejados y solo usa etiquetas para orientarla.
- Autoencoders dispersos (SAE): Descomponen las activaciones en miles de características sin elegir conceptos de antemano. RepE parte de un concepto nombrado por una persona y encuentra su dirección.
- Ajuste fino: Modifica el comportamiento mediante actualizaciones de pesos con un conjunto de datos. Los controles de RepE a nivel de activación no alteran los pesos, y LoRRA ajusta el modelo con una función de pérdida definida sobre representaciones en vez de sobre salidas.










