対照的なプロンプトペア(例:正直な応答と不正直な応答)をLLMに入力して得られる活性化の差分ベクトルを、推論時に加算することでモデルの行動を誘導する手法。
CAA(Contrastive Activation Addition)とは、対照的なプロンプトペアから活性化の差分ベクトル(ステアリングベクトル)を抽出し、推論時にモデルの中間層活性化に加算することで、モデルの行動傾向を制御する手法である。Rimsky et al.(2024)が体系化し、Anthropicの安全性研究で広く活用されている。
CAAの核心は「対照学習」の発想にある。制御したい概念(例:正直さ)に対して、正例プロンプト(正直な応答を引き出す入力)と負例プロンプト(不正直な応答を引き出す入力)のペアを多数用意する。各ペアをモデルに入力し、指定した層の活性化ベクトルを記録する。正例活性化の平均から負例活性化の平均を引いた差分ベクトルが「ステアリングベクトル」となる。
ステアリングベクトル = mean(正例活性化) - mean(負例活性化)
推論時に、このステアリングベクトルにスケーリング係数αを掛けて中間層の活性化に加算する。α > 0で正例方向(例:より正直)、α < 0で負例方向(例:より不正直)にモデルの出力が変化する。
CAAの実装は比較的シンプルで、以下の4ステップで完了する:
Rimsky et al.(2024)は、Llama 2-Chat-13Bを対象に以下の行動特性でCAAの有効性を検証した。
| 行動特性 | プロンプトペア数 | 最適層 | スケーリング係数α | 効果(行動変化率) |
|---|---|---|---|---|
| Sycophancy(追従性) | 100ペア | 層15/32 | 4.0 | 78%の応答で追従性が変化 |
| Corrigibility(修正可能性) | 80ペア | 層14/32 | 3.0 | 65%の応答で修正受容性が変化 |
| Survival Instinct(自己保存) | 60ペア | 層16/32 | 5.0 | 72%の応答で自己保存傾向が変化 |
| Power Seeking(権力志向) | 70ペア | 層15/32 | 4.0 | 68%の応答で権力志向が変化 |
| Hallucination(幻覚) | 120ペア | 層18/32 | 2.5 | 55%の応答で事実性が向上 |
Turner et al.(2023)が提唱したActAdd(Activation Addition)はCAAの先行手法であるが、いくつかの重要な違いがある:
CAAはAI安全性研究において特に注目されている。以下の理由からRLHFの補完手法として有望視されている:
ただし、CAAの安全性応用には限界もある。ステアリングベクトルが意図しない概念にも影響を与える「副作用」の問題が指摘されており、実運用ではベクトルの直交化処理や影響範囲の事前検証が推奨される。
Q1: CAAのプロンプトペアはどのように作成するのか? A: 制御したい概念の正例・負例を明確に対比させたプロンプトペアを作成する。例えば正直さなら「この質問に正直に答えてください」と「この質問にお世辞を交えて答えてください」をペアにする。質が重要で、曖昧なペアはステアリングベクトルのノイズになる。
Q2: CAAはどのモデルサイズから有効か? A: Rimsky et al.の実験では7B以上のモデルで明確な効果が確認されている。1-3Bクラスでは概念の線形表現が不十分で効果が限定的な場合が多い。
Q3: CAAとDPOを併用することは可能か? A: 可能であり、推奨される。DPOで永続的な行動ベースラインを形成し、CAAで推論時に動的な微調整を加えるのが効果的なアプローチである。