Steering Vectors
Descubre cómo los vectores de dirección permiten un control en tiempo real de las redes neuronales sin necesidad de reentrenamiento. Aprende ingeniería de activación con Ultralytics YOLO26.
Los vectores de dirección representan direcciones matemáticas significativas dentro del espacio de activación oculto de una red neuronal que corresponden a conceptos de alto nivel, como "educación", "veracidad" o características visuales específicas. Al inyectar o restar artificialmente estos vectores de los estados internos del modelo durante la pasada hacia adelante (forward pass), puedes controlar y alterar predeciblemente el comportamiento del modelo sin actualizar ningún peso subyacente. Esta técnica, fundamentalmente arraigada en la Ingeniería de Activación, proporciona un control de coste cero y en tiempo de inferencia sobre sistemas de deep learning que van desde modelos de lenguaje grandes hasta arquitecturas de visión.
Cómo funcionan los vectores de dirección#
Para crear un vector de dirección, los investigadores suelen utilizar un método llamado Suma de Activación Contrastiva (CAA). Esto implica hacer pasar a través de la red un conjunto de pares de datos contrastivos —como un mensaje que le pide al modelo ser "útil" frente a uno que le pide ser "dañino"—. La diferencia en las salidas de la función de activación entre estos pares se promedia en múltiples muestras para aislar la dirección geométrica específica que representa ese concepto en el espacio de tensores.
Durante la inferencia en tiempo real, este vector se suma o se resta de los estados ocultos en capas específicas utilizando una simple suma de tensores de PyTorch. Escalar la intensidad del vector permite a los desarrolladores afinar la intensidad del comportamiento inyectado.
Diferenciación de los vectores de dirección de conceptos relacionados#
Comprender cómo encajan los vectores de dirección en el panorama más amplio del machine learning requiere distinguirlos de metodologías similares:
- Vectores de Tareas: Mientras que los vectores de tareas operan en el espacio de pesos modificando los pesos del modelo reales después del entrenamiento para fusionar capacidades, los vectores de dirección operan estrictamente en el espacio de activación en tiempo de ejecución, dejando los pesos originales completamente intactos.
- Ingeniería de Representación (RepE): RepE es el marco metodológico general de lectura y control de estados cognitivos internos, ampliamente investigado por organizaciones como el Centro para la Seguridad de la IA. Los vectores de dirección son las herramientas matemáticas específicas utilizadas dentro de la fase de control de RepE.
- Ingeniería de Prompts: El prompting intenta guiar el comportamiento modificando el texto de entrada o la imagen del usuario. Los vectores de dirección eluden el cuello de botella de entrada, manipulando directamente el procesamiento cognitivo interno del modelo.
- Ajuste Fino: Los métodos de alineación tradicionales como el Aprendizaje por Refuerzo a partir de Retroalimentación Humana (RLHF) alteran permanentemente el modelo mediante descenso de gradiente, lo que requiere un cómputo pesado que a menudo se gestiona mediante herramientas en la nube como la Ultralytics Platform. Los vectores de dirección evitan por completo esta sobrecarga computacional.
Aplicaciones en el mundo real en IA#
La capacidad de dirigir dinámicamente los modelos ha desbloqueado avances significativos en los pipelines modernos de inteligencia artificial:
- Mejora de la Seguridad de la IA: Al aislar el vector de dirección asociado con el "rechazo" o la "inocuidad", los ingenieros pueden forzar a los modelos a rechazar instrucciones maliciosas. Con el respaldo de la investigación de alineación de OpenAI y los estudios de interpretabilidad de Anthropic, dirigir características específicas puede alterar drásticamente la personalidad conversacional de una IA y garantizar estrictas barreras de seguridad.
- Control de Modelos de Razonamiento: Estudios recientes sobre arquitecturas de pensamiento avanzado demuestran que los vectores de dirección pueden modular cadenas de razonamiento interno. Los desarrolladores pueden aumentar la tendencia de un modelo a expresar incertidumbre o retroceder ante errores durante la resolución de problemas complejos.
- Mitigación del Sesgo en la IA: Al extraer el vector que representa un sesgo social específico, los desarrolladores pueden restar esta dirección durante la generación. Esto neutraliza eficazmente el sesgo y mejora la equidad sin necesidad de reentrenamiento, al tiempo que reduce la probabilidad de alucinación en LLMs.
- Dirección de Sistemas de Visión Artificial: En los modelos de visión, los vectores de dirección se pueden aplicar a los mapas de características para aumentar artificialmente la sensibilidad de la red a objetivos críticos. Por ejemplo, un modelo de detección de objetos puede ser dirigido para priorizar la búsqueda de peatones en condiciones meteorológicas adversas.
Aplicación de vectores de dirección con PyTorch#
A continuación se muestra un ejemplo ejecutable de cómo aplicar una intervención de dirección de activación a un modelo Ultralytics YOLO26 durante una pasada hacia adelante. Mediante el uso de ganchos de reenvío de PyTorch, puedes inyectar vectores personalizados directamente en las capas ocultas.
import torch
from ultralytics import YOLO
# Load the recommended Ultralytics YOLO26 model for state-of-the-art vision tasks
model = YOLO("yolo26n.pt")
# Define a hook function to steer the internal activations
def steer_activations_hook(module, input, output):
# Create a steering vector matching the output shape (for demonstration purposes)
# In practice, this vector is pre-computed via Contrastive Activation Addition (CAA)
steering_vector = torch.ones_like(output) * 0.1
# Add the steering vector to the model's hidden states to alter behavior at inference
return output + steering_vector
# Attach the hook to a middle layer (e.g., layer index 5) to inject the vector
handle = model.model.model[5].register_forward_hook(steer_activations_hook)
# Run inference on an image with the dynamically steered activations
results = model("https://ultralytics.com/images/bus.jpg")
# Remove the hook to restore the model to its original unsteered state
handle.remove()





