Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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を使うことできる