Steering Vectors
Entdecke, wie Steering Vectors die Echtzeitsteuerung von neuronalen Netzen ohne Nachtraining ermöglichen. Lerne Activation Engineering mit Ultralytics YOLO26 kennen.
Steering Vectors repräsentieren aussagekräftige, mathematische Richtungen innerhalb des versteckten Aktivierungsraums eines neural network, die übergeordneten Konzepten entsprechen, wie etwa „Höflichkeit“, „Wahrhaftigkeit“ oder spezifischen visuellen Merkmalen. Indem Entwickler diese Vektoren während des Forward-Passes künstlich in die internen Zustände des Modells injizieren oder von ihnen subtrahieren, können sie das Verhalten des Modells vorhersehbar steuern und verändern, ohne die zugrunde liegenden Gewichte zu aktualisieren. Diese Technik, die grundlegend auf Activation Engineering basiert, ermöglicht eine kostenlose Steuerung von deep learning-Systemen zur Laufzeit, von large language models bis hin zu Vision-Architekturen.
Link to this sectionWie Steering Vectors funktionieren#
Um einen Steering Vector zu erstellen, verwenden Forscher üblicherweise eine Methode namens Contrastive Activation Addition (CAA). Dabei wird eine Reihe kontrastiver Datenpaare – zum Beispiel ein Prompt, der das Modell bittet, „hilfreich“ zu sein, gegenüber einem, der es bittet, „schädlich“ zu sein – durch das Netzwerk geschickt. Der Unterschied in den Ausgaben der activation function zwischen diesen Paaren wird über mehrere Samples gemittelt, um die spezifische geometrische Richtung zu isolieren, die dieses Konzept im tensor space repräsentiert.
Während der real-time inference wird dieser Vektor mithilfe einfacher PyTorch tensor addition zu den versteckten Zuständen in bestimmten Schichten addiert oder von diesen subtrahiert. Durch die Skalierung der Stärke des Vektors können Anwender die Intensität des injizierten Verhaltens feinabstimmen.
Link to this sectionAbgrenzung von Steering Vectors zu verwandten Konzepten#
Um zu verstehen, wie Steering Vectors in das breitere machine learning-Umfeld passen, muss man sie von ähnlichen Methoden unterscheiden:
- Task Vectors: Während Task Vectors im Gewichtungsraum agieren, indem sie die tatsächlichen model weights nach dem Training modifizieren, um Fähigkeiten zu verschmelzen, agieren Steering Vectors strikt im Aktivierungsraum zur Laufzeit und lassen die ursprünglichen Gewichte vollkommen unberührt.
- Representation Engineering (RepE): RepE ist der übergreifende methodische Rahmen zum Lesen und Steuern interner kognitiver Zustände, der intensiv von Organisationen wie dem Center for AI Safety erforscht wird. Steering Vectors sind die spezifischen mathematischen Werkzeuge, die in der Steuerungsphase von RepE eingesetzt werden.
- Prompt Engineering: Prompting versucht, das Verhalten durch die Änderung des Eingabetextes oder Bildes des Benutzers zu steuern. Steering Vectors umgehen diesen Eingabe-Flaschenhals und manipulieren direkt die interne kognitive Verarbeitung des Modells.
- Fine-Tuning: Traditionelle Alignment-Methoden wie Reinforcement Learning from Human Feedback (RLHF) verändern das Modell dauerhaft durch Gradientenabstieg und erfordern hohen Rechenaufwand, der oft über Cloud-Tools wie die Ultralytics Platform verwaltet wird. Steering Vectors vermeiden diesen Rechenaufwand vollständig.
Link to this sectionAnwendungen in der Praxis bei KI#
Die Fähigkeit, Modelle dynamisch zu steuern, hat bedeutende Fortschritte in modernen artificial intelligence-Pipelines ermöglicht:
- Enhancing AI Safety: Durch die Isolierung des Steering Vectors, der mit „Verweigerung“ oder „Harmlosigkeit“ assoziiert ist, können Ingenieure Modelle dazu zwingen, bösartige Anweisungen abzulehnen. Unterstützt durch die Alignment-Forschung von OpenAI und die Interpretierbarkeitsstudien von Anthropic kann das Steuern spezifischer Merkmale die Konversationspersönlichkeit einer KI drastisch verändern und strikte Sicherheitsvorkehrungen gewährleisten.
- Controlling Reasoning Models: Jüngste Studien zu fortschrittlichen Denkarchitekturen zeigen, dass Steering Vectors interne logische Schlussfolgerungsketten modulieren können. Anwender können die Tendenz eines Modells erhöhen, bei komplexen Problemlösungen Unsicherheit auszudrücken oder Fehler zu korrigieren.
- Mitigating AI Bias: Durch die Extraktion des Vektors, der einen spezifischen gesellschaftlichen Bias repräsentiert, können Entwickler diese Richtung während der Generierung subtrahieren. Dies neutralisiert den Bias effektiv und verbessert die Fairness ohne Umschulung, während gleichzeitig die Wahrscheinlichkeit von hallucination in LLMs reduziert wird.
- Steering Computer Vision Systems: In Vision-Modellen können Steering Vectors auf Feature Maps angewendet werden, um die Sensitivität des Netzwerks gegenüber kritischen Zielen künstlich zu erhöhen. Zum Beispiel kann ein object detection-Modell so gesteuert werden, dass es das Auffinden von Fußgängern bei widrigen Wetterbedingungen priorisiert.
Link to this sectionAnwenden von Steering Vectors mit PyTorch#
Unten findest du ein ausführbares Beispiel für die Anwendung einer Aktivierungssteuerung bei einem Ultralytics YOLO26-Modell während eines Forward-Passes. Durch die Verwendung von PyTorch forward hooks kannst du benutzerdefinierte Vektoren direkt in die versteckten Schichten injizieren.
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()





