AI・機械学習
上級
Feature Steering(LLM特徴操作)(フィーチャーステアリング)
LLMの残差ストリームに特定の概念を表す方向ベクトル(特徴ベクトル)を加算/減算することで、モデルの出力を意図的に操作する手法。Anthropic SAE研究の実用応用。
0 回閲覧
0 いいね
2026/6/1 更新
関連タグ
mechanistic-interpretability
activation-steering
SAE
LLM制御
sparse-autoencoder
anthropic
Feature Steeringとは
LLMの推論中、残差ストリーム(Residual Stream)に特定の「方向ベクトル」を加算することで出力を操作する手法。ファインチューニングもプロンプト変更も不要で、モデルの内部表現に直接作用する。
基本原理
Transformerの各レイヤーは「残差ストリーム」と呼ばれる固定次元ベクトルを引き継ぐ。このストリームには様々な概念や感情・言語情報が線形に重ね合わせ(スーパーポジション)されて格納されている。
操作の手順:
- ターゲット概念の特徴ベクトルfを取得(SAEやCAA: Contrastive Activation Addition)
- フォワードパスの特定レイヤーで
h_t ← h_t + α * fを実行 - αを調整して注入強度を制御(過剰注入はモデル崩壊)
特徴ベクトルの取得方法
| 手法 | 概要 | 精度 |
|---|---|---|
| CAA(Contrastive Activation Addition) | ポジティブ/ネガティブ例の平均活性化差分 | 中程度 |
| SAE特徴 | Sparse Autoencoderで発見した解釈可能特徴 | 高い |
| Probing Classifier | 概念有無を予測する線形プローブの重みベクトル | 高い |
| PCA方向 | 多数の例からPCAで抽出した第1主成分 | 低〜中 |
著名な実験結果
Anthropic Claude Sonnet「バナナ」実験(2024):
- SAEで「バナナ」に対応する特徴(Feature #38610)を同定
- Claude Sonnetの中間層にこの特徴ベクトルを強度α=20で注入
- 結果: あらゆる質問への回答にバナナ関連語が混入
- 「バナナの恐怖を感じる」などの記述も生成(感情特徴との絡み)
Stanford: 感情操作実験(2023):
- 「悲しみ」特徴をα=15で注入するとLlama-2の感情的出力が58%増加
- 感情を注入しても事実の正確性は維持(概念の独立性)
Microsoft: 有害コンテンツ抑制(2024):
- 「有害コンテンツ生成」特徴を逆方向(α=-10)で注入
- ジェイルブレイク成功率が62%→11%に低下
- ファインチューニングより計算コスト99%削減
実装例(TransformerLens)
from transformer_lens import HookedTransformer
import torch
model = HookedTransformer.from_pretrained("gpt2")
# Feature vectorを取得(ここでは概念の例としてランダム)
# 実際はSAEやCAA等で取得したベクトルを使う
feature_vector = torch.randn(model.cfg.d_model) # d_model次元
feature_vector = feature_vector / feature_vector.norm() # 正規化
alpha = 10.0 # 注入強度
target_layer = 8 # 注入するレイヤー
def steering_hook(value, hook):
"""残差ストリームに特徴ベクトルを注入するフック"""
# value: [batch, seq_len, d_model]
value[:, :, :] += alpha * feature_vector.to(value.device)
return value
hook_name = f"blocks.{target_layer}.hook_resid_post"
with model.hooks(fwd_hooks=[(hook_name, steering_hook)]):
output = model.generate("東京の天気は", max_new_tokens=50)
print(model.to_string(output[0]))
注意点・限界
1. 注入強度の管理 αが大きすぎるとモデルが意味不明な出力やループに陥る。通常は5〜20の範囲でテスト。
2. レイヤー選択
- 浅いレイヤー(Layer 0-3): 構文・語彙レベルの影響
- 中間レイヤー(Layer 8-15): 意味・感情・概念レベルの影響
- 深いレイヤー(Layer 20+): トークン予測に直接影響
3. ポリセマンティシティ問題 SAE特徴でも完全に単一概念でないことが多く、意図しない副作用が生じうる。
実用応用(2025〜2026)
- Anthropic Workbench: Claude APIでSteering Vectorを適用する実験的エンドポイント
- steering-vectors PyPI: HuggingFaceモデル対応のSteering Vector操作ライブラリ
- Repeng(Vgel): LlamaファミリーのRepresentation Engineering実装
FAQ
Q: プロンプトエンジニアリングと何が違う? 内部表現に直接作用するため、プロンプトで誘導できない微細な振る舞い変更が可能。またシステムプロンプトを変えずに動作調整できる。
Q: 商用LLM(GPT-4等)で使える? APIアクセスのみのモデルには通常不可。モデルウェイトへのアクセスが必要。
Q: セーフティへの影響は? 悪意あるFeature SteeringでのAlignment破壊リスクが指摘されており、モデルウェイトの公開範囲の議論に影響している。