LLMの推論時に特定の方向ベクトル(ステアリングベクトル)を活性化に加算・減算することで、ファインチューニングなしにモデルの出力傾向を制御する手法。コントラストペア(対照的なプロンプト対)から抽出した方向で「正直さ」「創造性」「言語」などを調整できる。
Activation Steering(活性化ステアリング)は、LLMの推論プロセス中にステアリングベクトル(steering vector)と呼ばれる方向ベクトルを活性化に加算することで、追加学習なしにモデルの振る舞いを制御する技術である。自動車のハンドル操作に例えられ、モデルの「進行方向」を内部表現空間上で直接変更する。
最も一般的な手法は、対照的な振る舞いを示すプロンプト対を用意し、それぞれの活性化ベクトルの差分を計算する方法である。
例えば「正直に答えてください」と「嘘をついてください」という指示に対する活性化の差分ベクトルが「正直さ方向」となる。このベクトルを正方向に加算すれば正直さが増し、負方向に加算(減算)すれば正直さが減少する。
複数のコントラストペアから得られた差分ベクトル群に対してPCAを適用し、第一主成分を概念の主方向として採用する手法もある。単一ペアよりもロバストなステアリングベクトルが得られる。
| パラメータ | 説明 | 典型値 |
|---|---|---|
| 対象レイヤー | ベクトルを抽出・適用するトランスフォーマーレイヤー | 中間層(全体の40-60%の位置) |
| コントラストペア数 | 差分計算に使うプロンプト対の数 | 20-100ペア |
| 係数(α) | ステアリングベクトルの加算強度 | 1.0-5.0(概念による) |
| トークン位置 | 加算するトークン位置の範囲 | 全トークンまたは最終トークンのみ |
英語で質問しても日本語で回答させる「日本語方向ベクトル」を抽出・適用できる。多言語モデルにおいて、プロンプトの言語に依存しない出力言語制御が可能になる。
ポジティブ/ネガティブの感情方向ベクトルを使い、回答のトーンを連続的に調整できる。係数αを大きくするほど効果が強まるが、過大な値ではテキストの品質が劣化する。
有害コンテンツ生成を抑制する方向ベクトルを常時適用することで、RLHFに依存しない安全性制御が実現する。計算コストはベクトル加算のみで事実上ゼロである。
ステアリングの効果はレイヤー選択と係数に強く依存し、最適値はモデルアーキテクチャごとに異なる。また、複数の概念を同時にステアリングする場合、方向ベクトル間の干渉(interference)が生じることがある。概念の直交性が低い場合、意図しない副作用が発生するリスクがある。
A: 基本的にはできません。活性化空間の構造はモデルごとに異なるため、同じアーキテクチャファミリ内(例: Llama 2 → Llama 3)でも再抽出が推奨されます。ただし、概念の方向性が類似する場合もあり、研究が進行中です。
A: 経験則として、モデル全体の40-60%の位置にある中間レイヤーが最も効果的とされます。浅いレイヤーは低レベルの構文情報、深いレイヤーは出力分布に近い情報を扱うため、概念レベルの制御には中間層が適しています。
A: 小さい値(0.5-1.0)から開始し、出力品質を保ちながら効果が現れる最小値を選ぶのがベストプラクティスです。α=0で無効、α>10ではほとんどのモデルで出力が破綻します。