# LLMのキモい算術 [[佐藤竜馬]] による 2025年10月27日付けのブログ記事(ジョイジョイジョイ)。LLM(代表例として Llama3-8B)が「226−68=」のような四則演算をどのように解いているかを、Nikankin ら(ICLR 2025)の研究に基づいて解説する。 元論文: Nikankin+ ICLR 2025 <https://arxiv.org/abs/2410.21272> ## 前提条件 - 思考の連鎖(CoT)を使わず、プロンプト「226-68=」に対して「158」を直接出力するケースを対象とする。 - Llama3 のトークナイザは 0〜1000 の整数を各 1 トークンに割り当てる。次トークン予測として正解トークンを選ぶ。 ## ヒューリスティックの束(bag of heuristics) LLM は四則演算を**粗い条件判定の積み重ね**で解いている。個々のニューロンは「評価結果が特定の範囲・剰余クラス・パターンに当てはまるとき」のみ発火し、対応するトークン群のロジットを押し上げる。 **具体例(「{op1} - {op2}」テンプレート)**: - 第24層 12439番ニューロン: 評価結果が 150〜180 のとき発火 → トークン「150」〜「180」のロジット増 - 第30層 1582番ニューロン: 評価結果 mod 10 = 8 のとき発火 → トークン「8」「18」「28」...「998」のロジット増 「226-68=」を入力すると評価結果は 158。158 は 150〜180 の範囲に含まれ、158 mod 10 = 8 なので両ニューロンが発火する。「150」や「998」なども押し上げられるが、真の答え「158」は多数のヒューリスティックで毎回押し上げられるため傑出して高確率になる。 個々のニューロンは厳密な演算を行っているわけではなく、**粗い条件が無数に重なった結果として正解が浮き彫りになる**という仕組みである。 ## ヒューリスティックニューロンの種類 | 種類 | 条件 | |------|------| | 範囲ヒューリスティック | 値が [a, b] の範囲に含まれる | | 剰余ヒューリスティック | 値 mod n = m が成り立つ | | パターンヒューリスティック | 値が `1.2` のような特定の正規表現にマッチする | | オペランド一致ヒューリスティック | {op1} = {op2} が成り立つ | | 複数結果ヒューリスティック(除算のみ) | 値が要素数 2〜4 の集合 S に含まれる | あるニューロンがヒューリスティックニューロンかどうかは、様々なプロンプトを入力してニューロンの発火パターンを記録し、候補パターンとの一致度を測ることで判定する。 ## ロジットレンズ(logit lens)による寄与測定 トランスフォーマーは注意機構と MLP が残差接続で積み重なった構造であり、最終線形層への入力 $v \in \mathbb{R}^d$ は各層の出力の総和 $v = \sum_l v^{(l)}$ である。 各層の出力 $v^{(l)}$ を最終線形層(語彙サイズ $|V|$ の行列 $W \in \mathbb{R}^{|V| \times d}$)に通すと $W v^{(l)} \in \mathbb{R}^{|V|}$ が得られ、**その層がトークンのロジットをどれだけ押し上げているか**を直接読み取れる。 MLP の中間ニューロン $i$ については、2層目のパラメータ行列の $i$ 列目 $u^{(l)}_i \in \mathbb{R}^d$ を通じて $W u^{(l)}_i \in \mathbb{R}^{|V|}$ 分のロジット押し上げとして寄与が定量化できる。 ## 計算ミスの機構 Llama3-8B がまれに計算を間違える場合、正解したときと間違えたときのニューロン発火パターンを比較すると、**間違えたときはヒューリスティックニューロンによる正解トークンのロジット押し上げが少ない**ことが分かる。正解トークンが浮き彫りにならず誤答が選ばれる。 ## 著者考察 - 四則演算のような「自明」なタスクでも、LLM は人間が想像しないキモい(奇妙な)方法で解いている。 - 四則演算での発見を一般化すると、LLM の推論全般も同様のヒューリスティック積み重ねかもしれない。 ## 関連ページ - [[機構的解釈性]] — 本記事が使う分析フレームワーク - [[LLM算術機構]] — 本記事で解説される具体的機構の概念ページ - [[ロジットレンズ]] — ニューロンの出力寄与を測るツール - [[ヒューリスティックの束]] — 本記事の中心概念 - [[佐藤竜馬]] — 著者