Shake AI Lab /INTERACTIVE LEARNING

TRANSFORMER EXPLAINER 予備知識なしで、はじめよう

Transformerを、
入口から出口まで。

まず全体をつかみ、必要な部品を学び、左右の構造をつなぐ。
8つの章を「次へ」で進むと、原論文の図を順番に読めます。

学習へ進む ↓

第1章 / 8

目次から章を選ぶ

まず、左と右の役割をつかむ

Transformerは何を受け取って、何を返す?

翻訳を例に、入口と出口だけを見ます。図の箱の名前は、このあとの章で1つずつ扱います。

左 / 読み取る

Encoder

The cat sleeps .

原文を読み、ことば同士の関係を反映した数の並び(ベクトル)に変換します。原文の各位置に、その表現が残ります。

原文の情報を渡す →左右をつなぐ経路
右 / 作り出す

Decoder

開始 猫 は ?

訳文の前半を読み、Encoderの情報も参照して次の訳文トークンを予測します。出力を1つ選び、末尾に足して続けます。

上の文は翻訳の仕組みを示す例です。左と右は同時に使う2つのネットワークであり、「左が学習用・右が生成用」という分担ではありません。

最初は、この2つの役割だけつかめば大丈夫です。下の図で左右の位置を確認したら、「次へ」で入力のトークン化から始めましょう。

この章との対応:Transformer全体の流れ

原論文の図では、ここ

この章で扱う部分を緑で示しています。図は下から上へ読みます。

狭い画面では図を横にスクロールできます。左がEncoder、右がDecoderです。

Attention Is All You NeedのEncoder–Decoder構成左がEncoder、右がDecoder。下のEmbeddingと位置情報から、Attention、Add & Norm、Feed Forwardを通ります。Encoderの最終出力はDecoder中央のAttentionへ渡り、Decoderの最後にLinearとSoftmaxがあります。N×は枠内をN層積む意味です。緑色は説明中の部分です。この章で扱う部分を自動で強調しています。EncoderDecoderN×N×Add & NormFeed ForwardAdd & NormMulti-Head AttentionInput Embedding+PositionalEncodingInputs翻訳元などの入力列Multi-Head AttentionEncoder–Decoder AttentionAdd & NormK, VQOutputs (shifted right)既に与えられた出力トークン列Output Embedding+PositionalEncodingMaskedMulti-Head AttentionAdd & NormFeed ForwardAdd & NormLinearSoftmaxOutput Probabilities原文内で情報を混ぜる
この章で説明している部分
Vaswani et al. (2017), Attention Is All You Need, Figure 1をもとに再描画。強調色・日本語の注釈は当サイトによる追加です。

第1章と原論文の対応

図のここを見る

補足と、数値実験との違い

箱を迂回する矢印は残差接続。元のベクトルを処理結果に足します。Add & Normは、その加算とLayerNormを表します。

原論文と、このデモの違い

この表は各章の8次元実験についてです。第4章の2次元例・第5章の4次元例は、別に手で設定した説明用の計算です。

項目論文のベースモデル8次元の数値実験
構成Encoder + DecoderDecoder側を簡略化
繰り返し N各6層1層
埋め込み次元5128
ヘッド数82
FFN内部次元204816
学習翻訳データで学習固定乱数・未学習

この8次元実験はEncoderとEncoder–Decoder Attention(Cross-Attention)を省略しています。以下の式のd_modelはベクトルの成分数です。また、原論文の埋め込みへのdmodel\sqrt{d_{\mathrm{model}}}の乗算、埋め込みと出力射影の重み共有、Dropoutは再現していません。この実験のLinearで掛け算の後に足すベクトル(バイアス)は0です。LayerNormで正規化した後に掛ける係数をγ、足す数をβと呼び、この実験ではγ=1, β=0\gamma=1,\ \beta=0です。

原論文のFigure 1を確認する(PDF・3ページ)↗
この章でつながったこと

Encoderは原文を読み、Decoderはその情報を参照しながら訳文を作る。

この次は

この実験の読み方 色はベクトルの値、線の太さはAttentionの重みを表します。Attentionの大きさだけで、意味の理解や予測の原因がわかるわけではありません。実際のモデルは学習した重みと多数のブロックを使います。

さらに読む:Q・K・Vの実験 · 位置情報の実験 · Attention Is All You Need ↗