
書記が数学やるだけ#899 NLPモデルにおけるScaling Laws
NLPモデルにおけるScaling Lawsについて。
問題

説明
NLPモデルにおける Scaling Laws(スケーリング則)とは、モデル性能がモデルサイズ、データ量、計算量などの拡大に伴って、べき乗則(power law)に従って変化するという経験則である。
Scaling Laws for Neural Language Models https://arxiv.org/pdf/2001.08361

Chinchilla は、計算予算内でモデルサイズと学習データ量を最適化したtransformer型言語モデルである。Scaling Laws に基づき、モデルサイズを倍にする場合は学習トークン数も倍にすることが最適であるとされ、この原則に従って 700 億パラメータと従来モデルの 4 倍のデータで学習されている。結果として、Gopher や GPT-3 などの大規模モデルを効率的に上回り、MMLU ベンチマークでは平均精度 67.5% を達成し、下流利用の計算コストも大幅に削減されている。
Training Compute-Optimal Large Language Models https://arxiv.org/pdf/2203.15556

PaLM(Pathways Language Model)は、5400 億パラメータを持つ大規模transformer型言語モデルで、少数ショット学習において高い性能を発揮する。Scaling Laws に基づき、モデルサイズと学習データ量を大幅に拡大することで、多段推論タスクや BIG-bench ベンチマークで人間平均を超える成果を達成した。
PaLM: Scaling Language Modeling with Pathways https://arxiv.org/pdf/2204.02311

解答
固定された計算予算の下で,経験則として与えられた指数を用いてαminを算出し,最適な N,B,S をScaling Laws に従って求める。この結果,モデルサイズは計算予算の大部分を占める方向で拡大することが示され,データサイズも同時に決定される。

損失の漸近展開式を用いて,最適 N と D を代入することで,予測される最終損失の大きさを評価する。本条件において,データ量が十分に大きい場合,損失は主にモデルサイズ項に支配されることが確認できる。

損失のグラフは以下の通り。これにより,データサイズD及びパラメータ数Nが上昇すると損失Lが低下することが確認できる。
import numpy as np
import matplotlib.pyplot as plt
# ---------------------------
# Parameters
# ---------------------------
alpha_N = 0.73
alpha_D = 0.74
A, B = 1.0, 1.0
N_list = [1e9, 1e10, 1e11]
D_range = np.logspace(10, 13, 200)
# ---------------------------
# Plot
# ---------------------------
plt.figure(figsize=(8,6))
for N_val in N_list:
L_vals = A * N_val**(-alpha_N) + B * D_range**(-alpha_D)
plt.plot(D_range, L_vals, label=f"N={N_val:.1e}")
plt.xscale("log")
plt.yscale("log")
plt.xlabel("Data size D")
plt.ylabel("Loss L(N,D)")
plt.title("Loss vs Data size")
plt.grid(True, which="both", linestyle="--", alpha=0.5)
plt.legend()
plt.show()

本記事のもくじはこちら: