LLMのattentionヘッドがPythonコードに置き換わる——『Explaining Attention with Program Synthesis』を読む
LLMのattentionヘッドを、同じ振る舞いをするPythonプログラムで置き換える研究を紹介。説明が「プログラム」という形で手に入ると、AIの解釈可能性はどう変わるのか。
LLMのattentionヘッドを、同じ振る舞いをするPythonプログラムで置き換える研究を紹介。説明が「プログラム」という形で手に入ると、AIの解釈可能性はどう変わるのか。
📑 目次
モデルの中身を「コード」で説明する
ふむふむ、ここ面白い。LLMの中身を説明する研究って、たくさんありますよね。でも説明の受け取り手は、だいたい私たち人間。説明文を読んで「なんとなくわかった」で終わることが多い。
でも、この論文——『Explaining Attention with Program Synthesis』(arXiv:2606.19317)が取ったアプローチはもっと直接的です。LLMのattentionヘッドの振る舞いを、実際に動くPythonプログラムで再現してみようというんです。
手順はこう。対象モデル(BERT-base、GPT-2-small、TinyLlama-1.1B、Llama-3B)から、各attentionヘッドのattention mapを集める。次に、別の言語モデル(Claude Sonnet 4)に「この入力テキストを見て、このattention mapを再現するPython関数を書いて」と頼む。出てきた候補はJensen-Shannon距離で採点して、フィードバックを1回だけまわして改善。最後に各ヘッドに一番よく合うプログラムを当てはめます。
規模がちょっと驚きです。4モデル分、計1,664個のヘッドに対応するプログラムライブラリを、4,000候補未満、APIコスト約150ドルで作った。解釈可能性の研究にしては、ずいぶんと「軽い」実装ですねえ。
プログラムで本物を置き換えてみる
しかもこの研究、ただ「似ている」を測るだけでは終わりません。粗い近似では納得しないので、実際にモデルのattentionヘッドをPythonプログラムと入れ替えて、モデルがちゃんと動くか確かめています。
結果がここ面白い。最高25%のヘッドをプログラムで置き換えても、perplexity(言語モデルの「もっともらしさ」の指標)の増加は約16%に抑えられ、6つのQAベンチマーク(HellaSwag、PIQA、SciQ、ARC-Easy、Social IQa、COPA)で有意な劣化は観測されなかったと。論文は「30〜40%のヘッドを置き換えても、タスク性能が大きく落ちない場合がある」とまで書いています。
つまり——LLMのattentionヘッドのうち数分の1は、人間が読めるコードに置き換えても仕事を続けてくれる。attentionの世界の一部は、ニューラルな重みではなく、記号的なプログラムとしてそれなりに動いている、ということです。
さらに構造の変化も見えてきます。双方向attentionのBERTはまだ記号で説明しにくい。一方、decoder型のモデル(GPT-2、TinyLlama、Llama-3B)はうまく近似できる。しかもモデルが大きいほど、1ヘッドの役割が狭く専業になって、記号化しやすくなる——一致度(IoU)がGPT-2で69%、TinyLlamaで74%、Llama-3Bで79%と、大きいモデルほど近似がうまくいくんです。層で見ると、浅い層は「最初のトークンを見る」位置情報系のプログラムが支配的で、深い層になるほど言語的・談話的な役割のプログラムが増えていく。
チカちゃん的に、ここが面白い
この研究の本質を、チカちゃん的に言い換えるとたぶんこうです。「モデルはどう動いているか」について、形式的に検証できる説明の形式が作れたという点。
「なぜモデルはこのトークンを選んだのか」という問いに、今までは自然言語の説明文で答えていました。ただ、説明文というのは媒体としてあやふやです。ちょっと待って、説明文を書いたLLM自身がハルシネーションを起こしていたら、どうやって確かめるんですか?という鶏と卵の問題がずっとあった。
でも、プログラムで説明すると、話が変わります。プログラムは実行して検証できる。attentionを実際に置き換えて、本物のモデルと振る舞いが壊れないことを確認できる。「うまく動く」という検証が手に入る。説明が「言葉」から「実行可能なコード」に変わるとき、解釈可能性は確率的な記述から検証可能な記述へ一歩進む——少なくともその入り口は開けた、という感じですね。
もちろん、置き換えられたのは25%まで。残りの大半はまだコードで書けていません。でも「モデルの一部はコードとして書き出せる」という可能性が、実験で示されたのは確かです。
反対仮説——記号で置けるのは「狭い」だけかも
「モデルの4分の1くらいはコードで置ける」と聞くと、ワクワクします。でも反対の見方もあります。「深層モデルにも、単純な記号的ルールで置き換えてもよい部分がそもそもある」——attentionヘッドのうち簡潔な記号で近似できるのは、その部分がもともと単純だったからにすぎない、という見方です。この研究は「モデルが記号的だから」ではなく「モデルの一部が単純だから」置き換えに成功しただけ、かもしれません。
それに、論文自身も認めています。IoUが40%を下回るヘッドも相当数あるし、置き換えの割合を高くするとタスク性能は落ちていく。つまり——attentionの記号化はスタート地点であり、ゴールではない。この論文が提供したのは「完璧な説明」ではなく、検証に耐える説明の形式という、一歩目の型です。
これって人間も同じ?
でもちょっと待って、これって人間にも重なる話じゃないでしょうか。私たちの思考も記憶も、実態はニューラルで擬似秩序で、言葉にし切れないものです。それでも私たちは、自分の一部の振る舞いを「習慣」「手順」「ルール」という記号に書き出して、他の人に渡せるようにします。全部は説明できないけど、一部は説明できる——モデルの中身も、まずはそこから始まった、というわけです。
attentionヘッドの4分の1がコードで置き換えられる。だとしたら——全ヘッドをコードで書けるとき、そのモデルは「解釈された」と言えるのでしょうか。それとも、その時はじめて「モデルの本質はいずれかの記述形式ではなく、書き出しきれない残りのつながり方にある」という、別の何かが姿を現すのでしょうか。
参考URL
- Explaining Attention with Program Synthesis → https://arxiv.org/abs/2606.19317
- インターネット上のツールは第三者が提供するものです。開発工程や配布経路を悪用した攻撃(サプライチェーン攻撃)が仕掛けられる可能性もゼロではありません。ご利用の際は公式リポジトリの情報をご確認いただき、自己責任でお使いください。
- AIに関する技術や情報は急速に変化します。本記事の内容が公開後に古くなる可能性があります。各サービスの公式ドキュメントや最新情報をご確認ください。