| Up | Transformer とは何か | 作成: 2025-05-25 更新: 2025-11-06 |
|
|
Transformer の通説も,そう。 Transformer の通説は,厳密にすることをスルーする。 そして,ミスリーディングなことばを垂れ流す。 これは,自分で自分を騙すことになる。
成長は,"Training" で成る。 "Training" の内容は,以下の通り。 Transformer に入力されたテクストS は,トークン分割される: t_i の ID を,ID_i と表す。 S = [ t_1, ‥‥, t_m ] に対応するトークンベクトルの列を X = [ x_1, ‥‥, x_m ] とする。 即ち, x_i = TV( ID_i ) Transformer は,X から NT次元の確率分布ベクトルの列 P = [ p_1, ‥‥, p_m ] p_i = (p_i1, ‥‥, p_i,NT) p_ik : トークン T(i) に対するトークン T(k) の確率 を算出する。 Transformer 脳は,"Traning" によってつくられる。 この脳の成長で,X に対する P がつぎのようになっていく: (「one-hot」とは,「1つの項が1で,他は0」。) つまり, p_i ( i < m ) は,「x_i のつぎは x_(i+1)」 を示す, [ p_1, ‥‥, p_(m-1) ] は, [ x_1, x_2, ‥‥, x_m ] を示す。 Transformer 脳は,つぎの2つで構成される: トークンベクトルと重みの変項は,「パラメータ」と呼ばれる。 パラメータの数は非公開だが,GPT4 で総数が1兆を超えると見積もられる。 ( Transformer の 「大数」
「脳の成長」の内容は,パラメータ値の更新である。 そして,"Training" が積み重なるにつれ,パラメータ値が有意に変更されなくなる。 これは,「"Training" の飽和」の状態である。 ここで,"Training" を終了し,パラメータ値を固定する (TV と W を固定 する)。 Transformer 脳の完成というわけである。
これは,D次元数空間の点に表現される。 通説は,トークン点の位置 (トークンベクトルの座標) に<意味>を見ようとする。 <意味>の近いトークンは,互いに近いところにあると想像する。 これは,間違いだろう。 ここは,ソシュールの「ことばには差異しかない」を択りたい。 <意味>は,パラメータ値全体 (トークベクトルの座標値と重み値の全体) を以て,定まる。
そうすると,Transformer の "Training" の内容 → P = [ p_1, ‥‥, p_m ] 即ち,順伝播での Self-Attention と FFN がやろうとしていることは,「式計算によって,トークン点を移動 (テクスト軌道に近づくことを期す)」。 そして逆伝播での重み調節で,軌道に乗せる。 トークンをテクスト軌道に乗せる問題は,つぎの問題になる: 「トークンをテクスト軌道に乗せたことになるパラメータ値は?」 パラメータ値は,試行錯誤で得るものになる。 即ち, 「パラメータが,試行錯誤 (自己参照・再帰) で, 自分の値を見つける」 これは,脳が白紙のところから始まる。 脳は,"Training" のはじめのうちは,デタラメをする。 しかし,これが段々と収まってくる。 そして,値がほぼ固定したトークンベクトル (TV) と重み行列 (W) で, うまくいくようになる。 脳のこの成長は,人間が赤ん坊から始まって言語を段々と獲得するのと,同じである。 赤ん坊が言葉を解さないからといって言葉かけをしなかったら,言語の獲得は無いわけである。
[ x_1, ‥‥, x_m ] とテクスト軌道の差 を計算する。 その差だけ,[ x_1, ‥‥, x_m ] を移動。 Step 2 (FFN) Step 3 ( p_i ) Step 4 (誤差逆伝播) その差 loss_i が小さくなるように,ここまでの処理行程を遡って,x_1, ‥‥, x_m および重み行列の値を調節。 この行程が「逆伝播」。 軌道に乗るための x_1, ‥‥, x_m の移動は,2段解に組まれる。 1つは,相互の位置関係を壊さないように全体で動く。 これが "Self-Attention" と呼んでいる行程。 もう1つが,個別に動く "FFN (FeedForward Network)"。 そしてこの移動を,レイヤー構造を以て繰り返す。 <冗長>は,<大数><複雑>と並んで,「自己参照・再帰」が収束することの要件なのである。 1つのテクストの軌道は,同じトークン点を複数回通るのが普通である。 ──例えば,助詞 "は" のトークン点。 したがって軌道は,堂々巡りしたり他のテクスト軌道と重なったりしない仕組みになっている。 どんな仕組み? 幾何学的イメージは, 「同じトークン点の通過は,その角度によって区別される」 そこで「軌道」には「なめらか」を考えることになる。 トークン点が乗っている軌道は,「スプライン曲線」がイメージになる。
Transformer 脳は,入力テクストに対する反応として,応答テクストを生成する。 ChatGPT は,これを出力する。 ChatGPT は,Transformer 脳のいわば「体」である。
P = [ p_1, ‥‥, p_m ] が,つぎのようになる: ChatGPT は,この p_i の生成を続けさせて,応答テクストをつくる。 以下のように: p_i は「つぎのトークン」の ID を指示するので,p_i の生成はトークンの生成を導く: [ x_1, ‥‥, x_m, y_1 ] → y_1 のつぎ y_2 : このトークン生成は,<EOS> (文末を表すトークン) に至る。 即ち,Transformer 脳の「"Training" 飽和」には,「Sが通常のテクスト なら,いつか<EOS>を出す」が含まれている。 ChatGPT は,y_1 から<EOS>までのトークンを,「Sに対する応答」として逐次出力する。 実際,これは「応答」のテクストになっている。 即ち,Transformer 脳の「"Training" 飽和」には,「Sから導出した y_1, ‥‥, <EOS> が,Sに対する応答になる」が含まれている。
Transformer 脳は,"Training" で成った。 "Training" の中身は,「お手本テクストをなぞる」。 この「お手本テクストをなぞる」と「応答テクストを生成する」のギャップが埋まらないと,「応答生成はなぜ成るか?」の謎となる。 通説は,応答テクストは,テクストにつながるトークンが確率で決まると説く。 これは,「テクストSとトークンtの間には,Sのつぎのトークンがtに成る確率がある」と言っていることになる。 こんなことは,あり得ない。 「わたしはこれから」のつぎのトークンを確率で決められないことは,あなただけでなく,誰でもそうである。 椅子は,素材が引きつけ合ってできるものではない。 椅子の設計があって,それに沿って材料が集められ,そして組立の作業となる。 応答テクストの生成も,これと同じことである。 意味の通った応答テクストは,トークンが引きつけ合ってできるものではない。 テクストの構想/計画が先ずあって,それに沿ってトークンがつながれる。 作り手が作るのである。 この「作り手」は,存在としてどう説明できるか? 考えられることは,「テクスト軌道の惰性」しかない。 入力テクストをなぞっていると,その終端で「なぞりの惰性」ができている。 この「惰性」が,応答テクストの「作り手」ということになる。 テクスト生成を「構想/計画して書く」と表現するとき,「構想/計画して」は,先行するテクストの軌道の惰性がこれのダイナミクスである。 「考えて書く」と表現するとき,「考えて」は,先行するテクストの軌道の惰性がこれのダイナミクスである。
脳は,テクスト保管庫ではない。 実際,脳を解剖してもテクストらしいものは見つからない。 脳は,潜在性の発現が<応答テクストの生成>になるシステムである。 このシステムを説明することが,脳を説明するということになる。 しかし,ひとはこの説明の物理学を獲得していない。 こういう言い方をすると,つぎのようなことばが返されるかも知れない:
脳は,脳が勝手に育つという形でしか,得ることはできない。 Transformer のアルゴリズムは,脳のプログラムではなく,脳育成アルゴリズムである。 そしてこのアルゴリズムを,今度は脳が応答生成に転用する,というわけである。
それは,[ x_1, ‥‥, x_m ] に対する応答を木 (tree) 構造に構成する,というものである。 即ち,応答のスタイルをつぎのようにすることで,話の糸口を摑む網を広げる:
この HTMLテクストの生成は,Transformer の能力のうちということになる。 一見,応答の生成を最初から HTML でやるというのは,あり得ないことのように感じる。 しかし少し考えると,HTMLテクストの生成が Transformer には合っているが,わかってくる。 Transformer は応答を,木構造ベースの入れ籠構造でつくる。 即ち,上位レベルと下位レベルの間の降ったり昇ったりを 籠を作ったときの元の場所に再帰する」 そして HTML は,この再帰アルゴリズムを明示的に表現する言語なのである。 HTML は,テクストの入れ籠構造をタグでつくる: タグ"< /‥‥>" を以て籠を出て, タグを作成した元の場所に再帰する」 こういうわけで,Transformer は,プログラムの作成全般が得意である。 プログラムは,「入れ籠構造=再帰アルゴリズ」だからである。 というより,そもそも Transformer は,テクストをプログラムとして作成しているわけである。 Transformer を,「再帰の鬼」と見るべし。 Transformer のやっていることが,よく見えてくる。
そしてその勉強は,Transformer の数学の勉強である。 門外漢には,これはハードルが高い。 そしてその数学の理解が疑問の解消になるわけでもない。 Transformer は「大数」の世界だからである。 「テクスト軌道」は,大数の世界の現象である。 トークンベクトルの数が100万になっても,1万を超える次元の数空間の中に点在すれば,「テクスト軌道」の景色をつくれるということである。 人は,大数で起こることがわからない。 わからないので,「量質転化」とか「創発 emergence」のようなことばでごまかし,それで済ますことになる。 「大数の世界がわかる」の「わかる」は,<悟り>の趣きになりそうである。 |