Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
論文紹介 Reformer: The Efficient Transformer
Search
Reo
May 27, 2020
Technology
0
250
論文紹介 Reformer: The Efficient Transformer
I will give a presentation on the following paper.
https://openreview.net/forum?id=rkgNKkHtvB
Reo
May 27, 2020
Tweet
Share
More Decks by Reo
See All by Reo
論文紹介 Taking Notes on the Fly Helps Language Pre-Trainig
reo11
0
42
EMNLP論文紹介 The Myth of Double-Blind Review Revisited: ACL vs. EMNLP
reo11
0
160
論文読み会 How Large Are Lions? Inducing Distributions over Quantitative Attributes
reo11
1
250
ACL読み会 Give Me More Feedback II: Annotating Thesis Strength and Related Attributes in Student Essays
reo11
0
180
NAACL読み会 Attention is not Explanation
reo11
0
150
Other Decks in Technology
See All in Technology
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
130
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
14
6.4k
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
1.9k
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
0
120
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
370
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
Amazon Quick Suite で始める手軽な AI エージェント
shimy
0
140
文字列の並び順 / Unicode Collation
tmtms
3
610
Kiro を用いたペアプロのススメ
taikis
0
120
チーリンについて
hirotomotaguchi
6
2.1k
S3を正しく理解するための内部構造の読解
nrinetcom
PRO
2
150
IAMユーザーゼロの運用は果たして可能なのか
yama3133
1
480
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Docker and Python
trallard
47
3.7k
Transcript
Reformer: The Efficient Transformer Nikita Kitaev*, Lukasz Kaiser*, Anselm Levskaya*
*Google Research ICLR 2020 紹介者: 平尾 礼央(TMU, M1, 小町研究室) 26 May, 2020 @論文紹介
Abstract • Transformerの計算時間、メモリ使用量を効率化したReformerの提案 • Attention Weightが小さいものを計算するのは無駄 ➢ Locality Sensitive Hashingで近いものだけ計算
• 逆伝播のために各レイヤで値を保持しておくのがメモリを圧迫 ➢ Reversible Layerで逆伝播時に毎回計算 • Transformerと同程度の性能でメモリ効率を改善し、長い系列で高速化する 事に成功
Introduction • Transformerを使ったモデルは様々なNLPタスクでSoTA • 最近のモデルはレイヤ数、系列長が増加し、パラメータ数も膨大 • 計算資源がある限られた研究所だけが訓練できる • 計算が増える原因と対策: ◦
Attentionの計算では系列長Lに対して、時間、空間(メモリ)共に O(L^2)で増加 ➢ Locality Sensitive Hashingでクラスタに分け、近い単語のみを計算 ◦ レイヤ数がN倍になるとそれぞれのレイヤが格納しておくべき activationがN倍 ➢ Reversible Layerで全体で1つのactivation(1つ後のレイヤ出力)さえあればよい
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
Locality Sensitive Hashing Attention LSHによる ハッシュ化 同じグループ 同士で計算
Complexity in Attention Part • nr: ハッシュを繰り返す回数 ◦ LSHはシードによって異なる bucketに分けられる可能性があるため
• nc: LSHのchunk数 ◦ Lが長くなるほど増えるため、 L/ncが実質logL ➢ これでAttentionの計算量の問題は解決!では逆伝播は?
Reversible Residual Networks (Gomez et al. NIPS 2017) • 通常は順伝播時に各レイヤで値
(activation)を持っていないといけない • 下図のように各レイヤを反転すると元の値が求まるようにする • activationの数を全体で1/Lに出来る(L: レイヤ数)
Complexity of Reformer • Reversible Residual Networksと同様に各レイヤで反転できるように変更 • 空間、時間計算量共にLが取れてc(O(logL)) になっている
Experiments • データセット ◦ enwik8: 入力トークン64k ◦ imagenet64: 入力トークン12k •
パープレキシティカーブ(横軸: steps、縦軸: bpd(?)) ◦ 通常のTransformerとほぼ同じ
Translation Task • WMT2014 English-to-German ◦ オリジナルのTransformerとほぼ同じ
Number of Hashing and Layers • ハッシュは8回以上繰り返すことでオリジナルとほぼ一致 • レイヤ数を増やすほど改善
Speed of Transformer and Reformer • 系列長が1024程度だと従来のTransformerの方が高速 ◦ hash回数が1~4だと精度が落ちる •
系列長が2048以上になるとReformerの方が早い
Conclusion • ReformerはTransformerと同程度の表現力を持つ • 長い系列でも効率的に実行でき、レイヤ数が増えても少ないメモリ使用量で実行で きる • これにより、計算資源が少なくても大きいTransformerモデルを扱える • 時系列や動画、音楽など幅広い分野でTransformerを使うことできる