教科書 › 第III部 深層学習:何の前提を足すか
CHAPTER 8

大きくすると何が起きるか ── スケーリングと事前学習

★ 会員12分

第7章までで、1つのモデルを作って学習させる道具はそろいました。この章の問いは別の層にあります。使える計算が増えたとき、それを何に使うか。

選べるのは2つです。モデルを大きくする(パラメータ NN)か、データを増やす(トークン DD)か。どちらにも使えますが、両方に同じだけ使うことはできません。予算が決まっているからです。

この章では、まず予算の式を自分で数えて作ります。そのうえで配分の問題を解きます。

1. 計算量を自分で数える

Transformer 1ブロックの重みは、第7章で数えたとおりです(dff=4dd_{ff} = 4d として)。

重みの数
注意(WQ,WK,WV,WOW_Q,W_K,W_V,W_O) 4d24d^2
FFN(2層) 8d28d^2
1ブロック合計 12d212d^2

ここから1トークンあたりの計算量が出ます。

  • 前向き:重み1個につき掛け算1回と足し算1回で 2 FLOPs。全部で 2N2N。
  • 逆向き:入力への勾配と重みへの勾配の2本を作るので、前向きのおよそ2倍で 4N4N(第3章の式(3)(4))。

合わせて1トークンあたり 6N6N。DD トークン流せば

C  ≈  6NDC \;\approx\; 6ND
(1)

この式は本書の範囲の算数だけでできています。使ってみます。

NN DD C=6NDC = 6ND
10810^{8} 10910^{9} 6.0×10176.0\times10^{17}
10910^{9} 2×10102\times10^{10} 1.2×10201.2\times10^{20}
7×10107\times10^{10} 1.4×10121.4\times10^{12} 5.9×10235.9\times10^{23}

2. 6ND6ND が崩れるところ

式(1)は重みを通る計算しか数えていません。第6章で見た T×TT \times T の注意の表は、重みではないので入っていません。どこで効き始めるかは割り算で出ます。

1層・1トークンあたり、重みの項は 2×12d2=24d22 \times 12d^2 = 24d^2。注意の表の項(QK⊤QK^{\top} と PVPV)は 2×(2Td)=4Td2 \times (2Td) = 4Td。比を取ると

表の項重みの項  =  4Td24d2  =  T6d\frac{\text{表の項}}{\text{重みの項}} \;=\; \frac{4Td}{24d^2} \;=\; \frac{T}{6d}
(2)

文脈長 TT が 6d6d を超えると、表の項のほうが重くなります。

dd 6d6d T=1T=1k T=4T=4k T=16T=16k T=64T=64k
512 3,072 0.33 1.33 5.33 21.33
1,024 6,144 0.17 0.67 2.67 10.67
4,096 24,576 0.04 0.17 0.67 2.67

d=512d = 512 で T=4T = 4k なら、表の項はもう重みの項の1.33倍です。C≈6NDC \approx 6ND は短い文脈での近似で、長文脈のモデルでは第6章の T2T^2 がそのまま効いてきます。

3. 予算をどう割るか

CC が決まれば、NN を決めた時点で D=C/(6N)D = C/(6N) も決まります。あとは損失が最小になる NN を選ぶだけ——ですが、損失が NN と DD にどう依存するかを知らないと解けません。

ここでは形を仮定します。

L(N,D)  =  ANa  +  BDb  +  EL(N, D) \;=\; \frac{A}{N^{a}} \;+\; \frac{B}{D^{b}} \;+\; E
(3)

第1項はモデルが小さいことによる損、第2項はデータが少ないことによる損、EE はどちらを増やしても消えない床(第0部の第4章の H(p)H(p) と同じ役)。

$A, B, E, a, b$ の値は、この本では測っていません。 以下の計算は $A=B=400$、$E=1.0$、$a=b=0.34$ と置いた場合の形を見るためのもので、実際のモデルで成り立つ値ではありません。実測値は論文にあり、この章では引用しません(第5節で触れる論文の主張だけを出典つきで引きます)。
FIG 1横軸が N(右へ行くほど大きいモデル・少ないデータ)、縦が仮定した形の損失。予算 C を動かすと最適(金の線)が動く。指数 a と b もつまみにしてある——「a と b が等しいときだけ最適が D/N = 1 になる」。「等しく伸ばす」という結論が、どの仮定に乗っているかが見える

この仮定で C=1021C = 10^{21} のときを解くと、最適は N=1.29×1010N = 1.29\times10^{10}、D=1.29×1010D = 1.29\times10^{10}、D/N=1.00D/N = 1.00 でした。予算を変えると、最適はこう動きます。

§

この先は会員限定です

全42章と全ラボが読み放題。月額¥490、いつでも解約できます。

コメント

コメントにはログインが必要です