生成ＡＩと物理学（その２）

# 1 はじめに
2023年は ChatGPT に代表される生成 AI ブームに明け暮れた。数十年後に振り返ってみるとき、この年は科学技術史上でも大きなターニングポイントとして語り継がれるであろう。
前回[:arrow_upper_right:](https://qiita.com/mtanaka-kumw/items/34a9228e188524c8dbc5)は Tim Lou の[ブログ記事](https://towardsdatascience.com/understanding-large-language-models-the-physics-of-chat-gpt-and-bert-ea512bcc6a64)にしたがって、 LLM の中心的なアーキテクチャー *Transformer* の要となるアルゴリズムである自己注意メカニズム（*Self-attention mechanism*）が、物理学の粒子を記述する運動方程式と同様にポテンシャル項の微分として書き直せることを見てきた。今回はトークンダイナミックスを支配する方程式(4)のポテンシャル項の係数 $M$ の意味するところを考察し、トークンが潜在空間でどのような動きをしているかを考察する。

# 2 行列 𝑀 の意味するところ
ここで、前回求めたポテンシャル項の係数行列 $M$ を再掲する。

```math
M = V(Q^{T}K)^{-1}
\quad・・・\quad(5)
```

ここで、(5)式で与えられる $M$ の役割を考えてみよう。実のところ、$M$ は「世界知識（あるいは百科事典）」を凝縮したもので、それをインデックス $𝑄^T 𝐾$ で引いて、対応するコンテンツ $V$ を探し出している。以下にそのことを示そう。

## 2.1 世界知識 𝑀 

(5)式の両辺に右から $𝑄^T 𝐾$ を掛けると

```math
M(Q^{T}K) = V
\quad・・・\quad(13)
```

となるが、$𝑄^T 𝐾$ はクエリ行列 $𝑄$ とキー行列 $𝐾$ の類似度を表す行列で、「ある種のインデックス（索引）」に相当する。

よって、(13)式は、 $𝑀$ という「世界知識（あるいは百科事典）」を「索引」 $𝑄^T 𝐾$ を使って引くと、対応する「コンテンツ」 $𝑉$ が得られるという関係を表している。

ここで重要なのは $𝑄, 𝐾, 𝑉$ （したがって $𝑀$ も）は、すべて人が与えるものではなく、学習によって獲得されたものであるという事実である。 つまり、 「世界知識」$𝑀$ は学習に用いられた全コーパスの知識が凝集されたもので、その「索引」 $𝑄^T 𝐾$ や対応する「コンテンツ」 $𝑉$ もまた然りである。

したがって、$𝑀$ の役割は、「ある種のインデックス」を作用すれば、その内容がわかるというもので、 $\boldsymbol{t}_𝑖$ の更新を表す(4)式は、その「ある種のインデックス」がポテンシャル

```math
\ln {\left[ \sum_{k \ne i} \exp{ \left( Q\boldsymbol{t}_{i} \cdot K\boldsymbol{t}_{k} \right)} \right]}
```

の勾配で表され、具体的には(9)式で与えられる $𝑄^T 𝐾 \boldsymbol{t}\_k$  の、アテンション重み $𝑎_{𝑖,𝑘}$ による加重平均である

```math
\sum_k Q^{T} K \boldsymbol{t}_{k} a_{i,k} = Q^{T} K \sum_k \boldsymbol{t}_{k} a_{i,k}
= Q^{T} K T \boldsymbol{a}_{i}
```

になっているということである（Fig.4上側）。 

![Fig4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/f9793c73-c0ec-b633-02e3-c4b1ccfd35ee.png)

そして、これはアテンション重み $𝑎_{𝑖,𝑘}$ で重みづけされたテキストの内容 $𝑉𝑇𝒂_𝑖$ を検索して引っ張ってくる（Fig.4下側） 。

# 3 アテンションスタックと潜在空間内での埋め込みベクトルの軌道

*Self-attention* 機構によって、トークン $\boldsymbol{t}\_{i}$ は周辺のトークン $\boldsymbol{t}\_{k}$  （コンテキスト）を反映した次式で与えられる潜在埋め込みベクトル $\boldsymbol{h}\_{i}$ を生成する。


```math

\begin{equation}
\begin{split}

\boldsymbol{h}_{i} 
&= \boldsymbol{t}_{i} + MQ^{T}K \sum_{k \ne i} \boldsymbol{t}_{k} a_{i,k} \\
&= \boldsymbol{t}_{i} + V \sum_{k \ne i} \boldsymbol{t}_{k} a_{i,k} 

\quad・・・\quad(14)

\end{split}
\end{equation}

```

*Transformer* では多くのアテンション層が積み重なった構造になっている（アテンションスタック）。つまり、入力トークン列 $\boldsymbol{t}\_{𝑘}$ から(14)式で生成される潜在空間の埋め込みベクトル $\boldsymbol{h}\_{i}$ が次のアテンション層の入力となり、 $\boldsymbol{h}\_{i} \to \boldsymbol{h}\_{i+1} \to \boldsymbol{h}\_{i+2} \to \cdots$ と次々に埋め込みベクトルが潜在空間内で遷移していく（Fig.5）。

![Fig5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/985ae5b8-94e0-27fc-3cef-c2b3a75b6bc9.png)

すなわち、 $𝑖$ を離散時間とみなした場合、埋め込みベクトルは(4)式で与えられるポテンシャル 

```math
U = M \ln {\left[ \sum_{k \ne i} \exp{ \left( Q\boldsymbol{t}_{i} \cdot K\boldsymbol{t}_{k} \right)} \right]}
```

の勾配に沿って運動して軌道を描く（Fig.6）。

![Fig6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/10331bb6-1f60-e34c-9e37-ddab3d6e9914.png)

これは物理学で、たとえば、距離が $𝑟_𝑘$ だけ離れている質量が $𝑀_𝑘$ の天体から受ける重力ポテンシャル 

```math
U = - \sum_{k} G \frac{M_k m}{r_k}
```

の勾配に沿って質量 $𝑚$ の物体が運動するのと似ている。

重力定数 $𝐺$ が世界知識 $𝑀$ に対応し、天体の質量 $𝑀_𝑘$ がテキスト内のトークン $\boldsymbol{t}_𝑘$ に対応し、質量 $𝑚$ の物体が今注目している入力トークン $\boldsymbol{t}_𝑖$ に対応している。物理運動との違いは、時間が連続ではなく離散的である点である。

# 4 マルチヘッドアテンション

*Transformer* ではマルチヘッドアテンションによって潜在空間内の埋め込みベクトル $\boldsymbol{h}\_𝑖$ は、マルチヘッドの数 $𝐻$ だけセグメント化され、各セグメントにトークン $\boldsymbol{t}_𝑖$ の役割を担うような情報が宿る（Fig.7 に概念的な例を示す）。

![Fig7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/16be93af-2a43-491a-3ceb-40707f30fdd0.png)

*Transformer* の最後の全結合層や *Fine tuning* におけるヘッド部の全結合層が、そのマルチヘッドアテンションで作成された潜在ベクトルからタスクに有用なセグメントに注目し、最終的な出力潜在ベクトル $\boldsymbol{h}'_i$ を作る（Fig.8）。

![Fig8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3538461/a71e33e4-368f-a471-ab94-820cc07e78f4.png)

たとえば、テキスト生成タスクでは次トークン情報を、*NER*（固有表現認識）タスクでは固有表現情報（場所、人、組織、・・・）を、クラス分類タスクではクラス情報を、感情分析タスクではネガ・ポジ情報を出力潜在ベクトル $\boldsymbol{h}'_i$ が獲得するようにパラメータ $𝑊$ の学習が進む。

このように各種タスクに有用な最終的な出力潜在ベクトルが生成できるのは、事前学習（*Transformer* のボディ部分）で埋め込みベクトル $\boldsymbol{h}_i$ に「世界知識」$𝑀$ を「埋め込んでいる」からである。潜在空間上のトークンの軌道（トラジェクトリ―）はこの全結合層のパラメーターで決まる。

# 5 創発（*emergence*）

創発は、*LLM* の規模がある段階に達すると、突然、新たな機能が出現する（これまで解けなかったタスクが解けるようになるなど）現象である。
この現象を Fig.7 に示したマルチヘッドアテンションの観点で説明を試みる。

*LLM* の規模が十分でない場合（パラメータ数が十分でない場合やマルチヘッドの数が十分でない場合、またアテンションスタックの数が十分でない場合など）や学習データが十分でない場合は、Fig.7 に示す潜在ベクトルの各ヘッドの役割が明確にならない可能性がある。たとえば、ヘッド数が少ないため、一つのヘッドに異なる情報（品詞情報と意味情報など）が混在するため、その後の全結合層でタスクに有用な情報を引き出せない可能性がある。また、データ数が少ないため、あるいはアテンションスタックの数が十分でないため、ヘッド数が十分にあっても各ヘッドに明確な役割が充填できない可能性もある。このような現象は、トピックモデルなどのクラスタリングタスクで、十分なデータがない場合などにしばしばみられる。

ところが、システムの規模がある段階に達し、マルチヘッドアテンションの各ヘッドが十分に明確な機能を担うことができるようになると、全結合層がその機能をフルに活用してタスクの目的に応じた最終的な出力潜在ベクトルを生成できるようになり、創発が出現するのではないだろうか。

# 6 おわりに

本稿では、Tim Lou のブログ記事にしたがって、 *LLM* の中心的なアーキテクチャー *Transformer* の要となるアルゴリズムである自己注意メカニズム（*Self-attention mechanism*）が、物理学の粒子を記述する運動方程式と数学的形式が類似している点に着目して *LLM* 内部でのトークンダイナミックスの描像を描いてみた。トークンは世界知識 $M$ を係数とするポテンシャル項の勾配を駆動力として潜在空間内を遷移し、周辺の文脈情報をそのベクトル成分に徐々に蓄えていく。その際、マルチヘッドアテンションによってその後のタスクで有用となるであろう様々な特徴量情報が埋め込まれていく。*LLM* の規模、すなわちパラメータ数がある一定の規模を超えると何らかの協調現象が現れ、突然、新たな機能が出現する。いわゆる「創発」である。もとより、創発はおろか *LLM* が提供する各種の有益な機能が本稿で説明したような簡単な物理アナロジーで解明されるべくもないが、こうした考察を地道に積み上げることにより、生成 AI の意識と言わないまでも、何故あの魔法のような言葉が紡ぎだされるのか、その一端でも垣間見ることができるのではないか。

生成 AI と物理学（その１）へ [:arrow_upper_right:](https://qiita.com/mtanaka-kumw/items/34a9228e188524c8dbc5)

# 参考文献
1. Tim Lou：Understanding Large Language Models: The Physics of (Chat)GPT and BERT. https://towardsdatascience.com/understanding-large-language-models-the-physics-of-chat-gpt-and-bert-ea512bcc6a64 (2023.11.19 確認)