Up | 「教師あり」の意味 | 作成: 2025-06-13 更新: 2025-06-13 |
そして,この2つのトークンベクトル列を突き合わせるアルゴリズムにかける。 これが,「応答」の概念の注入になる。 また,「応答」の概念が獲得されるにつれ,このプロセスは,応答パターンを覚えさせるものになる。 で,質問と応答の2つのテクストを突ぎ合わせるアルゴリズムだが,これの概略を以下に示す。 なお,このアルゴリズムが動くプロセスは,「デコーダ」の内容と位置づけられている。 質問テクストは,エンコーダに入力されて,トークンベクトルの列 X = ( x_1, x_2, ‥‥, x_m ) に表現される。 ここで,x_i は,質問テクストの i 番目のトークに対応するトークンベクトルに「i番目」の位置エンコーディングを加算したものである。 X は,まだ Transformer のテクストではない。 Transformer のテクストになるのは,Self-Attention の処理をくぐった後である。 応答 (正答) テクストが,デコーダに入力されて,トークンベクトルの列 Y = ( y_1, y_2, ‥‥, y_n ) に表現される。 X をデコーダに入力する。 学習のアルゴリズムは,つぎのようになる: Q^(k) = H^(k) W_Q, K^(k) = H^(k) W_K, V^(k) = H^(k) W_V FFN( X ) = ReLU( X W1 + b1) W2 + b2 最終出力を O とする。 ・誤差逆伝播 H^(n) がつぎのようになる: H^(n) = ( H^(n-1k), y_n, <EOS>) k = n が終わって,( X, Y ) の回の終了となる。 新しい質問・応答テクストに替えて,入力から同じことを繰り返す。, なぜ,こんな面倒なアルゴリズムにしたのか: 《 応答文の方は,1トークン/サブワードずつ加える 》 では逆に,質問文と応答文を並べたテクストを1度に入力するやり方だと,「応答」の概念を獲得できるだろうか? 応答文を生成できるよういなるだろうか? 実際,人間でも,<見てわかる>と<書ける>は大違いである。 TV が入力テクストを吸収することは,そのテクストを「先頭から末尾へ続く系列」として構造化することとは,違うのである。 そこで,「応答文の方は,1トークン/サブワードずつ加える」は,テクストを「先頭から末尾へ続く系列」として教えていると解釈できる。 ただし,このやり方でうまくいっていることは,このやり方が絶対だということではない。 ちなみに,通説は《1トークン/サブワードずつ加える》を「連想ゲーム」だと説明する。 k → k+1 だと,通説はつぎのように言う: はじめから,y_1, ‥‥, y_n の順番で続けることになっているから,y_k のつぎは y_(k+1) なのである。 学習アルゴリズムのどこにも「連想ゲーム」は存在していない。 そして,意味の確率分布で "y_k" の次が "y_(k+1)" となるはずもない。 |