Induction Heads(帰納的注意機構)(インダクションヘッズ)
Transformerの2層以上のモデルで自発的に出現する回路。[A][B]→[A]のパターンを学習し、文脈内学習(in-context learning)の基盤となる注意ヘッドのペア。Anthropic 2022年の発見。
Induction Headsとは
Anthropicが2022年に発表した論文「In-context Learning and Induction Heads」で提唱された概念。Transformerモデルが**文脈内学習(ICL: In-Context Learning)**を実現する仕組みを回路レベルで説明する。
ICLとの関係
ICLとは「プロンプト例を見せるだけでタスクを学習する」現象。なぜファインチューニングなしに例から学べるのか?答えがInduction Headsにある。
仕組みの骨格:
- 入力に
...フランス語: 「こんにちは」→ 英語: Hello / フランス語: 「ありがとう」→ 英語:が現れる Previous Token Head(Layer 0)が「各トークンの直前」情報を記録Induction Head(Layer 1+)が過去に同パターンを探し「Hello」「ありがとう」→「Thank you」を予測
回路構造の詳細
| ヘッド種 | レイヤー位置 | 機能 |
|---|---|---|
| Previous Token Head | 浅い層(Layer 0-1) | トークンBの直前にAがある情報を生成 |
| Induction Head本体 | やや深い層(Layer 1-3) | 過去の[A][B]パターンを参照し次のBを予測 |
| Anti-Induction Head | 中間層 | パターン過学習を防ぐ抑制ヘッド(一部モデルで発見) |
実験で確認された特性
Phase Change現象: Transformerの学習中、突然の性能ジャンプ(loss spikes)の直後にInduction Headsが出現する。学習ステップ数が2B→4Bトークン付近でGPT-2のlossが急激に改善するのはInduction Heads形成と一致。
サイズへの堅牢性:
- GPT-2 Small (117M): Layer 1-Head5
- GPT-2 Medium (345M): Layer 2-Head7
- GPT-Neo 1.3B: Layer 3-Head12
2層以上のどんなTransformerでも出現する普遍的な回路。
検出コード(TransformerLens)
from transformer_lens import HookedTransformer
import torch
model = HookedTransformer.from_pretrained("gpt2")
def detect_induction_heads(model, seq_len=50):
"""Induction Headを反復トークンシーケンスで検出"""
# [A B C ... A B C] のような繰り返しシーケンスを作成
rand_tokens = torch.randint(1000, 10000, (1, seq_len))
repeated = torch.cat([rand_tokens, rand_tokens], dim=1) # 長さ100
_, cache = model.run_with_cache(repeated)
# 後半シーケンスで前半と同じ位置への注意が高いヘッドを探す
results = []
for layer in range(model.cfg.n_layers):
pattern = cache["pattern", layer][0] # [heads, seq, seq]
# 後半(50-100)から前半(0-50)への注意スコア
for head in range(model.cfg.n_heads):
induction_score = pattern[head, seq_len:, :seq_len].diagonal(-1).mean()
if induction_score > 0.5:
results.append((layer, head, induction_score.item()))
return results
results = detect_induction_heads(model)
print(f"検出されたInduction Heads: {results}")
# 出力例: [(4, 4, 0.73), (5, 1, 0.81), (5, 5, 0.89)]
応用研究
インダクション回路のアブレーション(切除)実験: Induction Headsをゼロアウトすると...
- ICLの性能が40-60%低下(モデルサイズによる)
- 長文脈タスクで特に顕著
- few-shot promptingの効果が消失に近い
Llama系モデルへの拡張: 2023-2024年の研究でLlama-2/Mistralでも同様の回路が確認。しかし複数のInduction Headが並列動作する「ヘッドアンサンブル」構造が追加で見つかった。
関連する回路群
- Bigram/Trigram Head: 頻出N-gramパターンを記憶する補助ヘッド
- Successor Head: 数列やアルファベットの「次の要素」を予測するヘッド
- Copy-Suppression Head: コピーしすぎを防ぐ抑制ヘッド
FAQ
Q: Induction Headsさえあればモデルは全て学習できる? ICLの多くはInduction Headsで説明できるが、複雑な推論タスクは別の回路(算術回路、知識格納ニューロンなど)も必要。
Q: 削除すると何が壊れる? few-shot学習、文書の要約、コードの補完(特に繰り返しパターン)が著しく劣化する実験結果がある。
Q: RAGとの関係は? RAGで取得した文書をプロンプトに含めると効果的なのは、Induction Headsが文書内の[question][answer]パターンを活用するためと解釈される。