Transformer のトークンベクトル集合体 TV は,学習済みの段階で「記憶脳」に成長している。
これは,厖大な知識と質問応答パターンを,生成的に記憶している。
「生成的に」といううところが肝心である。──丸暗記ではない。
ChatGPT では,「RLHF (Reinforcement Learning from Human Feedback)」といって,「望ましい言葉遣い」の学習が加えられる (Transformer の TV および重み行列の固定はこのとき一旦解除されることになる)。
しかしこれは,本題と本質的に関わるものではないので,触れない。
「応答生成のしくみ」について,通説はつぎのような言い方を用いる:
「 |
Transformer の Self-Attention をそのまま使う。
Encoder-Decoderモデルではなく,Decoder-only モデル。
応答生成は,自己回帰的 (auto-regressive)。
つまり,つぎのループ:
1トークンずつ生成 → 末尾に追加 → 再度推論
<次のトークン>は,意味の確率分布から決まる。」
|
しかし,「<次のトークン>は意味の確率分布から決まる」は,受け入れ難い。
意味の確率分布は,極く緩やかなものである。
<次のトークン>を決めるようなリジッドなものではない。
そして,そもそもこのようなやり方では,「構成的な応答」にならない。
通説は,この論難にどう返すか?
つぎのようである他ない:
Transformer の記憶 (TVと重みの構造) は, 「構成の記憶」。
「1トークンずつ生成」は,「構成の記憶」がもと。
よってこれは,「構成的な応答」になる。
しかしこのときは,「1トークンずつ生成」の意味が変わる。
即ち,「構成した応答を記す=1トークンずつ記す」が,「1トークンずつ生成」の意味になる。
通論にとってこれは,「トークンの連想」の立場を捨てることである。
実際,ロジックとしては,こうなるしかない。
そこで,「ChatGPT の応答生成のしくみがわかる」の形は:
「トークン生成のアルゴリズムがわかる」
──このアルゴリズムを「アルゴリズム?」と呼ぶ。
そしてこの「わかる」のためには,意味論に一旦蓋をすることが必要である。
意味論は,「意味の過剰」に走り,論点を紛らわし拡散する危険が大だからである。
- 「ChatGPT の応答生成」のわたしの推理
ChatGPT が Decoder-only であり,自己回帰的に応答を生成することは,自ずとそうなるというものである。
Transformer の「応答」学習では,質問テクストを Encoder に入力しているが,Encoder のこの使用は本質的はない。
なぜなら,質問テクストの Encoder 入力層出力は Decoder に入力され,応答テクストの Decoder 入力層出力と一緒になるからである。
こうであれば,質問テクストと応答テクストを最初から一緒に Decoder に入力すればよいわけである。
そして,Decoder の中でのトークン生成は,「自己回帰的」である。
したがって,「自己回帰的」を ChatGPT のトークン生成の特徴のように言うのは,適当でない。
Transformer の「応答」学習での応答生成は,つぎのようになっていた:
質問テクストの Encoder 入力層出力:X
応答テクストの Decoder 入力層出力:Y = ( y_1, y_2, ‥‥, y_n )
1゜( k = 0 )
H^(0) = ( X, <BOS> )
ここで "<BOS>" (Beginning Of Sentence)は 文頭記号。
2゜( k → k+1 )
Self-Attention:
Q^(k) = H^(k) W_Q,
K^(k) = H^(k) W_K,
V^(k) = H^(k) W_V
Z = softmax( Q K^T /√D ) V
Feedforward + 残差接続 + LayerNorm :
FFN( X ) = ReLU( X W1 + b1) W2 + b2
これをレイヤーの数だけ繰り返す。
最終出力を O とする。
O に対し, 「教師あり」の処理をする:
・正解表と照合 → 誤差(得失)計算
・誤差逆伝播
H^(k+1) = ( H^(k), y_(k+1) )
ChatGPT は,「Yが空」の場合になる。
したがって,「ChatGPT は Transformer をそのまま使う」は正しくない。
2゜の中に,y_(k+1) を出力するアルゴリズム (「アルゴリズム?」) が存在している。
「アルゴリズム?」を明らかにせねばならない。
わたしは,H^(0) = ( X, <BOS> ) の最終出力 O に,TV が「応答生成」を以て反応するのだと思う。
そして生成した応答を,「アルゴリズム?」の度に,1トークンずつ小出ししていく。
しかしここでわたしが悩むのは,TV が固定となっていることである。
「TV 固定」では,「TV が応答を生成する」を想像できない。
そこでわたしは,つぎのように推理する:
「応答モードの ChatGPT は,本当は TV 固定でないのかも」
このように思うのは,ChatGPT の「前行性健忘症」仕様を見ているからである。
ChatGPT は,セッションが終わると,デフォルトにリセットされる。
ということは,セッション中は TV が可変ということなのではないか?
|