見出し画像

トランスフォーマーの自己アテンションの理解⑧デコーダ・ブロックの詳細

本シリーズの記事リスト



この記事では、デコーダ・ブロックの詳細を解説をします。論文の図1の右側になります。

論文「Attention Is All You Need」の図1

特に、デコーダ・ブロックの内部にあるマスクされたマルチヘッド・アテンション(Masked Multi-head Attention)ソースターゲットのアテンション(Source-Target Attention)を重点的に解説します。

では、さっそく始めましょう。

デコーダによる自己回帰

第五弾で解説しましたが、まずはデコーダによる自己回帰の仕組みを簡単に復習します。そのほうが後の話がわかりやすくなります。

トランスフォーマーではエンコーダ・ブロックとデコーダ・ブロックが多階層に連なっており、自己アテンションのプロセスを何度も踏むことで文脈が各トークンへと吸収されていきます。

多階層になっているエンコーダとデコーダ

デコーダは自己回帰によって翻訳の出力文章を積み上げていきます。デコーダへの最初の入力は、文章の始まりを意味する<SOS>(Start Of Sentence)です。同時に、エンコーダからの文脈も入力として与えます。これらをもとにデコーダは最初のトークンを予測します。

デコーダへの最初の入力は文脈と<SOS>

デコーダへの次の入力は、<SOS>に前の出力を足したものになります。

<SOS>と前回の出力をデコーダに入力

同様の処理を続けていきます。

再び前回の出力を入力に追加して次のトークンを予測

つまり、デコーダへの入力文章は、<SOS>から始まって徐々に積み上げられていきます。言い方を変えると、デコーダへの入力文章は、デコーダからの出力文書に<SOS>を足した(出力文章を右にシフトした)ものです。

デコーダへの入力文章は、デコーダから出力文書に<SOS>を足してを右にシフトしたもの

最後はデコーダが<EOS>を予測することで翻訳が終わります。

最後は<EOS>を予測して終わる

しかし、訓練を行う際にトークンを一つ一つ積み重ねる方法は効率的ではありません。できればデコーダへの入力文章は一度で済ませたいものですが、自己回帰を行う限り無理です。もっと欲を言えば、複数の文章をまとめてバッチにして効率的に訓練したいのですが、不可能に見えます。

トランスフォーマーの訓練ではこれらの問題が解決されています。特にマスクされたマルチヘッド・アテンションが重要になります。順を追って一つ一つ見ていきましょう。

ここから先は

5,348字 / 19画像

キカベン・読み放題

¥1,000 / 月
初月無料
このメンバーシップの詳細

この記事が気に入ったらサポートをしてみませんか?