AI・機械学習
上級

Causal Tracing(因果追跡)(コーザルトレーシング)

LLMが特定の事実(「エッフェル塔はパリにある」等)をどの層・どのトークン位置に格納しているかを因果介入実験で特定する手法。ROMEモデル編集の基盤技術。ROME論文(2022)で提唱。

0 回閲覧
0 いいね
2026/6/1 更新
関連タグ
mechanistic-interpretability
model-editing
knowledge-localization
ROME
LLM解析
transformer

Causal Tracingとは

「LLMが知識をどこに保存しているか」を実験的に突き止める手法。ファクト(例:「エッフェル塔の所在地 = パリ」)の表現が特定のニューロン群に局在しているかどうかを確認できる。

基本手順

3ステップの実験:

  1. クリーンラン: 通常の入力 s = "エッフェル塔はどこにありますか?" でフォワードパスを実行し全活性化を保存
  2. 破損ラン: 主体(subject)トークンをランダムノイズで置換した s_corrupt = "[NOISE]はどこにありますか?" でラン(モデルは正解を出せない)
  3. パッチラン: 破損ランを実行しながら、特定の(Layer l, Token t, Component c)のみクリーンランの活性化に置換。出力の回復度合いを測定
回復度(AIE: Average Indirect Effect) = P(正解 | patch) - P(正解 | corrupt)

AIEが高い (Layer, Token, Component) が「その事実を格納している場所」を示す。

ROME論文の主要発見(GPT-J-6B, 2022)

所在ComponentLayer範囲AIEピーク
事実の主体トークンMLP (中間層)Layer 3-80.42
最終トークンAttention (深い層)Layer 14-200.31
主体最終文字MLP (浅い層)Layer 0-20.12

解釈: MLPは「辞書的知識」、Attentionは「文脈の統合」を担う傾向がある。

各アーキテクチャでの比較(2022〜2024研究)

モデル事実格納の主な場所特徴
GPT-2 (124M)MLP Layer 2-5非常に浅い層に集中
GPT-J (6B)MLP Layer 3-8中間MLPが主体
Llama-2 (7B)MLP Layer 5-12GPT-Jより深い
Llama-3 (8B)Attention + MLP Layer 8-16よりAttention依存
Mistral (7B)MLP Layer 6-14Llama類似

実装例(ROME公式コード)

# ROMEリポジトリ: github.com/kmeng01/rome
from experiments.causal_trace import (
    ModelAndTokenizer, predict_token, trace_with_patch
)

mt = ModelAndTokenizer("EleutherAI/gpt-j-6B", low_cpu_mem_usage=True)

know = dict(
    prompt="{}はどの国に位置していますか",
    subject="エッフェル塔",
    attribute="フランス"
)

# 因果追跡の実行
result = trace_with_patch(
    mt, 
    prompt=know["prompt"].format(know["subject"]),
    noise_level=0.1,       # ノイズ強度
    trace_layers=range(28) # 全レイヤーをスキャン
)

print(f"最大AIEレイヤー: {result.argmax()}")  # 例: Layer 5
print(f"最大AIEコンポーネント: mlp") 
# 可視化(ヒートマップ)
result.plot_heatmap()

Causal Tracingの限界

1. 分散格納問題 実際の知識は単一レイヤーでなく複数レイヤーに分散していることが多い。特定の事実はLayer 5に80%、Layer 10に20%という形で格納される。

2. 知識の種類依存

  • 固有名詞の所在: MLPが主(ROME型)
  • 数値的関係(「3 × 4 = 12」): 計算に特化したニューロン群が関与
  • 手続き的知識(コード作成方法): 分散的、特定化困難

3. モデル改良で局在が変化 Llama-3 vs Llama-2で同じ事実でも格納場所が大幅に変化。RoPEやGrouped-Query Attentionの違いが影響。

モデル編集との接続

Causal Tracingで特定された「事実格納MLPニューロン」を直接書き換えるのがモデル編集(Model Editing)。

  • ROME(Rank-One Model Editing): 1件の事実をMLP行列への低ランク更新で書き換え。計算コスト: ~0.5秒/1件
  • MEMIT(Mass-Model Editing in the Tens of Thousands): 数千件を同時更新。
  • AlphaEdit: ROME/MEMITの制約最適化改良版(副作用20%低減)

FAQ

Q: Causal TracingでモデルのバグをデバッグできるQ&A? 可能。特定の誤回答がどのレイヤーから生じているかを追跡し、ターゲットを絞ったファインチューニングや編集で修正できる。

Q: GPT-4などクローズドモデルに使える? フォワードパス中の活性化へのアクセスが必要なため、APIのみのモデルには適用不可。ロジット出力のみを使う「ブラックボックス」版の研究も進行中(2025)。

Q: Causal TracingとXAI(説明可能AI)の違い? XAIは主にモデルの入出力関係の説明に注力するが、Causal TracingはモデルのIN内部の「因果的」メカニズムを特定する点でより根本的なアプローチ。

この記事について
カテゴリーAI・機械学習
難易度上級
作成日2026/6/1