AI・機械学習
上級
Feature Steering(特徴ステアリング)(フィーチャーステアリング)
LLMの推論時に特定の特徴ベクトルを活性化ベクトルに加算・減算することでモデルの出力を制御する手法。Mechanistic Interpretabilityで同定した特徴を操作することで、ファインチューニングなしにモデルの行動を変更できる。
0 回閲覧
0 いいね
2026/6/7 更新
関連タグ
Feature Steering
Activation Steering
Mechanistic Interpretability
モデル制御
Anthropic
Feature Steering(特徴ステアリング)
Feature Steering(フィーチャーステアリング)、またはActivation Steering(アクティベーションステアリング)は、LLMの推論中に特定の特徴ベクトルを内部活性化に加算・減算することで、ファインチューニングや追加学習なしにモデルの出力・行動を制御する手法。
動作原理
通常の推論では input が各 Transformer 層を順に通過して出力となる。Feature Steering では特定の層の活性化 h_L に特徴ベクトル f を係数 α で加算する:
steered activation = h_L + α * f
αを大きくするほど特徴fの効果が強くなる(α < 0なら特徴を抑制)。
実装例(TransformerLens使用)
import transformer_lens
import torch
model = transformer_lens.HookedTransformer.from_pretrained("gpt2")
# ステアリングしたい特徴ベクトル(SAEで事前に同定)
french_feature = torch.tensor([...]) # 「フランス語」に対応する特徴方向ベクトル
alpha = 15.0 # ステアリング強度
def steering_hook(activations, hook):
return activations + alpha * french_feature.unsqueeze(0).unsqueeze(0)
with model.hooks(fwd_hooks=[('blocks.14.hook_resid_post', steering_hook)]):
output = model.generate("Hello, what did you eat for lunch?")
# → フランス語で応答する可能性が高くなる
「Golden Gate Claude」実験(Anthropic 2024)
Anthropicが行った著名な実験:Claude 3 SonnetのSAEで同定した「Golden Gate Bridge」特徴を大幅に増幅した結果:
- あらゆる話題をGolden Gate Bridgeに結びつけて語るようになった
- 「自分は何者か?」という質問に「私はGolden Gate Bridgeです」と答えるほど
- この実験はFeature Steeringが真に意味のある概念レベルでモデルを操作できることを示した
コントラスト法(SAE非使用)
SAEを使わず、対比する2つのプロンプトの活性化差分をステアリングベクトルとして使う手法も有効:
# コントラスト法(ActAdd / Algebraic Value Editing):
pos_activations = model.run_with_cache("I love being alive")[1]["blocks.10.hook_resid_post"]
neg_activations = model.run_with_cache("I hate being alive")[1]["blocks.10.hook_resid_post"]
steering_vector = (pos_activations - neg_activations).mean(dim=1) # 感情方向ベクトル
応用可能性と安全上の課題
ポジティブな応用:
- 研究目的でのモデル行動のデバッグ
- 特定の有害な特徴を抑制する安全フィルタ
- モデルの内部表現の可視化・教育的利用
安全上の懸念:
- 安全フィルタの回避に悪用される可能性
- 有害な特徴を意図的に増幅する攻撃
- モデル提供者の制御を迂回するリスク
Feature Steeringは、プロンプトエンジニアリングの「外側」(重みレベル)でモデルを操作できる点で、LLM制御研究の新しいパラダイムを示している。