大規模言語モデルの仕組みが目で見てわかる「Transformer Explainer」
![](https://image.news.livedoor.com/newsimage/stf/f/b/fbb9c_88_02af6c4e7207f3b4a71384b1dfcb3385.png)
GPT-4やLlama、Claudeといった大規模言語モデルは、2017年にGoogleの研究者が発表した「Transformer」というフレームワークの上に構築されています。このTransformerをベースにしたAIモデルがどのように機能するのかを視覚化したツール「Transformer Explainer」が、ジョージア工科大学のPolo Club of Data Scienceによって公開されています。
https://poloclub.github.io/transformer-explainer/
Transformer Explainerの見方は、以下のムービーを見ると一発でわかります。
Transformer Explainer: Learn How LLM Transformer Models Work - YouTube
Transformer Explainerにアクセスするとこんな感じ。
![](https://image.news.livedoor.com/newsimage/stf/8/c/8c8e7_88_4608edce7d89bea6bfb6e3700f3ffccf.png)
右上にある「Temperture」は、次の単語を予測する際の確率分布に影響を与える変数です。スライドバーを左右に動かすことで確率分布が変動し、次に出力される単語も変化します。
![](https://image.news.livedoor.com/newsimage/stf/5/5/55c6e_88_ac9277008981bcfe985527f652a9ea2d.png)
上部にある入力欄に直接文章を入力してもOK。
![](https://image.news.livedoor.com/newsimage/stf/f/b/fb5f6_88_f3852d76ff9b71997654a99e7c653767.png)
入力欄の右にある「Generate」ボタンをクリックすると、設定しているTempertureに基づいて確率分布が算出され、次の単語が出力されます。
![](https://image.news.livedoor.com/newsimage/stf/b/e/bedba_88_040232ba8418401e0c90a5ddb1ace80d.png)
この確率分布はどのように生成されているのかというのは左側の「Embedding」から見ていくとわかります。このEmbeddingでは、入力された文字列をトークンという単位に分解し、ベクトルに変換しています。Transformer Explainerの「Embedding」という部分をクリックすると、トークンが変換されていく様子が可視化されます。
![](https://image.news.livedoor.com/newsimage/stf/3/7/37b67_88_e08443c646f828a02da58028abb5e835.png)
そして、このベクトルからQuery、Key、Valueという3つの入力を算出します。この計算過程は、トークンからのびる青いラインをクリックすると表示されます。
![](https://image.news.livedoor.com/newsimage/stf/3/7/375f6_88_2e953ad9ba88fd07727837802e70e4b3.png)
そして、Transformerの基幹はデータの中から予測に役立つものを重み付けして注目する「Attention」という機構で、中央部分の「Multi-Head Attention」を見ると、QueryとKeyの内積をSoftmaxという関数で正規化して重みを算出し、Valueとの積を取ることで出力結果を生成している様子が示されました。
![](https://image.news.livedoor.com/newsimage/stf/d/8/d8b5a_88_cf889b81f1b05b289e96bbdccdad85d0.png)
Transformer Explainerはオープンソースで開発されており、MIT LicenseのもとでソースコードがGitHubで公開されています。
GitHub - poloclub/transformer-explainer: Transformer Explained: Learn How LLM Transformer Models Work with Interactive Visualization
https://github.com/poloclub/transformer-explainer