教科書 › 第III部 深層学習:何の前提を足すか
CHAPTER 8
大きくすると何が起きるか ── スケーリングと事前学習
第7章までで、1つのモデルを作って学習させる道具はそろいました。この章の問いは別の層にあります。使える計算が増えたとき、それを何に使うか。
選べるのは2つです。モデルを大きくする(パラメータ )か、データを増やす(トークン )か。どちらにも使えますが、両方に同じだけ使うことはできません。予算が決まっているからです。
この章では、まず予算の式を自分で数えて作ります。そのうえで配分の問題を解きます。
1. 計算量を自分で数える
Transformer 1ブロックの重みは、第7章で数えたとおりです( として)。
| 重みの数 | |
|---|---|
| 注意() | |
| FFN(2層) | |
| 1ブロック合計 |
ここから1トークンあたりの計算量が出ます。
- 前向き:重み1個につき掛け算1回と足し算1回で 2 FLOPs。全部で 。
- 逆向き:入力への勾配と重みへの勾配の2本を作るので、前向きのおよそ2倍で (第3章の式(3)(4))。
合わせて1トークンあたり 。 トークン流せば
(1)
この式は本書の範囲の算数だけでできています。使ってみます。
2. が崩れるところ
式(1)は重みを通る計算しか数えていません。第6章で見た の注意の表は、重みではないので入っていません。どこで効き始めるかは割り算で出ます。
1層・1トークンあたり、重みの項は 。注意の表の項( と )は 。比を取ると
(2)
文脈長 が を超えると、表の項のほうが重くなります。
| k | k | k | k | ||
|---|---|---|---|---|---|
| 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 |
で k なら、表の項はもう重みの項の1.33倍です。 は短い文脈での近似で、長文脈のモデルでは第6章の がそのまま効いてきます。
3. 予算をどう割るか
が決まれば、 を決めた時点で も決まります。あとは損失が最小になる を選ぶだけ——ですが、損失が と にどう依存するかを知らないと解けません。
ここでは形を仮定します。
(3)
第1項はモデルが小さいことによる損、第2項はデータが少ないことによる損、 はどちらを増やしても消えない床(第0部の第4章の と同じ役)。
$A, B, E, a, b$ の値は、この本では測っていません。 以下の計算は $A=B=400$、$E=1.0$、$a=b=0.34$ と置いた場合の形を見るためのもので、実際のモデルで成り立つ値ではありません。実測値は論文にあり、この章では引用しません(第5節で触れる論文の主張だけを出典つきで引きます)。
この仮定で のときを解くと、最適は 、、 でした。予算を変えると、最適はこう動きます。
コメント
コメントにはログインが必要です