Transformerとは

トランスフォーマー

1行定義

Transformerとは、RNNや畳み込みを使わず、Attentionを中心に系列内の関係をとらえる、2017年に提案されたニューラルネットワークのことです。

くわしく

Transformerは、2017年にGoogleの研究者らが論文「Attention Is All You Need」で発表したモデルです。それまでの機械翻訳は、RNNを使うSeq2SeqにAttentionを加える形が主流でした。Transformerは、RNNも畳み込みも使わず、Attentionを中心に組み立てました。

構造

翻訳元の文を読むエンコーダと、訳文を1語ずつ出力するデコーダからなります。元の論文では、どちらも同じ構造の層を6つ重ねています。

  • エンコーダの層:Self-Attentionと、位置ごとの全結合ネットワーク
  • デコーダの層:後ろの単語を隠すマスク付きSelf-Attention、エンコーダの出力を参照するSource-Target Attention、位置ごとの全結合ネットワーク

Attentionはすべて、Multi-Head Attentionです。各部分には残差接続とレイヤー正規化が加わります。

位置エンコーディング

Self-Attentionは、単語の並び順を区別しません。このままでは「犬が猫を追う」と「猫が犬を追う」を見分けられません。そこで、位置を表すベクトルを単語の埋め込みに足して入力します。元の論文では、周波数の異なるサイン関数とコサイン関数でこのベクトルを作ります。

強みと弱み

前の単語の計算を待たずに、学習時に全位置を並列に計算できます。離れた単語どうしも直接結びつくため、長い文の関係も捉えやすくなりました。この性質が、大規模な学習を後押ししました。弱みは、計算量が文の長さの2乗に比例することです。

その後の広がり

エンコーダ部分を使うBERT、デコーダ部分を使うGPTシリーズなど、その後の言語モデルの多くがTransformerを土台にしています。画像を小さなパッチに分けて単語のように扱うVision Transformerにより、画像認識にも広がりました。

G検定での出題

RNNを使わずAttentionで系列を処理する点、並列計算しやすい点、位置エンコーディングが必要な理由、エンコーダとデコーダの役割、BERTやGPT、Vision Transformerの土台であることが問われます。

混同しやすい用語

用語意味
Seq2Seqエンコーダが入力の系列を読み込んでベクトルにまとめ、デコーダがそれをもとに別の系列を1つずつ生成するモデル

違いを表で比べる:CNN・RNNとTransformer

◯×チェック

  1. Transformerは、RNNのように単語を1つずつ順番に処理しないため、学習時に系列内の全位置の計算をまとめて並列に行いやすい。

    答えを見る

    答え ◯ 正しい

    Self-Attentionは全位置を一度に計算できます。GPUの並列計算を生かせるので、大量のデータで学習しやすくなりました。

  2. Transformerでは、RNNと同じく前の時刻の隠れ状態を次の時刻に受け渡すことで、単語の並び順を表現している。

    答えを見る

    答え × 誤り

    Transformerには、時刻ごとに状態を受け渡す構造がありません。並び順は、位置を表すベクトル(位置エンコーディング)を単語の埋め込みに加えて表します。

  3. Transformerの各層では、Attentionや全結合ネットワークの出力に、その入力をそのまま足し合わせる残差接続が使われている。

    答えを見る

    答え ◯ 正しい

    元の論文では、入力とサブ層の出力を足してからレイヤー正規化をかける、LayerNorm(x + Sublayer(x))の形です。ResNetのスキップ結合と同じ考え方で、深い層でも学習しやすくします。

練習問題

Transformerの問題(16問)
  1. 生成AIと従来型モデルの違い
  2. 場面に応じた正規化層の選択
  3. スキップ結合の働きと応用先
  4. Attentionの出力の計算
  5. Transformer内の注意機構
  6. 位置エンコーディングの必要性
  7. 内積をスケーリングする理由
  8. Self-Attentionの計算量
  9. Multi-Headのヘッドの分け方
  10. スケーリング後のスコアと重み
  11. クエリ・キー・バリューの作り方
  12. 推論時の生成手順の比較
  13. ViTとCNNの性質の違い
  14. ViTの系列長と計算量
  15. BERTの事前学習
  16. Unified-IOの入出力の統一

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術23

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習