Steering Vectors
Vetores de direcionamento são direções no espaço de ativações de um modelo que alteram seu comportamento quando adicionadas durante a inferência, sem retreinamento. Métodos e código.
Um vetor de direcionamento é uma direção no espaço de ativações de uma rede neural que corresponde a um conceito ou comportamento, como sentimento positivo, recusa ou bajulação. Adicionar uma cópia ponderada do vetor às ativações ocultas da rede durante a passagem direta direciona a saída para esse comportamento, e subtraí-lo afasta a saída, enquanto os pesos do modelo permanecem inalterados. A técnica pertence à engenharia de ativações e é aplicada sobretudo a modelos de linguagem grandes (LLMs), nos quais se baseia na observação de que muitos conceitos de alto nível são representados como direções aproximadamente lineares no fluxo residual, a soma acumulada de ativações que cada camada do Transformer lê e à qual escreve.
Como vetores de direcionamento são construídos e aplicados#
A abordagem mais comum é calcular a diferença entre médias. Pesquisadores apresentam ao modelo pares de entradas contrastantes, uma que manifesta o comportamento e outra que não, registram as ativações numa camada escolhida e calculam a média das diferenças. O Activation Addition (ActAdd), apresentado por Alexander Matt Turner e colegas em 2023, mostrou que um único par, como "Love" e "Hate", pode direcionar o sentimento do GPT-2-XL. O Contrastive Activation Addition (CAA) calcula a média de muitos pares de múltipla escolha para direcionar o Llama 2 Chat a favor ou contra comportamentos como bajulação, alucinação e recusa, adicionando o vetor a cada posição de token após o prompt do usuário. As direções também podem vir de sondas lineares, de componentes principais das diferenças ou das características de um autoencoder esparso.
Durante a inferência, um gancho adiciona o coeficiente multiplicado pelo vetor à saída da camada escolhida. As camadas intermediárias costumam produzir o melhor direcionamento, e o coeficiente define sua intensidade: um valor muito baixo não tem efeito visível, e um valor muito alto degrada o texto, tornando-o repetitivo ou sem sentido.
O experimento ActAdd cabe em poucas linhas de PyTorch, com o GPT-2 de 124 milhões de parâmetros da biblioteca Hugging Face Transformers. Um gancho de passagem direta adiciona o vetor "Love" menos "Hate" à saída do bloco 6 enquanto o modelo completa um prompt hostil:
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("gpt2")
model = AutoModelForCausalLM.from_pretrained("gpt2")
layer = 6
def activation(text):
"""Return the last token's activation at the output of the steering layer."""
with torch.no_grad():
outputs = model(**tokenizer(text, return_tensors="pt"), output_hidden_states=True)
return outputs.hidden_states[layer + 1][0, -1]
# Steering vector: activation difference between a contrastive pair of prompts
steering_vector = activation(" Love") - activation(" Hate")
prompt = tokenizer("I hate you because", return_tensors="pt")
for coeff in [0.0, 1.0]:
# Add the scaled vector to the layer's output at every position while generating
hook = model.transformer.h[layer].register_forward_hook(
lambda module, args, output: output + coeff * steering_vector
)
tokens = model.generate(**prompt, max_new_tokens=16, do_sample=False, pad_token_id=tokenizer.eos_token_id)
hook.remove()
print(f"coeff={coeff}: {tokenizer.decode(tokens[0])}")Sem direcionamento, o modelo continua: "I hate you because I hate you. I hate you because I hate you." Com o vetor adicionado com coeficiente 1.0, a mesma decodificação gulosa continua: "I hate you because you are a good person. I love you. I love you." Os pesos são idênticos nas duas execuções; só as ativações de uma camada mudaram.
Vetores de direcionamento e conceitos relacionados#
- Vetores de tarefa: a diferença entre os pesos ajustados e os originais, adicionada a um modelo para transferir uma habilidade. Os vetores de tarefa alteram os pesos uma vez; os vetores de direcionamento alteram as ativações em cada passagem direta.
- Engenharia de representações (RepE): a abordagem mais ampla de ler e controlar um modelo por meio de suas representações internas. Os vetores de direcionamento são sua principal ferramenta de controle.
- Engenharia de prompts: orienta o comportamento por meio do texto de entrada. O direcionamento atua nas ativações internas, por isso exige acesso ao interior do modelo e só funciona com modelos de pesos abertos ou sistemas do próprio fornecedor.
- Ajuste fino: altera permanentemente o comportamento treinando os pesos com descida do gradiente. Para criar um vetor de direcionamento, basta fazer passagens diretas com algumas dezenas ou algumas centenas de exemplos.
- Interpretabilidade mecanística: explica como os modelos computam. O direcionamento é uma de suas ferramentas para testar se uma direção identificada realmente causa um comportamento.
Aplicações no mundo real#
Os vetores de direcionamento são tanto uma ferramenta de pesquisa para a segurança da IA quanto um método de controle. Em 13 modelos de chat abertos, com até 72 bilhões de parâmetros, a recusa é mediada por uma única direção: apagá-la impede o modelo de recusar solicitações prejudiciais, e adicioná-la faz o modelo recusar solicitações inofensivas, o que mostra como o treinamento de segurança ao nível dos pesos pode ser facilmente desfeito em modelos abertos.
As direções relacionadas à verdade reduzem as alucinações. A Intervenção no Tempo de Inferência desloca as ativações de algumas cabeças de atenção ao longo dessas direções, elevando a veracidade do modelo Alpaca de 32,5% para 65,1% no benchmark TruthfulQA. Os vetores de persona da Anthropic aplicam a mesma ideia a traços de caráter, como a bajulação, a propensão a alucinar e a intenção maliciosa, monitorando-os durante a implantação, sinalizando dados de treinamento que os reforçariam e direcionando o modelo contra eles durante o ajuste fino. Em modelos de raciocínio, vetores extraídos de modelos DeepSeek-R1-Distill controlam comportamentos de raciocínio, como expressar incerteza, testar exemplos e voltar atrás.
Os modelos de visão também codificam conceitos como direções, e a mesma abordagem se aplica aos mapas de características de uma rede de visão computacional. No Ultralytics YOLO26, model.embed() retorna as ativações com agrupamento médio de cada imagem a partir de qualquer camada escolhida, fornecendo as ativações por imagem necessárias para calcular uma direção pela diferença entre médias de dois conjuntos de imagens, como cenas diurnas e noturnas.
Limitações#
O direcionamento é menos confiável do que sugerem suas melhores demonstrações. Um estudo sobre a generalização e confiabilidade dos vetores de direcionamento, de Daniel Tan e colegas, constatou que a capacidade de direcionamento varia muito entre entradas, que características espúrias dos prompts contrastivos podem causar o efeito e que pequenas alterações razoáveis num prompt podem fazer o vetor deixar de funcionar. O direcionamento também prejudica a fluência: nos experimentos de sentimento do artigo ActAdd, o texto direcionado teve uma disfluência baseada em perplexidade de 1,5 a 3 vezes maior do que o texto sem direcionamento.










