Up | 通説「Self-Attention で応答生成」の没論理 | 作成: 2023-06-09 更新: 2025-06-09 |
そして,わたしにとってこれは現在,どうしてもわからないところである。 通説は,「Self-Attention で応答生成」をとう説くか? 「Self-Attention で応答生成」を ChatGPT に質問すると,つぎのような応答になる:
表現その2
表現その3
表現その4
しかし,この説明ではわからない。 この説明では,つぎの内容が不明である:: B.「動的意味再構成」「事前学習された対話パターン」が合成」 「形式的には同じ・意味機能は構造的に変質」 不明は,1つずつ明らかにするのみ。 論点の拡散が,この場合最も警戒せねばならないことだからである。 そこで,先ず A から。 通説は,ChatGPT の Self-Attention は,Transform の Self-Attention と同じであると説く。 そこで,「末尾に追加するトークンの生成」の中身を考える。 Transform の Self-Attention は,トークンベクトルの順序列 t = ( t_1, t_2, ‥‥ , t_n ) t_i = (t_i1, t_i2, ‥‥, t_iD ), i = 1, ‥‥, n に作用する。 ここでわたしは,「Self-Attention の出力」で,早くもに躓く。 「Self-Attention の出力」が具体的に何を指すのかを,まだ押さえていないのである。 いまは,これは「後ではっきりさせること」と留保して, 「Z か O なんだろう」 で収めて,論を進める。 Transforemer は,中間出力ないし最終出力として, t と同じ長さ──即ち長さn──の D次元ベクトル列を生成する。 中間出力であれ最終出力であれ,Transformer において t に対し生成されるのは,長さnのD次元ベクトル列である。 ここが,要点になる。 なぜなら,「1トークンずつ生成・末尾に追加」の1トークンはどこ?という話になるからである。 t に対する出力を t = ( t_1, t_2, ‥‥ , t_n ) → t' = ( t'_1, t'_2, ‥‥ , t'_n ) としよう。 この場合, 「1トークンずつ生成・末尾に追加」はどう解釈するのが自然だろうか? ( t_1, t_2, ‥‥ , t_n ) → ( t_1, t_2, ‥‥ , t_n, t'_n ) だろうか? わたしは,ここで完全にストップである。 推理不能になる。 通説の答えを待ち,どんな答えをするかを見て,それから考え始めるしかない。 しかしそれでも,ここは,<1つはっきりさせておくべきこと>を述べるところである。 それは,つぎのことである: <先行するトークン列に確率統計的につながることになるトークン> をつなげているのではない。 そのトークンは, <これから現れる文の中のトークン> として,先行するトークン列につなげるのである。 少し先の未来から来るのである。 ChatGPT は,箇条書きや表を多用する。 箇条を示すために,箇条の頭にドットや順番の数字をつける。 表にするために,枠組をつくる。 この表現は,「箇条書きにする」「表にする」という計画から来るのである。 「先行する語彙列を見てつぎにつなぐ語彙を確率統計的に決める」では,ChatGPT の構成的な応答テクストは,絶対にできない。 通説の「1トークンずつ生成・末尾に追加」は,末尾につけるトークンが先行するトークン列から導かれるうように読めてしまう。 したがって,通説はつぎのどちらかということになる: ・言葉足らず (肝心なことを抜かしている) |