エディンバラ大学が20ページの無料論文を公開:ChatGPTの背後にある数学を、最もシンプルな方法で解説
- 数十年統計モデリングに携わってきた学者が大規模モデルを理解しようとしたが、attention、Query、Keyといった言葉に阻まれた。彼の結論は「数学自体は難しくない。難しいのは専門用語ばかり」というものです。
- そこで彼は20ページの無料論文を書き、ChatGPT内部の数学を統計学の標準的な用語で解説し直した。前提知識は大学1年レベルの3つだけ。
- 最も神秘的に語られがちなアテンションも、彼の筆にかかれば中学生でもわかる操作になります。本当に難しいのは別の場所にある。
数学の専門家もAI論文を読めない。彼は「すべて専門用語のせいだ」と言う
エディンバラ大学ビジネススクールの信用研究センター(CRC)が20ページの無料論文を公開しました。タイトルは『大規模言語モデルのシンプルな数学』。これを読めば、ChatGPTやClaudeの内部で何が計算されているのかがわかります。何百ページもある深層学習の教科書は必要ありません。必要な前提知識は、行列の掛け算ができること、条件付き確率を知っていること、統計モデルのパラメータはデータから推定されるものだと理解していること、この3つだけです。
執筆者は Joseph L. Breeden 氏です。数十年にわたり非線形システムのモデリング、統計学、言語学の研究に携わり、自身で分析会社を経営しています。彼は大規模モデルを読むのはそれほど難しくないだろうと思っていましたが、言葉でつまずきました。
「token は『query』ではない。言語学者は『key』とは言わない。『head』とは一体何なのか? これらの言葉がコンピュータサイエンス由来だとは想像できるが、『専門用語を使わない』と謳う解説書でさえ、最初から query、key、value と出てくる。ならば、一からやり直そう。」
Joseph L. Breeden 著、『The Simple Mathematics of Large Language Models』
attention、Query、Key、Value、head。これらの言葉は、データベース、認知科学、電気工学から流用されたものです。しかし、この流用は適切とは言えず、その背後にある実に平凡な数学を覆い隠してしまっています。そこで彼は、これらの言葉をすべて統計学に古くからある名前に置き換え、それぞれについて「元の言葉のどこが悪いのか」を説明しました。この言い換えの作業が論文全体の第二の軸であり、記事の最後に対照表としてまとめます。
大規模モデルがやることは一つだけ:次の単語を当てる
言語モデルとは、テキストを与えられると「次に来そうな単語の確率」を返す仕組みです。「The cat sat on the」と入力すれば、mat(敷物)、floor(床)、chair(椅子)には高い確率が、democracy(民主主義)には極めて低い確率が割り当てられます。
文章を書くとき、モデルはこの動作を何百回も繰り返します。確率を計算して単語を選び、それを前文に加えて、また次の単語を計算する——このループを、以下のデモで順に体験できます。
なぜ単語列の確率を計算すれば十分なのでしょうか。 確率論にはチェーン・ルール(連鎖律)と呼ばれる恒等式があります(これは仮定ではなく恒等式です)。ある文章が現れる確率は、「最初の単語の確率 × 最初の単語が与えられたときの2番目の単語の確率 × 最初の2語が与えられたときの3番目の単語の確率……」というように、条件付き確率の掛け算に分解できます。つまり、「前文が与えられたとき、次の単語は何か」を計算できれば、言語全体をモデル化したことになります。大規模モデルがやっていることは、まさにこれだけです。
何が難しいのか:文脈の組み合わせ数は宇宙の原子の数より多い
難しいのはこの式ではなく、「前文」の種類がどれほどあるか、です。語彙が5万トークンだとすると、10語の文脈の組み合わせは「5万の10乗」通りになります。これは観測可能な宇宙に存在する原子の総数よりも多い数です。全パターンを表にして調べるのは不可能です。前文ごとに確率表を保存しておくことはできないからです。
だからこそ、一つの例を学べば他の例にも応用が効く関数が必要なのです。「猫が敷物の上に座っている」を見たなら、「犬がカーペットの上に伏せている」も処理できるようにならなければなりません。論文の残りの部分は、この関数がどのような形をしているのかを説明しています。
機械は文字を読めない:まず単語を点に変換し、意味の近いものを近くに置く
最も簡単な方法は、各トークンに番号を振ることです。1番の単語、2番の単語……数学的には、1つの要素だけが1で、残りがすべて0の長いベクトルとして書きます。しかし、これではすべての単語が無関係だと宣言しているようなものです。「猫」と「犬」の距離が、「猫」と「しかし」の距離と同じになってしまいます。これは明らかに間違いです。猫と犬はどちらも動物であり、ペットであり、名詞です。
別の方法:各単語を高次元空間(現実には通常1000〜10000次元)の点として表します。意味や文法的機能が近い単語は近くに、無関係な単語は遠くに置くのです。これらの座標は、訓練プロセスが自動的に決定します。人間が手で埋めるものは何もありません。この表現方法は一般的に embedding(埋め込み)と呼ばれます。離散的な単語の集合を、連続的な空間に埋め込むわけです。統計学の古い概念と照らし合わせると、主成分分析(PCA)と同じ種類の作業です。つまり、多数の属性をより少ない次元に圧縮するもので、圧縮された次元が直感的な意味を持つこともあれば、持たないこともあります。