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 se corresponden con conceptos de alto nivel, tales como "cortesía", "veracidad" o características visuales específicas. Al inyectar o restar artificialmente estos vectores de los estados internos del modelo durante el paso hacia adelante, puedes controlar y alterar de forma predecible el comportamiento del modelo sin actualizar ninguno de los pesos subyacentes. Esta técnica, fundamentalmente arraigada en la Ingeniería de Activación, proporciona un control a coste cero y durante la inferencia sobre sistemas de aprendizaje profundo que van desde modelos de lenguaje grandes hasta arquitecturas de visión.
Link to this sectionCómo funcionan los vectores de dirección#
Para crear un vector de dirección, los investigadores suelen utilizar un método llamado Adición de Activación Contrastiva (CAA, por sus siglas en inglés). Esto implica pasar un conjunto de pares de datos contrastivos —como un prompt que solicita al modelo ser "útil" frente a otro que le pide ser "dañino"— a través de la red. La diferencia en las salidas de la función de activación entre estos pares se promedia a través de múltiples muestras para aislar la dirección geométrica específica que representa ese concepto en el espacio tensorial.
Durante la inferencia en tiempo real, este vector se suma o se resta de los estados ocultos en capas específicas mediante una simple adición de tensores de PyTorch. Escalar la fuerza del vector permite a los profesionales ajustar con precisión la intensidad del comportamiento inyectado.
Link to this sectionDiferenciació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 aprendizaje automático requiere distinguirlos de metodologías similares:
- Vectores de tarea: Mientras que los vectores de tarea operan en el espacio de pesos modificando los pesos del modelo reales tras el entrenamiento para fusionar capacidades, los vectores de dirección operan estrictamente en el espacio de activación durante el tiempo de ejecución, dejando los pesos originales completamente intactos.
- Ingeniería de representación (RepE): RepE es el marco metodológico general para leer y controlar los estados cognitivos internos, ampliamente investigado por organizaciones como el Center for AI Safety. 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 o la imagen de entrada del usuario. Los vectores de dirección evitan el cuello de botella de la 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 el descenso de gradiente, lo que requiere una gran capacidad de computación que a menudo se gestiona a través de herramientas en la nube como la Plataforma Ultralytics. Los vectores de dirección evitan por completo esta carga computacional.
Link to this sectionAplicaciones en el mundo real en IA#
La capacidad de dirigir dinámicamente modelos ha desbloqueado avances significativos en las modernas tuberías de inteligencia artificial:
- Mejora de la seguridad de la IA: Al aislar el vector de dirección asociado con la "negativa" 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 estrictos mecanismos de seguridad.
- Control de modelos de razonamiento: Estudios recientes sobre arquitecturas de pensamiento avanzado demuestran que los vectores de dirección pueden modular las cadenas de razonamiento internas. Los profesionales pueden aumentar la tendencia de un modelo a expresar incertidumbre o rectificar errores durante la resolución de problemas complejos.
- Mitigación del sesgo de la IA: Al extraer el vector que representa un sesgo social específico, puedes restar esta dirección durante la generación. Esto neutraliza eficazmente el sesgo y mejora la equidad sin necesidad de volver a entrenar, al tiempo que reduce la probabilidad de alucinaciones en los LLM.
- Dirección de sistemas de visión artificial: En los modelos de visión, los vectores de dirección pueden aplicarse a los mapas de características para aumentar artificialmente la sensibilidad de la red a objetivos críticos. Por ejemplo, se puede dirigir un modelo de detección de objetos para que dé prioridad a la búsqueda de peatones en condiciones meteorológicas adversas.
Link to this sectionAplicació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 un paso hacia adelante. Mediante el uso de hooks de paso hacia adelante 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()





