ALBert (A Lite BERT) 論文の序文

arxiv.org

Abstruct

自然言語表現の事前トレーニング時にモデルを大きくすることは、多くの場合精度を向上させます。 ただし、GPU/TPUのメモリ制限や予期せぬ精度劣化によってモデルを大きくすることが難しくなっていきています。 この問題に対処するために、BERTのメモリ消費を抑え、かつトレーニング速度を向上させるための2つの手法を紹介します。 また、self-supervised lossを利用することにより複数文が入力のときのTaskに役立つ事を示しました。 GLUE、RACE、およびSQuADベンチマークでいい結果を残しつつ、BERTよりメモリ削減することに成功しました。

Introduction

NLPのモデルをよりよい精度にするために、よくモデルを大きくする手法を用いることがありますが、これ以上モデルを大きくするのはハードのメモリ制限等により難しくなってきています。現在の最新モデルだと数億から数十億のパラメータがあるため、この制限に引っかかってしまします。 また、BERT-Largeモデルを単純に大きくするとパフォーマンスが劣化することがわかっています。下図はBERT-Largeのhidden sizeを2倍に増やしたBERT-xlargeモデルでパフォーマンスが劣化した例になります。 f:id:kuroko1t:20191215173730p:plain f:id:kuroko1t:20191215204253p:plain

このメモリ不足に対応する手法としては、モデル並列化、clever memory managementが考えられます。しかし、これらの手法はデバイス間通信のオーバーヘッドと、モデルの性能劣化には対応してません。 この論文ではBERTより大幅に少ないパラメータの”A Lite BERT”(ALBERT)により前述したすべての問題に対応します。 ALBERTにはメモリ削減のための2つのパラメータ削減手法が取り入れられています。 1. factorized embedding parameterization 大きなボキャブラリ埋め込みマトリックスを2つの小さなマトリックスに分解し、ボキャブラリー埋め込みからhidden layerを分離します.この分離により,hidden sizeを簡単に大きくすることができます。 2. cross-layer parameter sharing この手法はネットワークの深さとともにパラメータが大きくなるのを防ぎます。レイヤ間のパラメータ共有はTransformerのときに検討はされていたそうですが、事前トレーニングの観点ではなく、通常のエンコーダ、デコーダに焦点を当てていたそうです。

どちらの手法もパフォーマンスを大幅に低下させずに、BERTのパラメーター数を大幅に削減し、パラメータの効率を改善します。BERT−Largeと同じ構成のALBERTでは18倍少ないパラメータになり、1.7倍トレーニング速度が上昇しました。パラメーターの削減はトレーニングも安定させます。 また、パフォーマンスをさらに改善するために文の順序予測(sentence-order prediction : SOP)のself-supervised lossを導入します。SOPの主な目的は文章間の一貫性で、BERTの文章予測の問題に対処しています。

3.2 MODEL SETUP

ALBERT-LargeはBERT-Largeに比べてパラメータが約18倍少なく、18M vs 334Mとなります。 f:id:kuroko1t:20191215210004p:plain

4.8 WHAT IF WE TRAIN FOR THE SAME AMOUNT OF TIME?

BERT-largeとALBERT-xxlargeを同じ時間トレーニングさせた時のパフォーマンスの比較。 f:id:kuroko1t:20191215220622p:plain

Discussion

ALBERT-xxlargeはBERT-largeよりもパラメーターが少なく、結果が大幅に向上しますが、構造が大きいため計算量が多くなります。したがって、重要な次のステップは、スパースアテンション(Child et al.,2019)やブロックアテンション(Shen et al.,2018)などの方法により、ALBERTのトレーニングと推論の速度を上げることです。