スケーリング則とは
Scaling Laws
モデルサイズ・データ量・計算量を増やすほど、損失が予測可能な形でべき乗則的に改善するという経験則
ひとことで言うと
AIモデルは大きくして、データもたくさん与えるほど、決まったパターンで賢くなっていくという法則。
概要
スケーリング則は、ニューラルネットワークのパラメータ数、学習データ量、学習に使う計算量(FLOPs)を増やすほど、モデルの損失(性能の指標)がべき乗則に従って滑らかかつ予測可能に改善していくという経験的な法則。 この法則により、実際に大規模なモデルを学習する前に、小規模な実験結果から大規模モデルの性能をある程度予測できるようになり、モデル開発における計算資源の配分計画に活用されている。 2020年のKaplanらの研究では主にモデルサイズを重視する傾向が示された。 その後2022年のHoffmannらによる「Chinchilla」の研究では、与えられた計算予算に対してモデルサイズとデータ量を同程度のバランスで増やす方法の効率性が示され、以降のLLM開発における学習データ量の設計に大きな影響を与えた。 この経験則が、近年の巨大言語モデル開発競争における「モデルを大きくすればするほど賢くなる」という開発戦略の理論的な裏付けの1つになっている。
背景
深層学習モデルの性能とモデルサイズ・データ量・計算量との関係を定量的に把握できれば、限られた計算資源をどこに配分すべきかを事前に見積もることができる。 スケーリング則は、この関係を実験的に定式化することで、大規模モデル開発の投資判断を支える指針として活用されている。
歴史
2020年: OpenAIのKaplanらが論文「Scaling Laws for Neural Language Models」で、モデルサイズ・データ量・計算量と損失の関係を定式化。 2022年: DeepMindのHoffmannらが論文「Training Compute-Optimal Large Language Models」(Chinchilla論文)で、計算予算あたりのモデルサイズとデータ量の最適比率を再検証。 2023年以降: 「Chinchilla最適」を意識したデータ量重視の大規模モデル学習が業界標準に。
コード例
べき乗則のフィッティング例(イメージ)
import numpy as np
from scipy.optimize import curve_fit
# compute(FLOPs)とloss(仮の実験データ)
compute = np.array([1e18, 1e19, 1e20, 1e21])
loss = np.array([3.5, 3.0, 2.6, 2.3])
def power_law(x, a, b, c):
return a * x ** (-b) + c
params, _ = curve_fit(power_law, compute, loss, p0=[1, 0.1, 2])
print(params) # a, b, c: 計算量に対する損失のべき乗則の係数を推定利点
- 小規模な実験結果から大規模モデルの性能をある程度予測でき、開発計画の精度を高められる
- 計算資源の配分(モデルサイズとデータ量のバランス)を事前に最適化する指針が得られる
- 業界全体でモデル開発の投資判断における共通の理論的枠組みとして機能している
欠点
- スケーリング則はあくまで経験則であり、あらゆるアーキテクチャやデータ分布で厳密に成り立つとは限らない
- 損失の改善が滑らかであっても、特定のタスクでの実用的な性能向上(創発的能力など)を直接保証するものではない
- モデルを大規模化するには膨大な計算資源とコストが必要で、スケーリング則の追求自体が環境負荷やコスト面の課題を伴う
比較
関連用語
よくある質問
Chinchilla則とは何か?
同じ計算予算であれば、モデルサイズだけを大きくするよりも、モデルサイズと学習データ量をバランスよく増やす方が損失を効率的に下げられるという指針。当時の多くの大規模モデルはデータ量に対してモデルサイズが過大だったと指摘した。
スケーリング則はいつまでも成り立つのか?
現時点までの多くの実験で成り立つことが確認されているが、データ枯渇や物理的な計算資源の制約など、将来的にべき乗則から外れる可能性も研究・議論されている。
参考文献
- Research PaperScaling Laws for Neural Language Models
- Research PaperTraining Compute-Optimal Large Language Models