研究解説・小互解説

エディンバラ大学が20ページの無料論文を公開:ChatGPTの背後にある数学を、最もシンプルな方法で解説

AIの専門用語に阻まれた統計学者が、統計学の標準的な言葉で大規模言語モデルを一から語り直す
1分でわかる要点
  • 数十年統計モデリングに携わってきた学者が大規模モデルを理解しようとしたが、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(民主主義)には極めて低い確率が割り当てられます。

文章を書くとき、モデルはこの動作を何百回も繰り返します。確率を計算して単語を選び、それを前文に加えて、また次の単語を計算する——このループを、以下のデモで順に体験できます。

クリックするたびに、モデルが単語を1つ生成
The cat sat on the
mat 敷物42%
floor 床18%
chair 椅子9%
democracy 民主主義≈0%
このステップでモデルがやることは、語彙の各単語に確率を割り当てることだけ。最も確率の高い mat を選びます。
The cat sat on the mat
. ピリオド37%
and そして14%
while 〜する間8%
purple 紫色≈0%
書いたばかりの mat が、すぐに前文の一部になります。同じ動作をもう一度。ただし、確率分布は先ほどとまったく違うものになっています。
The cat sat on the mat. It
was 〜だった25%
looked 見えた12%
purred 喉を鳴らした7%
democracy 民主主義≈0%
前文が長くなるほど、選べる単語は絞られます。「It」が猫を指すことは、前の文がなければ判断できません。どうやってそれを実現しているのか、それが以降のテーマです。
患者は珍しい疾患と診断された
血液疾患29%
遺伝性疾患21%
腫瘍12%
火曜日≈0%
言語や題材が変わっても、動作はまったく同じです。この文を読んだあなたの頭の中にも「病気の名前が来るはず」という予測が浮かびます。モデルが学んでいるのは、この「予測可能性」です。
クリックで試せるデモ(当サイト制作、パーセンテージはイメージ値であり実測値ではありません):「確率計算 → 単語選択 → 前文に追加 → 再計算」のループを4ステップで体験できます。モデルが文章を一編書き上げるのは、このループの数百・数千回の繰り返しです。

なぜ単語列の確率を計算すれば十分なのでしょうか。 確率論にはチェーン・ルール(連鎖律)と呼ばれる恒等式があります(これは仮定ではなく恒等式です)。ある文章が現れる確率は、「最初の単語の確率 × 最初の単語が与えられたときの2番目の単語の確率 × 最初の2語が与えられたときの3番目の単語の確率……」というように、条件付き確率の掛け算に分解できます。つまり、「前文が与えられたとき、次の単語は何か」を計算できれば、言語全体をモデル化したことになります。大規模モデルがやっていることは、まさにこれだけです。

何が難しいのか:文脈の組み合わせ数は宇宙の原子の数より多い

難しいのはこの式ではなく、「前文」の種類がどれほどあるか、です。語彙が5万トークンだとすると、10語の文脈の組み合わせは「5万の10乗」通りになります。これは観測可能な宇宙に存在する原子の総数よりも多い数です。全パターンを表にして調べるのは不可能です。前文ごとに確率表を保存しておくことはできないからです。

だからこそ、一つの例を学べば他の例にも応用が効く関数が必要なのです。「猫が敷物の上に座っている」を見たなら、「犬がカーペットの上に伏せている」も処理できるようにならなければなりません。論文の残りの部分は、この関数がどのような形をしているのかを説明しています。

ここで2つ、冷静になるための注意点があります。1つ目:大規模モデルを「確率的オウム」と貶すのは正しくありません。オウムは数語のフレーズの頻度で適当に言葉をつなげるだけですが、大規模モデルは長い前文を読んだ上で続きを生成します。前文が「Genie は床を掃除できないと説明した。なぜなら……」であれば、続きはほぼ一意に決まります。2つ目:逆に冷や水を浴びせるなら、大規模モデルは厳密には「有限次数のマルコフモデル」だということです。コンテキストウィンドウは固定されており、ウィンドウの外にある文字は原理的に見ることができません。どれだけデータを入れても無理です。
表現

機械は文字を読めない:まず単語を点に変換し、意味の近いものを近くに置く

最も簡単な方法は、各トークンに番号を振ることです。1番の単語、2番の単語……数学的には、1つの要素だけが1で、残りがすべて0の長いベクトルとして書きます。しかし、これではすべての単語が無関係だと宣言しているようなものです。「猫」と「犬」の距離が、「猫」と「しかし」の距離と同じになってしまいます。これは明らかに間違いです。猫と犬はどちらも動物であり、ペットであり、名詞です。

別の方法:各単語を高次元空間(現実には通常1000〜10000次元)の点として表します。意味や文法的機能が近い単語は近くに、無関係な単語は遠くに置くのです。これらの座標は、訓練プロセスが自動的に決定します。人間が手で埋めるものは何もありません。この表現方法は一般的に embedding(埋め込み)と呼ばれます。離散的な単語の集合を、連続的な空間に埋め込むわけです。統計学の古い概念と照らし合わせると、主成分分析(PCA)と同じ種類の作業です。つまり、多数の属性をより少ない次元に圧縮するもので、圧縮された次元が直感的な意味を持つこともあれば、持たないこともあります。

意味が近い単語は、点も近い うさぎ 動物はかたまる 敷物 カーペット 家庭用品は別のかたまり しかし(遠く離れて) 点同士は足し引きもできる king − man + woman ≈ queen (word2vec で最も有名な例)
模式図(本站制作):単語を空間上の点として表すと、「類似」は測定可能な距離になり、「男と女の違い」は足し引きできる方向になります。