この記事の読者
深層学習・ディープラーニングの手法の1つである「RoBERTa」について知りたい.
- BERT まとめ編
Index
RoBERTa とは
発表論文のタイトルのとおり、BERTをロバストにするアプローチ.
Robustly Optimized BERT Approach
BERT の事前学習 / Pre Training の研究の紹介.
ハイパーパラメータと学習データサイズの評価の研究
BERT との変更点
- 学習データに適用するマスキングパターンを動的に変更する.
- Next Sentence Prediction の廃止.
- より多くのデータに対して、より大きなバッチサイズで、より長い時間学習を行う.
- より長い系列のデータでのトレーニング.
- 新しい学習データセット (CC-NEWS) を導入.
Training
利用する BERT のネットワークアーキテクチャは変更しない.
比較するための、ベンチマークのベースはこれ.
動的なマスキング
BERT のマスク付き言語モデルの学習では、マスクの位置に依存してしまう.
学習のEpoch ごとに、同じデータでもマスクの位置を変える.
40 epoch のうち、10 epoch ずつマスクの位置が異なるデータを使うことで、
4 つのマスクキングされた学習データを利用できる.
Next Sentence Prediction の廃止
BERT では、2 つの方法で、教師なしデータを使って、事前学習を行っていた.
- マスク付き言語モデル
- Next Sentence Prediction / NSP
「マスク付き言語モデル」では、文章の一部を隠し、その箇所を周りの文章から予測する.
「Next Sentence Prediction」では、連結された2つの文章を入力としたとき、
それらの文章が関連があるかどうかをクラス分類するタスクで学習を行う.
この「Next Sentence Prediction」を廃止することで、精度の向上が見られた.
Batch Size を大きくする
ニューラル機械翻訳の研究でも、バッチサイズを大きくした結果、
学習率を適切に上げることで、学習速度と精度の両方の向上が報告されている.
オリジナルの BERT では、256 のシーケンスバッチで、1M ステップで学習.
この計算コストは、以下の学習の計算コストと同等.
- 2K (2000) のシーケンスバッチで、125K ステップの学習
- 8K (2000) のシーケンスバッチで、31K ステップの学習
この3つのケースで精度比較したところ、バッチ数を増やしたケースの方が精度がよくなった.
参考
- RoBERTa: A Robustly Optimized BERT Pretraining Approach
Web サイト
- RoBERTaを理解する