モデル並列とは 重みの行列を割ってGPUで分担、Megatronは83億の重みを512基で
モデル並列は、1つのAIのモデルを複数のGPUに切り分けて置き、協力して計算する方法です。エヌビディアの研究者は2019年、83億個の重みのモデルを512基のGPUで学習し、1基の場合に比べ76%の効率を保ったと報告しました。
- モデル並列は、モデルそのものを分けて複数のGPUに置く方法です。データを分けるデータ並列と組み合わせて使います。
- 代表は、1つの層の重みの行列を縦や横に割って分担する「テンソル並列」です。
- テンソル並列は通信が多く、GPU同士を速い専用の道(NVLink)でつないだ範囲の中で使うのが基本です。
- メタのLlama 3 405Bは、テンソル並列を1台のサーバーの8基に収めました。
モデルが大きくなると、重みが1基のGPUのメモリに入りません。4,050億個の重みは、16ビットで持つだけで約810GBになり、H100の80GBの10倍を超えます(計算)。そこで、モデルを切り分けて複数のGPUに置きます。これがモデル並列です。
切り分け方には2通りあります。1つの層の中の計算を割る方法(テンソル並列)と、層の並びを前後で区切る方法(パイプライン並列)です。ここでは主に前者を扱います。
行列を割って、答えを寄せる
言語モデルの計算の中心は、大きな行列の掛け算です。テンソル並列では、重みの行列を列や行の方向に割り、各GPUに一部ずつ持たせます。各GPUは自分の分の掛け算をし、その結果を寄せ集めて次の計算に進みます。
この「寄せ集め」が、層ごとに何度も起こります。GPU同士の通信が遅いと、計算より待ち時間のほうが長くなります。テンソル並列は、通信の速さに最も敏感な分け方です。
Megatron-LMの数字
エヌビディアの研究者が2019年に公表した「Megatron-LM」は、テンソル並列を言語モデルに広く使う出発点になりました。論文の要旨によると、数字は次の通りです。
| 項目 | 数字 |
|---|---|
| モデルの重み | 最大83億個 |
| 使ったGPU | 512基 |
| 全体で出した計算の速さ | 毎秒15.1ペタFLOPS |
| 1基の場合と比べた効率 | 76% |
| 1基の場合の計算の速さ | 毎秒39テラFLOPS(理論値の30%) |
手法は、PyTorchの中に少しの通信の命令を足すだけで済むと論文は説明しています。新しいコンパイラや言語は要りませんでした。
速い道の範囲で使う
テンソル並列は、NVLinkでつながったGPUの範囲に収めるのが基本です。メタのLlama 3 405Bの学習では、テンソル並列の数を8とし、1台のサーバーの8基に収めました。サーバーをまたぐ通信が要る分け方は、外側に置いています。
この範囲を広げたのが、ラック単位の製品です。エヌビディアのGB200 NVL72は72基のGPUをNVLinkでつなぎ、1基あたり双方向で毎秒1.8テラバイト、合計で毎秒130テラバイトの帯域を持ちます。8基を超えてテンソル並列を組む余地ができました。
専門家混合型(MoE)のモデルでは、別の切り分けも使われます。多数の「専門家」の部品を、GPUごとに分けて置く「専門家並列」です。6,710億個の重みのうち1語ごとに370億個を動かすDeepSeek-V3のようなモデルで、専門家を多数のGPUに散らして置きます。
関連する用語
- テンソル並列:層の中の重みの行列を割って分担する方法。
- パイプライン並列:層の並びを区切ってGPUに割り当てる方法。
- 専門家並列:MoEのモデルの専門家をGPUごとに分けて置く方法。
- NVLink:エヌビディアのGPU同士をつなぐ専用の道。
Megatron-LMの名前は、エヌビディアが公開している大規模学習のソフト群に今も使われています。
この記事は公開資料をもとに作成しています。売買をすすめるものではありません。誤りを見つけたら訂正します(編集方針)。
関連する記事
分散学習とは 1つのモデルを数万基のGPUに分ける、メタのLlama 3は4種類の分け方を併用
分散学習は、1つのAIのモデルの学習を多数のGPUに分けて同時に進める方法です。メタはLlama 3 405Bを最大1万6千基のH100で学習し、4種類の分け方を組み合わせ、GPUの計算能力の38〜43%を引き出しました。
データ並列とは GPUごとに別のデータで学習し結果を平均、メタはLlama 3で128組に
データ並列は、学習のデータを多数のGPUに分け、それぞれが同じモデルの写しで計算して結果を平均する方法です。マイクロソフトの研究者は、写しの重複を削るZeROで、1,000億個を超える重みのモデルを400基のGPUで学習できたと報告しました。
パイプライン並列とは 層の並びをGPUに割り振る流れ作業、Llama 3は16段に分割
パイプライン並列は、モデルの層を前後の区間に分けてGPUに割り振り、工場の流れ作業のように学習させる方法です。メタはLlama 3 405Bの学習で、モデルを16の区間に分けました。
建設のリードタイムとは TSMC熊本は着工から開所まで約1年10か月、アリゾナは発表から量産まで約4年半
建設のリードタイムとは、工場やデータセンターの着工から稼働までにかかる時間です。TSMCの熊本の第1工場は2022年4月に着工し、2024年2月に開所式を開きました。