2020年1月、ジャレッド・カプランをはじめとするOpenAIの研究者たちが、一本の論文を発表しました。
Scaling Laws for Neural Language Models
タイトルを直訳すれば、「ニューラル言語モデルのスケーリング則」。
この論文が調べた問いは、「AIを大きくしていったら、性能はどう変わるのか?」という、一見すると単純なものです。
モデルを大きくする。
学習データを増やす。
計算量を増やす。
そうすれば性能が良くなりそうだ、ということ自体はそれほど意外ではありません。しかし、重要なのは、その改善がかなり規則的だったことです。モデルの大きさ、データ量、計算量と、言語モデルの性能とのあいだには、きれいな数式で近似できる関係が見つかりました。
AIの性能向上は、少なくとも研究された範囲では、でたらめに起きているわけではない。どれくらい大きくすれば、どれくらい性能が上がるのかを、ある程度予測できる。
それが、この論文の中心的な発見です。
そもそも「スケーリング則」とは何か
「スケーリング則」と聞くと難しそうですが、基本的な発想はそれほど複雑ではありません。
例えば、モデルを大きくする、学習データを増やす、学習に使う計算量を増やす、といった「規模」を変えたときに、性能がどのように変化するのかを表す規則です。
この論文では、主に次の3つが調べられました。
- N:モデルの大きさ ― モデルが持つパラメータの数
- D:データの量 ― 学習に使うトークン数
- C:計算量 ― モデルの学習に使う計算資源の量
そして、性能の指標として使われたのが「Loss(損失)」です。
言語モデルは、大まかにいえば、「この文章の次には、どの単語が来るだろう?」という予測を繰り返しながら学習します。予測がうまくできなければLossは大きくなり、うまく予測できればLossは小さくなります。したがって、この論文で「性能が上がる」と言うときには、基本的には言語モデルのLossが小さくなることを意味しています。
大量のモデルを実際に学習させて得られた発見
論文の著者らは、さまざまな大きさのTransformerを実際に学習させ、その性能を比較しました。
モデルの規模は、埋め込み部分を除くパラメータ数で768から15億。データ量は2200万トークンから230億トークンまで変化させています。さらに、モデルの深さや幅、アテンションヘッドの数、コンテキスト長、バッチサイズなども変えながら実験しました。学習データには、GPT-2でも使われたWebTextを拡張した「WebText2」が使われています。
つまり、モデルを大きくするとどうなるか、データを増やすとどうなるか、計算量を増やすとどうなるか、モデルの形を変えるとどうなるかを、大量の実験によって調べたわけです。
そして、非常に特徴的な規則性を発見したのです。
発見1 モデルを大きくすると、性能はべき乗則に従って向上する
まず、モデルのパラメータ数を増やしていくと、Lossは下がっていきました。ここまでは予想どおりです。
驚くべきなのは、その下がり方です。
モデルを大きくするたびに性能が突然跳ね上がったり、逆にまったく伸びなくなったりするのではありません。非常に滑らかに性能が向上していきました。しかも、その関係は「べき乗則(power law)」と呼ばれる比較的単純な数式でよく近似できました。
論文のグラフでは、横軸と縦軸を対数にすると、実験結果がほとんど直線状に並びます。これはつまり、モデルの規模がわかれば、そのモデルがどの程度のLossに到達するのかをある程度予測できるということです。
ただし、モデルを2倍にすれば性能も2倍になる、という話ではありません。この論文で得られた関係では、モデルが大きくなるほど性能は向上するものの、改善には徐々に多くの規模が必要になります。例えば論文のフィットでは、パラメータ数を2倍にしたとき、Lossはおよそ0.95倍になります。
つまり、より良い性能を得るためには、モデルをかなり大きくしていかなければならないということでもあります。
発見2 データを増やしても、計算量を増やしても、同じような規則が現れる
同じ現象はモデルサイズだけでなく、学習データや計算量でも見られました。
つまり、モデルサイズ N、データ量 D、計算量 Cという3つの要素それぞれについて、規模と性能とのあいだにべき乗則が見つかったのです。
これが「Scaling Laws」というタイトルの意味です。
もちろん、どれか一つだけを無限に増やせばよいわけではありません。巨大なモデルを作っても、学習データが極端に少なければ性能は伸びません。大量のデータを用意しても、モデルが小さすぎればそのデータを十分に活用できません。計算量についても同じです。
論文は、モデル・データ・計算量を適切に組み合わせながら増やしていく必要があることを示しています。
発見3 モデルの「形」より「大きさ」が重要だった
Transformerには、さまざまな設計の仕方があります。
- 層を深くする
- 一層あたりを広くする
- Attention Headを増やす
- Feed Forward層の大きさを変える
では、同じ程度のパラメータ数を使うなら、どの形が最も優れているのでしょうか。
実験したところ、合理的な範囲内では、こうしたモデルの形による違いは意外なほど小さいことがわかりました。例えば、モデルの深さと幅の比率を大きく変えても、性能への影響は数%程度にとどまるケースがありました。
Performance depends strongly on scale, weakly on model shape.
要するに、細かな形の違いよりも、まず規模が重要だったという結果です。
もちろん、「アーキテクチャはどうでもいい」という意味ではありません。この結論は、論文で調べられたTransformerの設計範囲内での話です。
それでも、AI研究において「スケール」がどれほど大きな意味を持つのかを象徴する結果でした。
発見4 大きなモデルほど、データを効率よく使える
普通に考えると、巨大なモデルほど大量のデータが必要になりそうです。
ところが、この論文では重要な性質が見つかりました。
大きなモデルほど、同じ性能に到達するために必要なデータが少ない。
論文のFigure 2を見ると、小さなモデルを長時間学習させるよりも、大きなモデルを比較的短時間学習させた方が、同じ性能に効率よく到達できる場合があることが、かなりわかりやすく表れています。
さらに論文では、モデルサイズとデータ量の関係についても規則性を見つけました。
過学習を避けながらモデルを大きくする場合、モデルサイズを8倍にしても、必要なデータは(8倍ではなく)およそ5倍に増やせばよいという関係が観測されています。ここでも、大きなモデルのデータ効率の良さが表れています。
発見5 計算資源が限られているなら、「巨大なモデルを途中で止める」
そして、この論文で特に有名になった結論の一つが、計算資源の使い方です。
AIを学習させるために使える計算量が決まっているとします。その計算量を、小さなモデルを長時間じっくり学習させるために使うべきでしょうか。それとも、大きなモデルを作って、短い時間だけ学習させるべきでしょうか。
この論文の分析では、後者の方が効率的でした。つまり、非常に大きなモデルを使い、完全に学習し終わるよりかなり前に学習を止める。これが、計算量を効率的に使う方法だと論文は結論づけています。
論文では、計算量を10倍にした場合、最適なモデルサイズはおよそ5倍になる一方で、処理するデータ量の増加はおよそ2倍にとどまるという結果も示されています。
つまり、利用できる計算資源が増えたなら、その大部分を「同じモデルをもっと長く学習する」より「モデルそのものを大きくする」方向へ使うべきだ、という考え方です。これは後に、いわゆる「Kaplan Scaling Laws」として広く知られる考え方になりました。
この論文が示したのは、「AIの成長が予測できる」ということ
この論文の面白さは、単に「大きなモデルの方が強かった」というところにはありません。それだけなら、それ以前からある程度予想できたでしょう。
重要なのは、大きくしたときに、どのくらい性能が上がるのかが予測可能だったことです。
モデルサイズ。データ量。計算量。これらを増やしていくと、言語モデルのLossが滑らかなべき乗則にしたがって下がっていく。しかも、その関係は何桁ものスケールにわたって観測されました。
これはAI開発の考え方を変えます。仮に、小さなモデルで得られた傾向を巨大なモデルまで外挿できるなら、「今より100倍の計算資源を投入したら、どのくらい性能が上がるのか」を、大規模な学習を実際に始める前からある程度見積もることができます。
AI開発が、単なる試行錯誤ではなくなるということです。
この論文の限界
この論文は強力な結果を示しましたが、著者たち自身も限界を明記しています。
第一に、このスケーリング則は実験から見つかった経験則に過ぎないということです。なぜこのようなべき乗則が現れるのかについて、著者たちは確かな理論的理解を持っていないとしています。したがって、観測された範囲をはるかに超えても同じ法則が永遠に続くと保証されているわけではありません。
第二に、論文が主に測定しているのは言語モデルのLossであるということです。現代のAIで重視される、推論能力、数学能力、コーディング能力、指示への従いやすさといったあらゆる能力について、同じ法則がそのまま成立すると示したわけではありません。
そして第三に、計算資源をモデルサイズとデータにどう配分するのが最適かという部分については、その後に重要な修正が加わったということです。
2022年、DeepMindは「Training Compute-Optimal Large Language Models」、いわゆるChinchilla論文を発表しました。そこでは、同じ計算量なら今回の論文が示したものより、モデルを小さくし、その代わりにはるかに多くのデータで学習させた方が効率的だと報告されました。
DeepMindの分析では、計算量を増やす際にはモデルサイズと学習トークン数をほぼ同じ割合で増やすのがよいとされました。したがって、2020年論文の細かな数値を、そのまま現在のLLM開発の最適解として使うべきではありません。
しかし、モデル・データ・計算量と性能のあいだには、予測可能なスケーリング則が存在するという中心的な発見の重要性が、それによって失われるわけではありません。
まとめ
『Scaling Laws for Neural Language Models』を一言でまとめるなら、言語モデルは、規模を拡大することで規則的に性能が向上した、という論文です。
モデルを大きくする。データを増やす。計算量を増やす。するとLossは、気まぐれに上下するのではなく、比較的単純なべき乗則にしたがって下がっていく。そしてモデルの細かな形状よりも、まず「スケール」が性能を大きく左右していました。
この結果は、「AIをもっと賢くするためには、新しいアイデアを発明し続けなければならない」という見方とは少し異なる世界を示しています。
同じ基本的な仕組みであっても、規模を拡大すること自体が性能向上をもたらす。
2019年の『The Bitter Lesson』が、長期的には人間が作り込んだ知識よりも「計算量を活用できる汎用的な方法」が勝ってきたと論じたとすれば、『Scaling Laws for Neural Language Models』は、その考え方が言語モデルにおいてどのような数字として現れるのかを示した論文の一つだと見ることもできます。
AIの進歩を理解するとき、アルゴリズムだけを見るのではなく、「どれくらいのモデルを、どれくらいのデータと計算量で学習させたのか」を見る。現在の大規模言語モデルを理解するうえで、「スケール」という視点が欠かせない理由を、この論文は非常にわかりやすく示しています。
参考文献
Jared Kaplan et al., Scaling Laws for Neural Language Models, 2020.
https://arxiv.org/abs/2001.08361
Jordan Hoffmann et al., Training Compute-Optimal Large Language Models, 2022.
https://arxiv.org/abs/2203.15556
