
Language Models Use Trigonometry to Do Addition
URL:
http://arxiv.org/abs/2502.00873v1
Authors:
Subhash Kantamneni, Max Tegmark
Published:
February 02, 2025
Summary
研究目的:
この研究の目的は、大規模言語モデル(LLM)が単純な数学的タスクである加算をどのように処理しているかを解明することです。LLMの数学的推論能力を理解することは、高リスクアプリケーションにおけるLLMの信頼性、解釈可能性、およびアラインメントを確保するために重要です。
用いたデータ:
GPT-J、Pythia-6.9B、およびLlama3.1-8Bという3つの中規模LLMを用いて、0から99までの数値aとbに対して加算問題a + bを計算させ、そのプロセスを解析しました。
手法:
最初に、これらのLLMが数を一般化された螺旋として表現していることを発見しました。この螺旋は加算および減算のタスクに強く因果的に関連しており、整数除算、乗算、およびモジュラ算術にも因果的に関連しています。次に、LLMが加算を計算するためにこの一般化された螺旋を「クロック」アルゴリズムを使用して操作するという仮説を立てました。このアルゴリズムでは、aとbの螺旋を操作してa + bの答えの螺旋を生成し、それをモデルのロジットに読み出します。
結果:
すべてのLLMがaとbをそのトークン上で螺旋として表現し、最後のトークン上でhelix(a + b)を構築していることを因果的介入で確認しました。さらに、GPT-Jがクロックアルゴリズムをどのように実装しているかを調査し、MLP、注意ヘッド、さらには特定のニューロンを調べました。これらのコンポーネントは、aとbの螺旋を操作してa + bの螺旋を構築するか、またはa + bの螺旋を使用してモデルのロジットで答えを生成するかという形で理解できることがわかりました。
研究目的
研究の背景:
大規模言語モデル(LLM)は数学的推論において顕著な能力を示していますが、その数学的タスクの処理メカニズムについてはまだ十分に理解されていません。特に、基本的な数学的操作である加算がどのように実行されているかの詳細は不明です。
研究の目的:
本研究の主な目的は、LLMが加算をどのように計算しているかを逆工学することにより明らかにすることです。これにより、LLMの数学的能力の根底にあるメカニズムを理解し、その知見を基にLLMの信頼性や解釈可能性を向上させることが期待されます。
研究の重要性:
LLMは、金融分析やデータ予測など、高リスクのアプリケーションで広く使用されています。そのため、これらのモデルがどのように数学的推論を行っているかを理解することは、エラーのリスクを減少させ、より安全で信頼性の高い技術の開発に寄与します。
研究の方法:
この研究では、特定のLLM(GPT-J, Pythia-6.9B, Llama3.1-8B)が0から99の範囲の数値を加算する問題をどのように処理しているかを分析します。これには数値をヘリックス構造で表現し、そのヘリックスを操作することによって加算を行う「クロック」アルゴリズムの使用が含まれます。
期待される成果:
この研究を通じて、LLMが数学的タスクを処理する基本的なメカニズムを解明し、それを基にモデルの改善や新たなモデルの開発が行えるようになることが期待されます。また、モデルの解釈可能性やアラインメントの向上にも寄与すると考えられます。
用いたデータ
モデルのパフォーマンス:
3つのモデル、GPT-J、Pythia-6.9B、Llama3.1-8Bが0から99までの数値aとbに対する加算問題a + bを解決するテストを行いました。最初は単純なプロンプト「a+b=」を用いましたが、追加の指示を含むプロンプトを使用することで、より良い結果が得られました。Llama3.1-8Bは特に印象的な98%の正確さでこのタスクを完了しましたが、数値aとbが大きくなると全モデルともに苦戦しました。
数の構造に関する追加の結果:
フーリエ分解の結果、特定のa値の数が増えるとT = 2のフーリエ成分が識別されなくなることが分かりました。この感度はフーリエ分析の限界と考えられますが、フーリエ分析自体は予備的なものです。また、後のセクションでは、ニューロンがT = 2フーリエ特徴を使用してヘリックスから読み取ることが多いことが示されました。
ヘリックス適合の追加の結果:
Pythia-6.9BおよびLlama3.1-8Bでヘリックス適合のアクティベーションパッチング結果を再現しました。ヘリックスと円形の適合がPCAベースラインを上回ることが確認されました。また、ヘリックスの機能形式が過剰に表現力を持っていないことを確認するために、訓練とテストの分割を使用しました。
モデルエラーの調査:
GPT-Jが加算を計算するアルゴリズムを実装しているにも関わらず、なぜ間違いが発生するのかを調査しました。GPT-Jが間違った数値で答えた場合、最も多く見られたのは−10(45.7%)と10(27.9%)で、これらは間違った数値回答の70%以上を占めました。このエラーの原因として、GPT-Jがa + bヘリックスを作成する際に正しく「繰り上がり」を行っていない可能性が考えられます。
手法
数の表現:
この研究では、LLMが数を一般化された螺旋として表現していることが明らかにされています。この螺旋表現は、数の周期性と線形性を同時に捉えることができるため、加算や減算などの基本的な数学的操作に適しています。
因果的関連性:
一般化された螺旋は、加算や減算だけでなく、整数除算、乗算、モジュラ算術といった他の数学的タスクにおいても因果的に重要な役割を果たしています。これは、LLMがこれらの数学的操作を効率的に処理するための基盤となる表現方法として螺旋を利用していることを示しています。
クロックアルゴリズム:
LLMが加算を行う際には、「クロック」アルゴリズムが用いられます。このアルゴリズムでは、入力された二つの数aとbがそれぞれ螺旋として表現され、これらの螺旋を適切に操作することで、新たな螺旋であるa + bの答えの螺旋を生成します。
ロジットへの読み出し:
生成されたa + bの答えの螺旋は、最終的にモデルのロジットへと読み出されます。これにより、LLMは加算の結果を出力することができるわけです。この過程は、数学的な理解と計算を高度に抽象化した形でLLMが内部的に実行していることを示しています。
結果
因果的介入の確認:
LLMがaとbをそれぞれのトークン上で螺旋として表現し、最後のトークンでhelix(a + b)を構築していることは、因果的介入実験によって確認されました。これは、モデルが数値を内部的にどのように処理しているかを理解する上で重要な証拠となります。因果的介入とは、特定の入力や内部状態を人為的に変更して、出力にどのような影響があるかを観察する実験手法です。
GPT-Jのクロックアルゴリズムの実装調査:
GPT-Jがクロックアルゴリズムをどのように実装しているかの調査では、MLP(多層パーセプトロン)、注意ヘッド、特定のニューロンが詳細に分析されました。これらのコンポーネントがどのように連携して数値の加算を行っているかを理解することができます。
モデルのコンポーネントの役割:
調査の結果、これらのモデルのコンポーネントは二つの主要な役割を果たしていることが明らかになりました。一つは、入力されたaとbの値の螺旋を操作して新たにa + bの螺旋を構築すること、もう一つは構築されたa + bの螺旋を使用して、モデルの最終的な出力であるロジットを通じて答えを生成することです。これにより、LLMが数値の加算をどのように行っているのかのメカニズムが解明されます。