soyamash / read_paper

memo for NLP paper
0 stars 0 forks source link

Efficient Transformers: A Survey #1

Open soyamash opened 3 years ago

soyamash commented 3 years ago

https://arxiv.org/abs/2009.06732

soyamash commented 3 years ago

モデルの効率性

  1. メモリフットプリント
  2. 学習と推論の両方の間の計算コスト、例えばFLOPsの数
soyamash commented 3 years ago

生のTrandformer。(Layer Normalization層が後ろにあるPost-NL)

スクリーンショット 2020-10-31 13 55 03

1ブロックを式にまとめると以下

スクリーンショット 2020-10-31 13 59 04

ボトルネックになっているのは主にself-attentionのQK部分でナイーブにやれば文長Nに対してO(N^2)の計算量。なのでここを削減する

soyamash commented 3 years ago

効率的なtransformerの分類

スクリーンショット 2020-10-31 13 59 47 スクリーンショット 2020-10-31 14 00 06
soyamash commented 3 years ago

Fixed Patterns (FP)

  1. Blockwise Patterns - 例としては、Blockwise(Qiu et al., 2019)やLocal Attention(Parmar et al., 2018)など。入力シーケンスを文全体からある長さのブロックに限定することで、複雑さをN^2からB^2(ブロックサイズ)に減らし、B <<<< Nであればあるほど効率的
  2. Strided Patterns - 大股のattentionパターン。一定の間隔でスパースにattentionする。Sparse Transformer (Child et al., 2019)やLongformer (Beltagy et al., 2020)など
  3. Compressed Patterns - pooling操作を行い、入力文の長さをダウンサンプルして固定パターンの形にする。Compressed Attention (Liu et al., 2018)はストライド畳み込みを使用して、入力文の長さを効果的に削減します

Combination of Patterns (CP)

Learnable Patterns (LP)

Memory

Low-Rank Methods

Kernels

Recurrence

soyamash commented 3 years ago

一応分類したが、これらの境目はだいぶ曖昧で、例えば、Routing Transformer (Roy et al., 2020)のk-meansクラスタリングは、セントロイドをパラメータ化されたメモリとして見ることができるので、グローバルメモリアプローチの一形態として解釈することもできる。 しかし、Reformerでは、これはattention重みのスパーシティパターンを学習するために使用される。さらに、プーリングは記憶モデルの一形態としても解釈できる

soyamash commented 3 years ago

attention行列計算の効率化以外にも、併用できる効率化手法はいくつかある

Weight Sharing

Quantization / Mixed Precision

Knowledge Distillation

Neural Architecture Search (NAS)