To Repeat or Not To Repeat: Insights from Scaling LLM under Token-Crisis
Motivation 選んだ理由
一度基礎に立ち返ってLLMの学習にどのような問題があるか知りたい
特にLLMの過学習について
推論など高次機能の学習機会はおそらく稀なので、繰り返し学習が本当は必要なのでは?という疑問
Summary どんなもの?
LLM の事前学習では一般的に1エポックのみ学習を行い、同じデータを2度以上訓練することはない
事前学習で複数エポック学習した際の過学習の影響をしらべ、性能低下に関係する要素を調べている
詳細に過学習に影響する要素をしらべ、大規模なモデルで複数エポック学習するための方針を立てている
事前学習のトークン数について
Chinchilla 則: 学習にはパラメタ数の20倍のトークン数が必要
データセットのサイズは LLM の学習で非常に重要
Chinchilla は事前学習のデータサイズについて、スケーリング則を提案
Gopher-280B よりも十分に大きなデータで学習した Chinchilla-70B が高い性能を示した
モデルサイズの小ささはデータサイズで補うことができる
繰り返しの学習が悪影響であることも指摘している
一方で Galactica (Meta AI) の論文では繰り返しが有効なケースが報告されている
近年LLMを学習させるうえで標準となっている
Mixtral (176B) ではテキスト8000Bトークン (1:46)
Command R+ (104B) に4000Bトークン (1:40)
Grok 1.5 (314B) に6000Bトークン (1:20)
Claude-3 OPUS (2000B)に40000Bトークン (1:20)
https://gyazo.com/fbe4001a5957fe27277f44aef665b5fd
学習に必要なトークンの不足
高品質なテキストデータの増加は、モデルのサイズの増加よりも圧倒的に遅い。英語以外ではさらに顕著
近年の大規模なモデルは最終的にはデータ量でモデルサイズが決まってきている
学習データが不足している場合一般的な対策は複数エポック学習すること
Chinchilla では性能に悪影響と報告されている一方、Galactica (Meta AI) では4エポックまで性能向上しているなど、単純ではない
Contribution 先行研究と比べてどこがすごい?
3 つの側面から 11 の知見を得ている(多い)
(1) Encoder-Decoder モデルでも Chinchilla則が成り立つ
(2) 大きなモデルは複数エポックでより過学習しやすい
(3) 大きなデータセットでLLM を学習すると、複数エポックの悪影響を緩和できる
(4) 高品質なデータは複数エポックの悪影響を 緩和しない
(5) 複数エポックでの性能低下には計算資源量の影響は無視でき、総パラメタ数の影響が大きい
MoEのような実働パラメタが少ないモデルでも、総パラメタ数が重要ということ
(6) 同等のパラメタ数でMoE (Mixture-of-Experts) モデルを学習することで、より多くの計算を必要とするdense なモデルでの学習の振る舞いを予測できる
(7) UL2 のような複数の目的関数をもつことは学習を加速させるが、過学習も引き起こしやすくなる
(8) 多くの正則化手法はうまく以下ないが、dropout は効果的(しかし、LLMの事前学習ではあまり用いられていない)
(9) dropout は事前学習を数epoch行った後に導入すると、学習の初期段階を効率的に行える
(10) 非常に大きなモデルでは dropout 率のチューニングが必要になる
(11) MoEモデルは、同程度のパラメータを持つ大規模モデルのドロップアウト率調整の、高速な代替手段になる
言っていることは(6)と近い
Experiments どうやって有効だと検証した?
貢献に書かれた知見を一つづつ検証する実験を行っている
実験はT5 のsmall-Xl まで6種類のサイズで行っている
全ては紹介しきれないので一部のみ紹介
知見(1): Encoder-Decoder モデルでも Chinchilla則が成り立つ
https://gyazo.com/de06e907b3c34f814aaa094979118bf6
論文では図3 を参照しているが、おそらく図2の誤り
複数のモデルサイズで訓練を行い、大きなモデルが小さなモデルよりも性能が上がる(学習に十分なデータ量に達した)トークン数をグラフにしている
知見(2): 大きなモデルは複数エポックでより過学習しやすい
https://gyazo.com/90370550470cef14d6bfa7f928803003
C4 のサブセットを、1回、$ 2^6 回、$ 2^8 回繰り返した結果
大きなモデルの方が性能悪化のペースが速い
知見(3): 大きなデータセットでLLM を学習すると、複数エポックの悪影響を緩和できる
https://gyazo.com/6011cb512029d742c8b909b3ccf046b9
4x 大きなデータセットを4xのバッチサイズで訓練した場合、過学習が起こりにくくなる
バッチサイズを変えない場合はより顕著な差がでる(付録G)
https://gyazo.com/c4be9f39d5e35c381b89d8ac8ccfbbfb
どの知見の結果??
下流タスクでも同様の結果
知見(4): 高品質なデータは複数エポックの悪影響を 緩和しない
C4 と比べ Wikipedia を高品質なデータセットと仮定して下流タスクのスコアで実験
https://gyazo.com/0f1ad167816a4bf648d491e3cfdef9ef
Wikipedia でも同等(以上)に過学習による性能低下が起こっている
知見(5): 複数エポックでの性能低下には計算資源量の影響は無視でき、総パラメタ数の影響が大きい
https://gyazo.com/60928c8e71d39aa4c1bdf7ee410220e4
設定
青(0.5x) はパラメタ共有で訓練可能なパラメタを半分にしている(FLOPsは同等)
黄(1x)は標準モデル
緑(2x)はMoEでパラメタ数を2倍にしている(これもFLOPsは同等)
パラメタが多いほうが性能は高いが、繰り返しでの性能低下も大きい
https://gyazo.com/c76312c4773f37c3cae253609db8e9bc
パラメタ数を固定して、FLOPsを比較した場合
どの設定でも繰り返しの悪影響は綺麗に同等
知見(6): 同等のパラメタ数でMoE (Mixture-of-Experts) モデルを学習することで、より多くの計算を必要とするdense なモデルでの学習の振る舞いを予測するできる
(5) の結果を逆手に取り、Dense モデルと MoEモデルのパラメタ数を揃えて実験
Dense モデルの方が性能はやや高いが、ほぼ同じ過学習の傾向を示す
https://gyazo.com/9853b1e76a7e3e36381a70eaac627975
訓練可能なパラメタ数を揃えた場合は過学習の傾向も同じ
青 (Dense Large) 784M
黄 (MoE Base) 701M、FLOPs 0.39倍、スループット2.1倍
https://gyazo.com/2d88ccaefade49707b8d87f63f4d917d
青 (Dense XL)と黄 (MoE Large) はどちらも 2.8B
FLOPs 0.32倍、スループット3.8倍
知見(7)はスキップ
知見(8): 多くの正則化手法はうまく以下ないが、dropout は効果的
GPT-3, PaLM, LLaMA, Chinchilla, Gopher など大きなモデルの学習にはdropoutは用いられていない
複数エポックでない場合、dropout が単に学習を遅らせてしまう
前述のGalactica は dropout を使っていた
実験結果は知見(9)から
https://gyazo.com/59d17152dfc4f0cc9ab8f1ab5dd9d588
dropout の有無で過学習の傾向が大きく変わる
dropstage は知見(9)で提案されているの学習の後段でdropout を利用する手法
知見(10)の結果では、モデルサイズが大きくなるとdropout だけでは過学習を防ぎきれていない
知見(11): MoEモデルは、同程度のパラメータを持つ大規模モデルのドロップアウト率調整の、高速な代替手段になる
dropout 率のチューニングのために大規模なモデルを学習するのは避けたい
計算負荷の小さい MoEモデルをチューニングに利用したい
https://gyazo.com/76579104edb126ba52531ba0f2db4059
MoEとDense モデルそれぞれで、dropout率を変化させた時の性能変化がほぼ同じカーブ
https://gyazo.com/bc69d10bb4e0894c494286e209a534c5
データが小さくても、dropout と複数エポックの学習を組み合わせることでパラメタ数を大きくした分の性能向上を得ることができる
Discussion 議論はある?
データ数が限られていても、性能向上の手があるのは良いニュース
日本語の学習などでは重要になりそう
Encoder-Decoder モデルでの結果なので、Decoder モデルでも追試がほしい
一方で、結局データ量が正義という状況に変化はない
推論など高次機能の学習機会はおそらく稀なので、繰り返し学習が本当は必要なのでは?
僅かながら繰り返しの学習で上昇している分が、そういった稀な例が学習できた結果である可能性はある