Transformer大規模化へのブレークスルーとなるか!? 高効率化したReformer登場
3つの要点
✔️ Attentionの計算量をO(n^2)からO(n log n)へと劇的に削減
✔️ アクティベーションなどのメモリ使用量を大幅に削減
✔️ 速度・メモリ共に実装効率を大きく改善しながらも、Transformerの性能を維持
Reformer: The Efficient Transformer
written by Anonymous
(Submitted on 13 Jan 2020 (v1), last revised 18 Feb 2020 (this version, v2))
Comments: Accepted at ICLR2021
Subjects: Machine Learning (cs.LG); Computation and Language (cs.CL); Machine Learning (stat.ML)
Official
Comm
大規模応用が支えるTransformerの記録的成果
Transformerを使った研究は次々にstate-of-the-artな結果を生み出していますが、その応用はどんどん大規模になっています。そしてこの大規模化の流れは、大きな研究機関以外では研究すること自体が難しくなることを意味します。現在それらが問題として指摘され、議論になっているようです。
ではどれくらいの規模になってきているのでしょうか?
- Transformer層(以下Trm)ひとつのパラメーター数0.5B(=500,000,000)を保持するのに、2GBのメモリが必要(32ビット浮動小数点)。
- トークン長64,000、Embeddingのサイズ1,024、バッチサイズ8のときのActivation(順伝播の計算結果)は、同じく 64K x 1K x 8 = 0.5B で2GB。
これらのサイズは、実際に計算するとき致命的ともいえる問題になります。
- Trmが12層になったら、Activationは 2GB x 12 = 24GB。学習時には逆伝播するまで保持が必要。
- Attentionの計算は、トークン長Lに対して計算量・メモリ量ともにO(L^2)、つまりたとえバッチサイズ1でもL=64KBのとき 64KB^2 x 4 (32ビット浮動小数点) = 16GB。
この規模になると数枚のGPU構成レベルでは全く取り扱えなくなります。
ではそんな用途の具体例を見てみましょう。
続きを読むには
(7034文字画像22枚)AI-SCHOLARに
登録いただく必要があります。
この記事に関するカテゴリー