多層パーセプトロンはどこに知識を蓄えているのか GPTのパラメータの3分の2
こんにちは。ゆうせいです。
大規模言語モデルに「八村塁がプレーするスポーツは」と入力すると、「バスケットボール」と返ってきます。
数千億個のパラメータのどこかに、特定の人物とそのスポーツに関する知識が焼き込まれているということです。
では、その事実はどこに住んでいるのでしょうか。
2023年12月、Google DeepMindの研究者たちが、この問いに取り組んだ成果を公開しました。まさにアスリートと競技を対応づける例を使った研究です。
完全な解明には至っていませんが、一つの大きな結論が得られています。事実は、多層パーセプトロンと呼ばれる部分に住んでいるようだ、というものです。
この記事では、その中身を追います。
結論
多層パーセプトロンの要点は、三つです。
| 要点 | 内容 |
|---|---|
| 計算は単純 | 行列積を2回、間に簡単な非線形関数を挟むだけ |
| 解釈は困難 | 何をしているかを読み解くことは、極めて難しい |
| パラメータの主役 | GPT-3全体の約3分の2が、ここにある |
アテンションと比べると、計算そのものは拍子抜けするほど単純です。
しかし、その単純な計算が何を実現しているのかは、まったく別の話です。この記事では、具体例を使って「原理的にはこうできる」という形を示します。
以下、順に見ていきます。
1 全体の流れを確認する
これまでの復習
モデルは、文章を受け取って次に来るものを予測します。
入力文章はトークンに分割され、各トークンが高次元ベクトルに対応づけられます。
このベクトルの列が、二種類の処理を繰り返し通ります。
| 処理 | 役割 |
|---|---|
| アテンション | ベクトルどうしが情報をやり取りする |
| 多層パーセプトロン | 今回扱う部分 |
間には、正規化の処理も挟まれます。
最終的な目標
何度も繰り返した末に、各ベクトルが十分な情報を吸収していることが期待されます。
文脈からの情報と、学習によってモデルの重みに焼き込まれた一般知識の両方です。
それができて初めて、次のトークンの予測が可能になります。
方向が意味を持つ
押さえておきたい考え方があります。
これらのベクトルは、非常に高次元の空間に存在します。そして、異なる方向が異なる種類の意味を符号化できます。
前回までの連載で扱った例を再掲します。
「woman」の埋め込みから「man」の埋め込みを引き、その差を別の男性名詞に足す。たとえば「uncle」に足すと、対応する女性名詞に非常に近い位置に着きます。
この方向が、性別の情報を符号化しているということです。
多層パーセプトロンの役割
アテンションが文脈を取り込むことは、前回見ました。
しかし、モデルのパラメータの大部分は多層パーセプトロンの中にあります。
そこで何をしているのか。一つの考え方は、事実を蓄えるための余分な容量を提供している、というものです。
練習問題1
アテンションと多層パーセプトロンの違いを、ベクトル間のやり取りという観点から説明してください。
解答を示します。
アテンションでは、ベクトルどうしが情報をやり取りします。ある位置のベクトルが、別の位置のベクトルの影響を受けて更新されます。
多層パーセプトロンでは、ベクトルどうしのやり取りがありません。各ベクトルが独立に、同じ処理を並列に受けます。
補足します。この違いは、理解のうえで大きな利点をもたらします。
多層パーセプトロンでは、1本のベクトルに何が起きるかを理解すれば、すべてのベクトルについて理解したことになります。
2 具体例の設定
何を示すのか
この記事では、次の事実を蓄える仕組みを追います。
「八村塁はバスケットボールをする」
三つの仮定
高次元空間について、いくつか仮定を置きます。
| 方向 | 表すもの |
|---|---|
| 方向1 | 名が塁であること |
| 方向2 | 姓が八村であること |
| 方向3 | バスケットボール |
これら三つは、互いにほぼ直交しているとします。
内積で判定する
具体的には、次のように考えます。
ネットワークの中で処理されているベクトルを一つ取り出します。そのベクトルと「名がマイケル」の方向との内積が1であれば、そのベクトルはその名を持つ人物という概念を符号化している、という意味です。
そうでなければ、内積は0か負になります。ベクトルがその方向と揃っていないということです。
内積が1より大きい場合に何を意味するかという問いは、もっともな疑問ですが、ここでは無視します。
フルネームの場合
あるベクトルがフルネームを表すとしましょう。
その場合、二つの方向との内積が両方とも1になります。
前提条件
ここで注意が必要です。
「Michael Jordan」というテキストは、二つのトークンにまたがります。
したがって、前段のアテンションブロックが、二つ目のベクトルへ情報を渡すことに成功している必要があります。両方の名前を符号化できるようにするためです。
練習問題2
「Michael Jordan」というフルネームを一つのベクトルが表すために、アテンションブロックがどのような役割を果たす必要がありますか。
解答を示します。
「Michael」のトークンが持つ情報を、「Jordan」のトークンのベクトルへ渡す必要があります。
多層パーセプトロンではベクトルどうしのやり取りがないため、フルネームの情報を一つのベクトルにまとめる作業は、その前のアテンションブロックが担います。
補足します。この分業が、Transformerの基本構造です。
アテンションが情報を集め、多層パーセプトロンがその情報をもとに知識を引き出す。役割が分かれています。
3 ブロック全体の構造
入ってくるもの
ベクトルの列がブロックに流れ込みます。各ベクトルは、もともと入力文章のトークン一つに対応していました。
中で起きること
各ベクトルが、短い一連の処理を通ります。
最後に、同じ次元のベクトルがもう一つ得られます。
出ていくもの
そのベクトルを、流れ込んできた元のベクトルに足します。その和が、流れ出る結果です。
並列に処理される
この一連の処理は、列の中のすべてのベクトルに適用されます。入力の各トークンに対応するベクトル、すべてです。
そして、すべて並列に行われます。
この段階では、ベクトルどうしが会話しません。それぞれが自分のことをしているだけです。
何を実現したいのか
この例で言えば、次のことです。
名がマイケル、姓が八村を符号化したベクトルが流れ込めば、この計算の列がバスケットボールの方向を含む何かを生み出す。それが、その位置のベクトルに足される。
練習問題3
多層パーセプトロンの出力が、入力に足される構造になっています。単に置き換えるのではなく足す形にすることの利点を考えてください。
解答を示します。
元の情報を保持したまま、新しい情報を追加できます。
置き換える形にすると、それまでに蓄積された文脈の情報が失われます。足す形であれば、元のベクトルの意味を残しながら、知識を上乗せできます。
また、学習の観点でも利点があります。勾配が元の経路を通って伝わるため、深い層でも学習が進みやすくなります。
補足します。この構造は残差接続と呼ばれます。
深いネットワークの学習を可能にした重要な工夫の一つです。画像認識の分野でも広く使われています。
4 第一段階 上向きの行列
最初の処理
流れ込んだベクトルに、非常に大きな行列を掛けます。
深層学習ですから、驚きはありません。
この行列も、データから学習されたパラメータで満たされています。モデルの振る舞いを決めるつまみの集まりです。
行ごとに見る
行列の掛け算を理解する良い方法があります。
行列の各行を、それぞれ一つのベクトルだと考えるのです。そして、それらの行と、処理されるベクトルとの内積を取っていると見ます。
処理されるベクトルを と表記します。埋め込みのEです。
一行目に何が入っているか
仮に、一行目が「名がマイケル」の方向と一致していたとします。
すると、出力の第一成分は次のようになります。
| ベクトルの内容 | 内積の値 |
|---|---|
| 名がマイケルを符号化 | 1 |
| そうでない | 0か負 |
もっと面白い場合
一行目が「名が塁」と「姓が八村」を足した方向だったらどうでしょうか。
簡潔に と書きます。
埋め込み との内積を取ると、きれいに分配されます。
値を確かめる
フルネームを符号化している場合を計算します。
そうでない場合は、1かそれ以下になります。
| ベクトルの内容 | 値 |
|---|---|
| Michael Jordan | 2 |
| Michaelだけ | 1 |
| Jordanだけ | 1 |
| どちらでもない | 0か負 |
他の行も同様
これは、行列の1行にすぎません。
他のすべての行が、並列に別の種類の問いを投げかけていると考えてください。処理中のベクトルの、別の特徴を探っています。
練習問題4
行列の一行目が であるとき、次のベクトルとの内積を求めてください。
(1) Michael Jordanを符号化したベクトル
(2) Michael Phelpsを符号化したベクトル(名だけ一致)
(3) 無関係な人物を符号化したベクトル
解答を示します。
(1) 両方の内積が1です。
(2) 名だけが一致するため、次の通りです。
(3) どちらとも一致しないため、次の通りです。
補足します。(2)に注目してください。
値が1となり、0より大きくなっています。このままでは、Michael Phelpsも部分的に反応してしまいます。この問題への対処が、次の節のテーマです。
5 バイアスを加える
もう一つのベクトル
この段階では、出力にもう一つのベクトルを足すことがよくあります。
これもデータから学習されたパラメータで満たされています。バイアスと呼ばれます。
今回の想定
この例では、バイアスの第一成分が だと想定してください。
すると、最終的な出力は次の形になります。
なぜそう仮定するのか
もっともな疑問です。なぜモデルがこれを学習したと仮定するのでしょうか。
理由は、値の意味がきれいになるからです。
| ベクトルの内容 | バイアス後の値 |
|---|---|
| Michael Jordan | |
| Michaelだけ | |
| Jordanだけ | |
| どちらでもない |
フルネームを符号化しているとき、そしてそのときに限り、値が正になります。
行の数
この行列の行数は、いくつでしょうか。
投げかけている問いの数にあたります。
GPT-3では、50,000弱です。正確には、埋め込み空間の次元数のちょうど4倍です。
4倍という設計
これは設計上の選択です。もっと多くも少なくもできます。
きれいな倍数にしておくと、ハードウェアと相性が良いという事情があります。
名前を付ける
この行列は、より高い次元の空間へ写像します。
したがって、上向き投影行列と呼ぶことにします。記号では とします。
バイアスベクトルは とします。
練習問題5
バイアスの第一成分を にすることで、何が達成されますか。
解答を示します。
フルネームを符号化している場合にのみ、値が正になります。
バイアスがなければ、名だけ一致する場合や姓だけ一致する場合にも、値が1となって正になります。 を足すことで、これらが0以下に押し下げられます。
補足します。この仕組みは、しきい値の設定にあたります。
「2以上のときだけ反応してほしい」という要求を、「1を引いて正かどうかを見る」という形に変換しています。
6 非線形関数を通す
ここまでの問題
この時点で、問題があります。
ここまでの処理は、純粋に線形です。しかし、言語は非常に非線形な現象です。
具体的な問題
測定している項目が「Michael + Jordan」に対して高い値を出すなら、次のものにもある程度反応してしまいます。
| 組み合わせ | 問題 |
|---|---|
| Michael + Phelps | 概念的に無関係 |
| Alexis + Jordan | 概念的に無関係 |
本当に欲しいのは、フルネームに対する単純な「はい」か「いいえ」です。
ReLUを通す
そこで、大きな中間ベクトルを、非常に単純な非線形関数に通します。
よく使われるのは、負の値をすべて0にし、正の値をそのまま残す関数です。
深層学習の伝統に従い、大げさな名前が付いています。正規化線形関数、略してReLUです。
効果を確認する
先ほどの想定に戻ります。中間ベクトルの第一成分は、フルネームのときに限り1、それ以外では0か負でした。
ReLUを通すとどうなるでしょうか。
| ベクトルの内容 | ReLU前 | ReLU後 |
|---|---|---|
| Michael Jordan | 1 | 1 |
| Michaelだけ | 0 | 0 |
| Jordanだけ | 0 | 0 |
| どちらでもない | 0 |
0以下の値がすべて0に切り落とされました。
論理回路との対応
この出力は、フルネームのときに1、それ以外では0です。
これは、ANDゲートの振る舞いを直接模倣しています。
二つの条件が両方とも満たされたときだけ、1を出力する。論理回路の基本素子です。
実際に使われる関数
モデルによっては、少し修正した関数が使われます。GELUと呼ばれるもので、基本的な形は同じですが、もう少し滑らかです。
ここでの目的では、ReLUだけを考えるほうが明快です。
ニューロンという言葉
補足しておきます。
Transformerのニューロンと言ったとき、指しているのはこの値です。
ニューラルネットワークの図で、点の層と前の層への多数の線が描かれているものを見たことがあるでしょう。この連載の最初のほうでも扱いました。
あの図が表しているのは、線形の段階(行列の掛け算)と、それに続く単純な要素ごとの非線形関数(ReLUなど)の組み合わせです。
| 状態 | 条件 |
|---|---|
| 活性 | 値が正 |
| 不活性 | 値が0 |
練習問題6
ReLUを通す前と後で、次の値がどう変化するか答えてください。
解答を示します。
負の値と0を0にし、正の値はそのまま残します。
活性なニューロンは、第1成分と第4成分の二つです。
補足します。5個のうち2個だけが活性という状態は、実際のモデルでもよく見られます。
多くのニューロンが0になることを、スパース性といいます。この性質が、効率的な計算につながる場合があります。
練習問題7
線形の処理だけでは不十分な理由を、Michael Phelpsの例を使って説明してください。
解答を示します。
線形の処理では、部分的な一致にも部分的に反応してしまいます。
という計算は、名だけが一致する場合にも1という正の値を返します。概念的には無関係であるにもかかわらず、反応してしまいます。
バイアスとReLUを組み合わせることで、両方が一致する場合にのみ正の値を残し、部分的な一致は0に切り落とせます。
補足します。これが、非線形関数が必要な理由の一つです。
条件の組み合わせを判定するには、線形の計算だけでは足りません。しきい値を設けて切り落とす操作が必要になります。
7 第二段階 下向きの行列
最初とよく似ている
次の段階は、最初とよく似ています。
非常に大きな行列を掛け、バイアス項を足します。
次元が戻る
今回は、出力の次元数が埋め込み空間の大きさに戻ります。
したがって、下向き投影行列と呼びます。記号では とします。
列ごとに見る
今度は、行ごとではなく列ごとに考えるほうが適しています。
行列の掛け算を捉えるもう一つの方法があります。
行列の各列を取り出し、処理中のベクトルの対応する項と掛けます。そして、そうして倍率を変えた列をすべて足し合わせます。
なぜ列で考えるのか
理由があります。
ここでは、列が埋め込み空間と同じ次元を持っています。したがって、列を埋め込み空間の方向として考えられるのです。
一列目に何が入っているか
モデルが、一列目をバスケットボールの方向にすることを学習したと想像してください。
すると、次のことが起きます。
| 第一のニューロン | 結果 |
|---|---|
| 活性(正の値) | バスケットボールの方向が最終結果に足される |
| 不活性(0) | 何も起きない |
バスケットボールだけではない
この列には、他の特徴も焼き込めます。
フルネームがMichael Jordanである何かに関連づけたい特徴を、いくつでも含められます。
シカゴ・ブルズ、背番号23、1990年代、といった情報も、同じ列に含まれるかもしれません。
他の列も同様
同時に、この行列の他のすべての列も、対応するニューロンが活性なら何が最終結果に足されるかを示しています。
バイアスの役割
この段階にもバイアスがあります。
こちらは、ニューロンの値にかかわらず、毎回足されるものです。
何をしているのでしょうか。パラメータで満たされたものの常で、正確には言えません。ネットワークが必要とする何らかの帳尻合わせかもしれません。今は無視して構いません。
最後の処理
この最終結果を、ブロックに流れ込んできたベクトルに足します。
例で確認する
流れ込むベクトルが、名が塁と姓が八村の両方を符号化していたとします。
一連の処理がANDゲートを起動し、バスケットボールの方向が足されます。
出てくるベクトルは、それらすべてを符号化していることになります。
練習問題8
下向き投影行列を、行ではなく列で考えるほうが適している理由を説明してください。
解答を示します。
列の次元が、埋め込み空間の次元と一致するためです。
したがって、各列を埋め込み空間内の一つの方向として解釈できます。ニューロンが活性なとき、その列が表す方向が結果に足されます。
行で考えると、この解釈ができません。行の次元は中間層の次元であり、埋め込み空間とは対応しないためです。
補足します。上向き行列と下向き行列で、見方が逆になります。
| 行列 | 見方 | 解釈 |
|---|---|---|
| 上向き | 行 | どんな問いを投げるか |
| 下向き | 列 | 何を足すか |
この対比を押さえると、構造が整理されます。
練習問題9
中間層のニューロンの値が で、下向き行列の各列が次の通りのとき、出力を求めてください。
バイアスは考えません。
解答を示します。
各列に、対応するニューロンの値を掛けて足します。
第1成分です。
第2成分です。
出力は です。
補足します。第2のニューロンは不活性だったため、 は結果に寄与しませんでした。
活性なニューロンに対応する列だけが、結果に足されます。
8 処理の全体像
まとめると
多層パーセプトロンの処理は、これだけです。
| 段階 | 内容 |
|---|---|
| 1 | 上向き行列を掛け、バイアスを足す |
| 2 | ReLUを通す |
| 3 | 下向き行列を掛け、バイアスを足す |
| 4 | 元のベクトルに足す |
行列積が2回、それぞれにバイアスが加わり、間に単純な切り落とし関数がある。それだけです。
見覚えがあるはず
この連載の最初のほうを読んだ方は、この構造に見覚えがあるでしょう。
手書き数字を認識するために扱った、最も基本的なニューラルネットワークと同じです。
何が違うのか
違いは、置かれている文脈です。
手書き数字の例では、それ自体が完結したネットワークでした。
こちらでは、より大きな構造の中の一部品です。そして、何をしているかを解釈しようとすると、高次元埋め込み空間に情報を符号化するという考え方と深く絡み合います。
ニューロンの数
GPT-3の数字で考えます。
このブロックには、50,000個のニューロンがあるだけではありません。
各トークンについて、それぞれ50,000個のニューロンが計算されます。
練習問題10
入力が1,000トークンの場合、GPT-3の多層パーセプトロンブロック1個で計算されるニューロンの総数を求めてください。中間層の次元を49,152とします。
解答を示します。
掛け算を実行します。
約4,915万個です。
補足します。これは1ブロック分です。
GPT-3には96層あるため、全体では次の通りです。
約47億個のニューロンの値が、1回の推論で計算されます。
9 パラメータを数える
この連載で続けてきた集計を、ここで完成させます。
上向き行列
行数は50,000弱、各行の大きさは埋め込み空間の次元12,288です。
約6億400万個です。
下向き行列
同じ数のパラメータを持ちます。形が転置になっているだけです。
ブロック1個分
合計します。
約12億個です。
バイアスベクトルも数個分のパラメータを加えますが、全体に占める割合はごくわずかなので、表示しません。
全体
GPT-3では、埋め込みベクトルの列が96個の異なる多層パーセプトロンを流れます。
約1,160億個です。
全体に占める割合
約3分の2です。
集計を完成させる
これまでの連載で数えたものを、すべて並べます。
| 部分 | パラメータ数 |
|---|---|
| 埋め込み | 約6億 |
| 逆埋め込み | 約6億 |
| アテンション | 約580億 |
| 多層パーセプトロン | 約1,160億 |
| 合計 | 約1,750億 |
宣伝されている通りの1,750億個になりました。
補足
正規化の処理に関連するパラメータも存在します。この説明では省略しました。
バイアスベクトルと同様、全体に占める割合はごくわずかです。
練習問題11
アテンションのパラメータが約580億個、多層パーセプトロンが約1,160億個です。後者が前者の何倍か求めてください。
解答を示します。
割り算を実行します。
2倍です。
補足します。注目を集めているのはアテンションですが、量としては多層パーセプトロンが主役です。
論文のタイトルが「Attention is All You Need」であったことから、アテンションだけで成立しているような印象を持たれがちです。しかし、実際にはパラメータの3分の2が、この単純な構造に使われています。
10 本当にこうなっているのか
ここからが、この記事で最も重要な部分です。
正直に述べる
ここまで時間をかけた具体例は、実際の大規模言語モデルにおける事実の蓄え方を反映しているのでしょうか。
数学的に正しい部分
確かに正しいことがあります。
一つ目は、最初の行列の行を埋め込み空間内の方向として考えられることです。したがって、各ニューロンの活性度は、あるベクトルが特定の方向とどれだけ揃っているかを示します。
二つ目は、二つ目の行列の列が、そのニューロンが活性なときに結果へ何が足されるかを示すことです。
どちらも、単なる数学的事実です。
しかし
証拠が示唆するところによれば、個々のニューロンが「八村塁」のような単一のきれいな特徴を表すことは、めったにありません。
そして、そうなる理由があるかもしれません。
重ね合わせという仮説
解釈可能性の研究者の間で議論されている考え方があります。重ね合わせ(superposition)と呼ばれます。
この仮説は、二つのことを同時に説明するかもしれません。
| 説明したいこと |
|---|
| なぜモデルの解釈が特に困難なのか |
| なぜ規模の拡大が驚くほどうまくいくのか |
基本的な考え方
次元の空間があるとします。
多数の異なる特徴を、互いに直交する方向で表したいとします。直交していれば、ある方向の成分を足しても、他の方向に影響しません。
このとき、収められるベクトルの最大数はいくつでしょうか。
個です。次元数と同じです。数学者にとって、これは次元の定義そのものです。
制約を緩めると
面白くなるのは、この制約を少し緩めたときです。
多少の雑音を許容するとします。特徴を表すベクトルが、厳密に直交していなくてもよいことにします。ほぼ直交していればよい、たとえば89度から91度の間であればよい、とします。
低次元では変わらない
2次元や3次元では、これは何の違いも生みません。
余分なベクトルを収める余地が、ほとんど増えません。
高次元では劇的に変わる
だからこそ直感に反するのですが、高次元では答えが劇的に変わります。
実験で確かめる
簡単な実験があります。
100次元のベクトルを10,000本、ランダムに作ります。次元数の100倍の本数です。
これらのペアの間の角度の分布を調べます。
ランダムに作ったので、角度は0度から180度の間のどこでも取り得ます。しかし、すでにこの段階で、90度に近い値に偏る傾向があります。
最適化する
次に、これらのベクトルを互いにより直交させるよう、少しずつ動かす最適化を行います。
何度も繰り返した後の角度の分布を見ると、拡大しなければ分からないほどになります。
すべてのペアの角度が、89度から91度という狭い範囲に収まります。
数学的な背景
一般に、ジョンソン・リンデンシュトラウスの補題として知られる結果の帰結があります。
このようにほぼ直交する形で空間に詰め込めるベクトルの数は、次元数に対して指数関数的に増加します。
言語モデルにとっての意味
これは、大規模言語モデルにとって非常に重要です。
独立した概念を、ほぼ直交する方向に対応づけることで利益を得られるかもしれないからです。
つまり、割り当てられた空間の次元数よりも、はるかに多くの概念を蓄えられるということです。
規模の効果
これは、モデルの性能が規模とともによく向上するように見える理由を、部分的に説明するかもしれません。
10倍の次元を持つ空間は、10倍よりはるかに多くの独立した概念を蓄えられます。
ニューロンにも当てはまる
この話は、モデルを流れるベクトルが住む埋め込み空間だけの話ではありません。
いま学んだ多層パーセプトロンの中央にある、ニューロンで満たされたベクトルにも当てはまります。
何を意味するのか
GPT-3の規模では、50,000個の特徴を探っているだけではないかもしれません。
ほぼ直交する方向を使ってこの巨大な追加容量を活用しているなら、処理中のベクトルのはるかに多くの特徴を探っている可能性があります。
解釈が難しい理由
しかし、そうしているとすれば、何が起きるでしょうか。
個々の特徴が、単一のニューロンが光るという形では見えなくなります。
複数のニューロンの特定の組み合わせとして現れることになります。これが重ね合わせです。
さらに学ぶには
関連する重要な検索語があります。疎なオートエンコーダ(sparse autoencoder)です。
解釈可能性の研究者が、多数のニューロンに重ね合わされた真の特徴を取り出すために使う道具です。
練習問題12
100次元の空間に、互いに厳密に直交するベクトルは最大何本収められますか。また、ほぼ直交でよい場合はどうなりますか。
解答を示します。
厳密に直交する場合は、100本です。次元数と一致します。
ほぼ直交でよい場合は、はるかに多く収められます。ジョンソン・リンデンシュトラウスの補題によれば、その数は次元数に対して指数関数的に増加します。
補足します。この事実は、直感に反します。
2次元や3次元では、多少の許容を加えても収められる本数はほとんど変わりません。高次元で劇的に変わるという点が、押さえるべき要点です。
練習問題13
重ね合わせの仮説が正しいとすると、モデルの解釈がなぜ困難になるか説明してください。
解答を示します。
一つの特徴が、単一のニューロンではなく、複数のニューロンの組み合わせとして表現されるためです。
あるニューロンの値を観察しても、それが何を表しているかを特定できません。複数の特徴が同じニューロンに重ね合わされている可能性があります。
補足します。この課題に対処する手法が、疎なオートエンコーダです。
重ね合わされた状態から、個々の特徴を分離して取り出そうとする試みです。ただし、抽出された特徴が本当にモデルの内部表現に対応しているかという問題は残ります。
11 研修での教え方
このテーマを扱う場合の設計案です。
90分の構成
| 時間 | 内容 | 形式 |
|---|---|---|
| 5分 | 事実はどこにあるのかという問い | 講義 |
| 10分 | ブロックの構造。並列に処理される | 講義 |
| 15分 | 上向き行列。行ごとに見る。練習問題4 | 講義と個人 |
| 10分 | バイアスとReLU。ANDゲート。練習問題7 | 講義と個人 |
| 15分 | 下向き行列。列ごとに見る。練習問題9 | 講義と個人 |
| 10分 | パラメータの集計。練習問題11 | 個人 |
| 15分 | 重ね合わせの仮説 | 講義 |
| 10分 | まとめと質疑 | 講義 |
教える順序の考え方
三つ、意識してください。
一つ目は、具体例で通すことです。
八村塁の例を、最初から最後まで使ってください。抽象的な説明だけでは、行列の役割が頭に残りません。
二つ目は、行と列の見方の切り替えを明示することです。
上向き行列は行で、下向き行列は列で見る。この切り替えが、この記事の理解の鍵です。表にして示してください。
三つ目は、最後に必ず「実際は違う」と伝えることです。
具体例は原理を示すためのものです。実際のニューロンがきれいな特徴に対応することはまれだという事実を、省略しないでください。
つまずきやすい点
四つあります。
一つ目は、行と列の見方の混同です。
なぜ途中で見方を変えるのか、理由を説明してください。次元が埋め込み空間と一致するかどうかが基準です。
二つ目は、バイアスの という仮定です。
なぜその値を仮定するのか、先に示してください。ANDゲートを実現するためのしきい値だと説明すると納得されます。
三つ目は、ニューロンという言葉です。
Transformerのニューロンが、中間層の値を指すことを明示してください。図で見る丸印と対応することも伝えると、これまでの知識とつながります。
四つ目は、重ね合わせの直感です。
高次元で何が変わるのかが、直感に反します。100次元で10,000本という実験の数字を示すと、伝わりやすくなります。
想定される質問
質問1 事実の書き換えはできますか。
回答します。研究レベルでは、特定の事実を編集する手法が提案されています。ROMEやMEMITといった名前で知られています。ただし、副作用の制御が難しく、実用には課題が残ります。
質問2 なぜ中間層が4倍なのですか。
回答します。設計上の選択です。大きいほど表現力が増しますが、パラメータも増えます。きれいな倍数がハードウェアと相性が良いという事情もあります。
質問3 ReLUとGELUはどちらが良いのですか。
回答します。近年のモデルではGELUやその派生が多く使われます。滑らかであるため、学習が安定しやすいとされています。ただし、原理を理解するうえではReLUのほうが明快です。
質問4 事実はすべて多層パーセプトロンにあるのですか。
回答します。研究が示唆しているのは、事実の想起に多層パーセプトロンが重要な役割を果たすということです。ただし、完全な解明には至っていません。アテンションも、関連する情報を集める段階で関与しています。
まとめと次の学習ステップ
多層パーセプトロンの計算は、驚くほど単純です。
上向き行列を掛けてバイアスを足し、ReLUを通し、下向き行列を掛けてバイアスを足す。最後に、元のベクトルに足す。それだけです。
見方の切り替えが理解の鍵になります。上向き行列は行ごとに見て「どんな問いを投げるか」を読み、下向き行列は列ごとに見て「何を足すか」を読みます。
具体例では、フルネームを判定するANDゲートが作れることを見ました。 という行とバイアス
、そしてReLU。この三つで、両方が一致したときにだけ1を出す仕組みができます。
パラメータ数では、この部分が主役です。GPT-3で約1,160億個、全体の約3分の2にあたります。アテンションの2倍です。
ただし、実際のニューロンが具体例のようにきれいな特徴に対応することは、めったにありません。重ね合わせという仮説が、その理由を説明するかもしれません。
高次元空間では、ほぼ直交する方向を次元数よりはるかに多く取れます。この性質を活用しているなら、50,000個のニューロンで50,000個以上の特徴を表現できることになります。そして、個々の特徴は単一のニューロンではなく、組み合わせとして現れます。
これが、モデルの解釈が難しい理由であり、同時に規模の拡大がうまくいく理由かもしれません。
次の学習ステップとして、三つを提案します。
一つ目は、疎なオートエンコーダについて調べることです。重ね合わされた特徴を取り出す試みとして、現在最も注目されている手法です。Anthropicが公開している解説記事が、入口として適しています。
二つ目は、高次元の直交性を自分で確認することです。この記事で紹介した実験は、数十行のコードで再現できます。100次元に10,000本のベクトルを配置し、角度の分布を描いてみてください。直感が覆ります。
三つ目は、学習の詳細に進むことです。言語モデル固有のコスト関数、人間のフィードバックによる強化学習、そしてスケーリング則。残っているのは、この部分です。
これまでの連載で、構造、学習、逆伝播、言語モデルの入口と出口、アテンション、そして多層パーセプトロンを追ってきました。Transformerの主要な部分は、ひと通り見終えたことになります。
セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。
最新の投稿
新人エンジニア研修講師2026年9月20日多層パーセプトロンはどこに知識を蓄えているのか GPTのパラメータの3分の2
新人エンジニア研修講師2026年9月20日アテンション機構を理解する クエリ、キー、バリューの正体
新人エンジニア研修講師2026年9月20日GPTの中身を追う 埋め込みからSoftmaxまで
新人エンジニア研修講師2026年9月20日大規模言語モデルは何をしているのか 次の単語を予測する仕組み
