Slide 1

Slide 1 text

Reformer: The Efficient Transformer Nikita Kitaev*, Lukasz Kaiser*, Anselm Levskaya* *Google Research ICLR 2020 紹介者: 平尾 礼央(TMU, M1, 小町研究室) 26 May, 2020 @論文紹介

Slide 2

Slide 2 text

Abstract ● Transformerの計算時間、メモリ使用量を効率化したReformerの提案 ● Attention Weightが小さいものを計算するのは無駄 ➢ Locality Sensitive Hashingで近いものだけ計算 ● 逆伝播のために各レイヤで値を保持しておくのがメモリを圧迫 ➢ Reversible Layerで逆伝播時に毎回計算 ● Transformerと同程度の性能でメモリ効率を改善し、長い系列で高速化する 事に成功

Slide 3

Slide 3 text

Introduction ● Transformerを使ったモデルは様々なNLPタスクでSoTA ● 最近のモデルはレイヤ数、系列長が増加し、パラメータ数も膨大 ● 計算資源がある限られた研究所だけが訓練できる ● 計算が増える原因と対策: ○ Attentionの計算では系列長Lに対して、時間、空間(メモリ)共に O(L^2)で増加 ➢ Locality Sensitive Hashingでクラスタに分け、近い単語のみを計算 ○ レイヤ数がN倍になるとそれぞれのレイヤが格納しておくべき activationがN倍 ➢ Reversible Layerで全体で1つのactivation(1つ後のレイヤ出力)さえあればよい

Slide 4

Slide 4 text

Locality Sensitive Hashing(LSH) ● Hash関数を使った近似近傍点探索アルゴリズム ● n次元空間用のkd-treeのようなもの ● k個のn-1次元の超平面を使用することで2^kクラスタに分けることができる https://www.researchgate.net/figure/Locality-sensitive-hashing-LSH_fig4_314300245 https://databricks.com/blog/2017/05/09/detecting-abuse-scale-locality-sensitive-hashing-uber-engineering.html https://www.youtube.com/watch?reload=9&v=LqcwaW2YE_c

Slide 5

Slide 5 text

Locality Sensitive Hashing Attention LSHによる ハッシュ化 同じグループ 同士で計算

Slide 6

Slide 6 text

Complexity in Attention Part ● nr: ハッシュを繰り返す回数 ○ LSHはシードによって異なる bucketに分けられる可能性があるため ● nc: LSHのchunk数 ○ Lが長くなるほど増えるため、 L/ncが実質logL ➢ これでAttentionの計算量の問題は解決!では逆伝播は?

Slide 7

Slide 7 text

Reversible Residual Networks (Gomez et al. NIPS 2017) ● 通常は順伝播時に各レイヤで値 (activation)を持っていないといけない ● 下図のように各レイヤを反転すると元の値が求まるようにする ● activationの数を全体で1/Lに出来る(L: レイヤ数)

Slide 8

Slide 8 text

Complexity of Reformer ● Reversible Residual Networksと同様に各レイヤで反転できるように変更 ● 空間、時間計算量共にLが取れてc(O(logL)) になっている

Slide 9

Slide 9 text

Experiments ● データセット ○ enwik8: 入力トークン64k ○ imagenet64: 入力トークン12k ● パープレキシティカーブ(横軸: steps、縦軸: bpd(?)) ○ 通常のTransformerとほぼ同じ

Slide 10

Slide 10 text

Translation Task ● WMT2014 English-to-German ○ オリジナルのTransformerとほぼ同じ

Slide 11

Slide 11 text

Number of Hashing and Layers ● ハッシュは8回以上繰り返すことでオリジナルとほぼ一致 ● レイヤ数を増やすほど改善

Slide 12

Slide 12 text

Speed of Transformer and Reformer ● 系列長が1024程度だと従来のTransformerの方が高速 ○ hash回数が1~4だと精度が落ちる ● 系列長が2048以上になるとReformerの方が早い

Slide 13

Slide 13 text

Conclusion ● ReformerはTransformerと同程度の表現力を持つ ● 長い系列でも効率的に実行でき、レイヤ数が増えても少ないメモリ使用量で実行で きる ● これにより、計算資源が少なくても大きいTransformerモデルを扱える ● 時系列や動画、音楽など幅広い分野でTransformerを使うことできる