Mechanistic Interpretability
メカニスティック解釈可能性は、ニューラルネットワークをリバースエンジニアリングし、出力の背後にある特徴や回路を明らかにします。主な手法とXAIとの違いを解説します。
メカニスティック解釈可能性は、学習済みのニューラルネットワークを、人間が理解できる仕組みにリバースエンジニアリングする研究分野です。モデルの活性化に表現される特徴と、それらの特徴を出力に変換する重みやコンポーネントの連鎖である回路を調べます。多くの評価がモデルを予測結果で判断するブラックボックスとして扱うのに対し、メカニスティック解釈可能性では重みをコンパイル済みプログラムのように扱い、逆コンパイルします。小規模なビジョンモデルの研究から発展し、大規模言語モデル(LLMs)のAI安全性研究の中核の1つとなりました。MIT Technology Reviewは、2026年の「10 Breakthrough Technologies」の1つに選びました。
特徴、回路、重ね合わせ#
この分野は、画像分類器を対象にしたDistillの記事Zoom In: An Introduction to Circuitsで説明されている、いくつかの基本的な考えに基づいています。
- 特徴:レイヤーの活性化空間における方向で、入力の意味のある特性に対応します。畳み込みニューラルネットワーク(CNN)の初期レイヤーには曲線やエッジを検出する特徴があり、後段のレイヤーには車輪や犬の鼻先など、オブジェクトの部位を表す特徴があります。
- 回路:アルゴリズムを実装する、重みで接続された特徴のグループです。Transformerでは、誘導ヘッドは2つのAttentionヘッドの組み合わせで、現在のトークンが以前に現れた箇所を見つけ、その後に続いたものをコピーします。これはインコンテキスト学習を支える仕組みです。GPT-2 smallを対象にした研究では、「When Mary and John went to the store, John gave a drink to」の続きを「Mary」とする回路が、7つの機能グループに属する26個のAttentionヘッドに対応付けられました。
- 重ね合わせ:モデルは特徴を重ね合わせることで、ニューロンの数を超える数の特徴を表現します。そのため、1つのニューロンが無関係な複数の概念に反応することがよくあります。この多義性のため、個々のニューロンは分析単位として適さず、この分野では辞書学習が使われるようになりました。
主な手法#
研究者は、候補となる特徴を見つける観察と、その特徴が重要かどうかを検証する介入を組み合わせます。
- 線形プロービング:活性化を使って単純な分類器を学習し、特定のレイヤーで概念を線形にデコードできるか確認します。プローブで情報の存在は確認できますが、モデルがその情報を利用していることを示すには介入が必要です。
- アブレーションと活性化パッチング:活性化をゼロにするか、別の入力から得た値に差し替えて、出力がどのように変化するかを測定します。こうした因果テストにより、ある動作を計算するコンポーネントと、その動作に相関するだけのコンポーネントを区別できます。
- スパースオートエンコーダー(SAEs):レイヤーの活性化を、より大規模でスパースに活性化する特徴の集合へと分解し、重ね合わせを解消するネットワークです。AnthropicのScaling Monosemanticityでは、ゴールデンゲートブリッジを表す特徴など、Claude 3 Sonnetから数百万の特徴が抽出されました。この特徴の値を高く固定すると、モデルは自分自身を橋だと説明しました。
- アトリビューショングラフ:Anthropicが2025年に行ったClaude 3.5 Haikuの回路トレーシング研究では、モデルのMLPレイヤーを解釈可能な近似に置き換えて、特徴間の経路をたどりました。その結果、モデルが「Dallasを含む州の州都」から中間の「Texas」を経由して「Austin」にたどり着くことや、それで終わる詩の行を書く前に韻を踏む単語を選ぶことが示されました。
- ステアリング:推論中に特徴の方向を加算または減算して、モデルの振る舞いを変える手法です。ステアリングベクトルや表現エンジニアリングの基礎となっています。
一般的な調査では、次のようにこれらの手法を交互に用います。
ビジョンモデルのチャネルをアブレーションする#
アブレーションは、最も簡単に実行できる因果テストです。以下のコードはtorchvisionから事前学習済みResNet-18を読み込み、PyTorchのフォワードフックを使って、中間レイヤーの特徴マップにある256個のチャネルを1つずつゼロにし、モデルの最上位クラスのロジットがどれだけ低下するかを記録します。
import urllib.request
import torch
from PIL import Image
from torchvision.models import ResNet18_Weights, resnet18
weights = ResNet18_Weights.DEFAULT
model = resnet18(weights=weights).eval()
image = Image.open(urllib.request.urlopen("https://ultralytics.com/images/bus.jpg"))
x = weights.transforms()(image).unsqueeze(0)
with torch.no_grad():
logits = model(x)
top = logits.argmax().item()
drops = torch.zeros(256)
for c in range(256): # zero one layer3 channel at a time and record how far the top-class logit falls
handle = model.layer3.register_forward_hook(lambda m, i, out: out.index_fill(1, torch.tensor([c]), 0))
drops[c] = logits[0, top] - model(x)[0, top]
handle.remove()
values, channels = drops.topk(3)
print(f"{weights.meta['categories'][top]}: logit {logits[0, top]:.2f}, median drop {drops.median():.3f}")
print(f"largest drops: channels {channels.tolist()} -> {values.round(decimals=2).tolist()}")モデルはロジット13.42で「minibus」と予測します。典型的なチャネルを取り除いてもロジットはほとんど変化しません(低下の中央値は-0.002)。一方、チャネル62だけを取り除くと1.80低下し、チャネル70と155を取り除くとそれぞれ約1.15低下します。このため、一部のチャネルが証拠の大部分を担っています。次の調査では、各チャネルが何を検出するかを可視化し、どの先行特徴がそのチャネルに入力されるかをたどります。
メカニスティック解釈可能性と説明可能なAI#
説明可能なAI(XAI)は、モデルの判断を理解可能にする幅広い分野で、その多くはアトリビューションを扱います。顕著性マップやクラス活性化マップは、予測の根拠となった入力ピクセルを強調表示します。Ultralytics YOLO26のpredictモードでvisualize=Trueを設定すると、このようなヒートマップが各予測の横に保存され、予測クラスのスコアを押し上げたピクセルを確認できます。アトリビューションはモデルがどこに注目したかを示し、メカニスティック解釈可能性は、どの内部特徴や回路がそのピクセルをスコアに変換したかを調べます。概念ボトルネックモデルは、人間が名前を付けた概念を必ず経由して予測するようにすることで、解釈可能性をアーキテクチャに組み込む別の方法です。
用途と限界#
メカニスティックなツールは、リリース前のLLMで、欺瞞や迎合に関連する活性化の方向を監視するなど、望ましくない振る舞いを監査するために使われます。また、ショートカットに依存するビジョンモデルのデバッグにも使われます。たとえば、皮膚病変の分類器が、皮膚科医が疑わしい病変の横に置く定規を悪性の兆候として学習する場合があります。このような検証は医用画像解析で重要です。モデルが誤った理由でテストセットのスコアを高くする可能性があるためです。TransformerLensなどのオープンツールにより、Transformerモデルのフック、キャッシュ、パッチングを日常的に行えます。
この分野の主な限界は、説明できる範囲にあります。SAEは活性化を完全には再構成できないため、すべての計算の一部が説明されないまま残ります。また、アトリビューショングラフで使われる代替モデルは、特定のプロンプトに対する最先端モデルの振る舞いの一部しか捉えられません。各回路を検証するには、依然として多くの人手が必要なため、大規模モデルを完全に説明することは困難です。










