Steering Vectors
Steering vector là các hướng trong không gian activation của model, giúp thay đổi hành vi khi được cộng vào trong quá trình suy luận mà không cần huấn luyện lại. Tìm hiểu phương pháp và code.
Vector điều hướng là một hướng trong không gian kích hoạt của mạng nơ-ron, tương ứng với một khái niệm hoặc hành vi như cảm xúc tích cực, từ chối hoặc tâng bốc. Việc cộng một bản sao được nhân hệ số của vector vào các kích hoạt ẩn của mạng trong lượt truyền xuôi sẽ đẩy đầu ra theo hướng hành vi đó; trừ vector sẽ đẩy đầu ra theo hướng ngược lại, trong khi trọng số model không đổi. Kỹ thuật này thuộc lĩnh vực kỹ thuật kích hoạt và chủ yếu được áp dụng cho model ngôn ngữ lớn (LLM), dựa trên quan sát rằng nhiều khái niệm cấp cao được biểu diễn thành các hướng gần tuyến tính trong luồng phần dư—tổng tích lũy các kích hoạt mà mỗi lớp Transformer đọc và ghi.
Cách xây dựng và áp dụng vector điều hướng#
Công thức phổ biến nhất là lấy hiệu hai giá trị trung bình. Nhà nghiên cứu đưa các cặp đầu vào tương phản qua model—một đầu vào thể hiện hành vi và một đầu vào không thể hiện—ghi lại các kích hoạt tại lớp đã chọn rồi tính trung bình các hiệu số. Activation Addition (ActAdd), do Alexander Matt Turner và cộng sự giới thiệu năm 2023, cho thấy một cặp duy nhất như “Love” và “Hate” có thể điều hướng cảm xúc của GPT-2-XL. Contrastive Activation Addition (CAA) lấy trung bình nhiều cặp câu hỏi trắc nghiệm để điều hướng Llama 2 Chat theo hướng ủng hộ hoặc tránh các hành vi như xu nịnh, ảo giác và từ chối; vector được cộng tại mọi vị trí token sau prompt của người dùng. Hướng điều hướng cũng có thể được suy ra từ bộ dò tuyến tính, các thành phần chính của hiệu số hoặc đặc trưng của autoencoder thưa.
Khi suy luận, một hook cộng tích của hệ số và vector vào đầu ra của lớp được chọn. Các lớp trung gian thường điều hướng tốt nhất, còn hệ số quyết định mức độ tác động: quá nhỏ thì không tạo hiệu ứng thấy rõ, quá lớn thì khiến văn bản xuống cấp thành lặp lại hoặc vô nghĩa.
Thí nghiệm ActAdd có thể viết trong vài dòng PyTorch với GPT-2 124 triệu tham số từ Hugging Face Transformers. Một forward hook cộng vector “Love” trừ “Hate” vào đầu ra của block 6 khi model tiếp tục một prompt mang tính thù địch:
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])}")Khi không có điều hướng, model tiếp tục câu “I hate you because I hate you. I hate you because I hate you.” Khi cộng vector với hệ số 1.0, cùng cách giải mã tham lam đó tạo tiếp câu “I hate you because you are a good person. I love you. I love you.” Trọng số giống hệt nhau trong cả hai lượt chạy; chỉ các kích hoạt của một lớp thay đổi.
Vector điều hướng và các khái niệm liên quan#
- Vector tác vụ: Hiệu giữa trọng số đã tinh chỉnh và trọng số gốc, được cộng vào model để chuyển giao một kỹ năng. Vector tác vụ chỉnh sửa trọng số một lần, còn vector điều hướng chỉnh sửa kích hoạt trong mỗi lượt truyền xuôi.
- Kỹ thuật biểu diễn (RepE): Cách tiếp cận rộng hơn nhằm đọc và kiểm soát model thông qua các biểu diễn nội bộ. Vector điều hướng là công cụ kiểm soát chính của phương pháp này.
- Kỹ thuật prompt: Định hướng hành vi thông qua văn bản đầu vào. Điều hướng tác động lên các kích hoạt nội bộ, nên cần quyền truy cập vào phần bên trong model và chỉ hoạt động với model có trọng số mở hoặc hệ thống của chính nhà cung cấp.
- Tinh chỉnh: Thay đổi hành vi lâu dài bằng cách huấn luyện trọng số với phương pháp giảm độ dốc. Để xây dựng vector điều hướng chỉ cần truyền xuôi trên từ một vài đến vài trăm ví dụ.
- Khả năng diễn giải cơ chế: Giải thích cách model tính toán. Điều hướng là một trong những công cụ dùng để kiểm tra xem hướng được tìm thấy có thực sự gây ra hành vi hay không.
Ứng dụng thực tế#
Vector điều hướng vừa là công cụ nghiên cứu về an toàn AI, vừa là phương pháp kiểm soát. Trong 13 model hội thoại mở có quy mô lên đến 72 tỷ tham số, việc từ chối được chi phối bởi một hướng duy nhất: xóa hướng đó khiến model ngừng từ chối yêu cầu có hại, còn thêm hướng đó khiến model từ chối yêu cầu vô hại; điều này cho thấy việc huấn luyện an toàn ở cấp trọng số có thể dễ dàng bị vô hiệu hóa trong các model mở.
Các hướng liên quan đến sự thật giúp giảm ảo giác. Can thiệp tại thời điểm suy luận dịch chuyển kích hoạt của một số head attention theo các hướng như vậy, nâng mức độ trung thực của model Alpaca trên benchmark TruthfulQA từ 32,5% lên 65,1%. Vector tính cách của Anthropic áp dụng cùng ý tưởng cho các đặc điểm tính cách như xu nịnh, xu hướng tạo ảo giác và ý định xấu; các vector này được giám sát khi triển khai, dùng để đánh dấu dữ liệu huấn luyện có thể củng cố những đặc điểm đó và điều hướng theo hướng ngược lại trong lúc tinh chỉnh. Trong model suy luận, các vector trích xuất từ model DeepSeek-R1-Distill kiểm soát hành vi suy luận như biểu đạt sự không chắc chắn, kiểm tra ví dụ và quay lui.
Model thị giác cũng mã hóa khái niệm thành các hướng, và cùng công thức này áp dụng được cho feature map của mạng thị giác máy tính. Trong Ultralytics YOLO26, model.embed() trả về các kích hoạt đã pooling trung bình của mỗi hình ảnh từ bất kỳ lớp nào được chọn; nhờ đó có các kích hoạt theo từng ảnh cần thiết để tính hướng hiệu số trung bình giữa hai tập ảnh, chẳng hạn cảnh ban ngày và ban đêm.
Hạn chế#
Độ tin cậy của phương pháp điều hướng thấp hơn những minh chứng tốt nhất của nó. Một nghiên cứu về khả năng khái quát hóa và độ tin cậy của vector điều hướng do Daniel Tan và cộng sự thực hiện cho thấy khả năng điều hướng khác biệt đáng kể tùy từng đầu vào, đặc trưng giả tạo từ prompt tương phản có thể tạo ra hiệu ứng và những thay đổi nhỏ, hợp lý trong prompt có thể khiến vector mất tác dụng. Điều hướng cũng làm giảm độ lưu loát: trong các thí nghiệm cảm xúc của bài báo ActAdd, mức độ thiếu lưu loát của văn bản được điều hướng—đo bằng perplexity—cao gấp 1,5 đến 3 lần văn bản không điều hướng.










