みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

Transformer のモデルのまとめ

もともとの論文には,Transformer は encoder と decoder を含む構造として記載されています.

*1

もう少しわかりやすい図があったので紹介します.

*2

Encoder / Decoder

実際には encoder と decoder はどちらかがあればモデルとして成立するので, encoder-only, decoder-only, encoder-decoder の3種類に大きく分類されます.それぞれで改良が加えられて,たくさんのモデルが乱立しています.

*3

  • encoder-only: 入力シークエンスを解析するので,テキスト分類や固有表現抽出に用いられることが多いです.
  • decoder-only: 次々に予測していくので,テキスト生成に用いられることが多いです.
  • encoder-decoder: シークエンスを対応させていくので,機械翻訳や要約に用いられることが多いです.

なお,使い方によっては異なるタスクに対応させることも可能なので,完全に分類させるものではありません.

効率化

もともとの構造では O(n2) となるので規模を大きくしにくいという欠点がありました.

*4

モデルを改良する方向性として,扱えるシークエンスの長さを増やす,学習に必要な計算量を減らす,メモリ使用量を減らす,並列計算しやすくする,パラメーターを増やす/減らす,扱えるデータ量を増やす/減らす,などをすぐに思いつきますが,これらを実現するための様々な工夫が発表されています.

*5

参考