Activation Steering
Jak działa
1) Wybór cechy lub zachowania do sterowania (np. sentyment, prawdomówność, odmowa). 2) Wyznaczenie wektora kierującego: zbiera się aktywacje modelu (zwykle w strumieniu rezydualnym danej warstwy) dla kontrastujących par przykładów — pozytywnych i negatywnych — i oblicza różnicę (w CAA uśrednioną po wielu parach). 3) Wybór miejsca iniekcji: jednej lub kilku warstw oraz pozycji tokenów. 4) W czasie inferencji do aktywacji dodaje się wektor kierujący przemnożony przez współczynnik sterowania; dodatni współczynnik wzmacnia cechę, ujemny ją tłumi. 5) Dalsze przejście w przód przebiega normalnie, więc efekt jest natychmiastowy, odwracalny i stopniowalny wielkością współczynnika. W wariancie opartym na rzadkich autoenkoderach wektory odpowiadają zinterpretowanym, monosemantycznym cechom.
Rozwiązany problem
Dotrenowywanie (fine-tuning) i inżynieria promptu nie zawsze w pełni wydobywają lub kontrolują zachowanie modelu, są kosztowne, trwałe i trudne do precyzyjnego dawkowania. Activation steering daje tani, odwracalny i stopniowalny sposób kontroli wysokopoziomowych właściwości wyjścia w czasie inferencji, bez modyfikacji wag i bez ponownego treningu.
Komponenty
Kierunek w przestrzeni aktywacji (zwykle w strumieniu rezydualnym) reprezentujący sterowaną cechę; dodawany do aktywacji w czasie inferencji.
Oficjalna
Pozytywne i negatywne przykłady danego zachowania; z różnicy ich aktywacji wyznacza się wektor kierujący (w CAA uśrednionej po wielu parach).
Oficjalna
Warstwa lub warstwy i pozycje tokenów, w których wektor kierujący jest dodawany do aktywacji.
Oficjalna
Skalar mnożący wektor kierujący; znak decyduje o wzmocnieniu lub tłumieniu cechy, a wartość o sile sterowania.
Implementacja
Za duży współczynnik degraduje spójność i płynność tekstu, prowadząc do powtórzeń lub bełkotu.
Sterowanie w nieodpowiedniej warstwie bywa nieskuteczne lub psuje generację; skuteczność zależy od warstwy.
Wektor wyznaczony z prostych par kontrastowych może kodować wiele pojęć naraz, powodując niezamierzone efekty uboczne.
Wektor z wąskiego zbioru kontrastów może nie generalizować na nowe konteksty i prompty.
Ewolucja
Subramani, Suresh i Peters pokazują, że z wstępnie wytrenowanych modeli językowych można wyodrębnić wektory sterujące generacją (ACL Findings 2022).
Li i in. sterują aktywacjami głowic uwagi, by wydobyć prawdomówne odpowiedzi.
Turner i in. wprowadzają optymalizacyjnie-wolne dodawanie aktywacji z pojedynczej pary kontrastowej, definiując activation engineering.
Zou i in. formułują odgórne podejście do odczytu i kontroli reprezentacji wysokopoziomowych pojęć.
Panickssery (Rimsky) i in. wyznaczają wektory sterujące z uśrednionych różnic par kontrastowych i sterują modelem Llama 2 Chat.
Anthropic skaluje rozkład monosemantyczny na Claude 3 Sonnet i demonstruje sterowanie zinterpretowanymi cechami (Golden Gate Claude).
Hiperparametry (konfigurowalne osie)
Skala i znak dodawanego wektora; kluczowy dla balansu między skutecznością sterowania a zachowaniem spójności.
Która warstwa (lub warstwy) otrzymuje wektor kierujący; warstwy środkowe bywają najskuteczniejsze.
Dobór i liczba par pozytyw/negatyw użytych do wyznaczenia wektora.
Które pozycje tokenów otrzymują wektor (np. wszystkie po prompcie użytkownika).
Złożoność obliczeniowa
Złożoność czasowa: O(n · d). Złożoność przestrzenna: O(L · d).
Wąskie gardło obliczeniowe
Sama iniekcja wektora nie wprowadza istotnego wąskiego gardła; dominuje standardowy koszt inferencji modelu.
Równoległość
Dodanie wektora kierującego jest operacją elementwise stosowaną niezależnie do wszystkich objętych pozycji tokenów podczas inferencji.
Wymagania sprzętowe
Metoda to proste dodanie wektora do aktywacji — nie wymaga specjalnego sprzętu i działa wszędzie tam, gdzie działa bazowy model.