大規模言語モデルをトレーニングするためにかかるコストを試算してみた

# はじめに

この記事では、LLM (Large Language Model: 大規模言語モデル)をトレーニングするためにかかるコストについて、調べてみた(推測してみた)ことをメモとして残すことを目的としています。

コストが気になった理由は主に以下の3つのコメントを読んだことです。そもそもエンジニアにかかるコストも大きいだろうし、大変だなー、程度に考えていたのですが、調べてみると、ハードウェア環境にかかるコストがとてつもなく大きいことがわかりました。

1. [# OpenAIのCEO、「巨大AIモデルを用いる時代は終った」と語る](https://wired.jp/article/openai-ceo-sam-altman-the-age-of-giant-ai-models-is-already-over/)に記載のあるGPT-4のトレーニングには、1億ドル(約140億円)以上の費用がかかった
2. [MosaicML MPT-7Bの発表記事](https://www.mosaicml.com/blog/mpt-7b)にトレーニングにかかった時間は、MosaicMLプラットフォームにて人手の介入なく、9.5日でコストは$200k (約2800万円)であった
3. [世界最大のオープン マルチリンガル 言語モデル: BLOOM](https://bigscience.huggingface.co/blog/bloom)の発表記事では、1760億パラメータのモデルでは、パリにあるJean Zay スーパーコンピュータを使って最終的なトレーニングの実行に117日間、€3m(約4億5000万円)相当の利用料がかかった

*コストの記載がある箇所は$1を140円、€1を150円として計算しています。*

# トレーニングにかかったコスト

コストは、必要なシステムの構成と時間で算出できると考えて、それぞれ調査してみました。どのような構成が必要なのか、についてはBigScience BLOOMの発表記事やそのニュース記事を参考にしています。

## BigScience BLOOM

[世界最大のオープン マルチリンガル 言語モデル: BLOOM](https://bigscience.huggingface.co/blog/bloom)には、モデルのトレーニングに使用したスーパーコンピュータの具体的な構成情報が見つかりませんでした。一方[BigScience Releases 176B Parameter AI Language Model BLOOM](https://www.infoq.com/news/2022/07/bigscience-bloom-nlp-ai/)の記事には、1760億パラメータのBLOOMモデルのトレーニングには、4ヶ月近く、416のA100 80GB GPUのクラスタ(スーパーコンピュータ)が必要であった、とあります。[Understand BLOOM, the Largest Open-Access AI, and Run It on Your Local Computer](https://towardsdatascience.com/run-bloom-the-largest-open-access-ai-model-on-your-desktop-computer-f48e1e2a9a32)では、1760億パラメータのトレーニングに384のA100 80GB GPUのクラスタで3.5ヶ月かかった、とあります。

## NVIDIA DGX A100
 
[NVIDIA DGX A100](https://www.nvidia.com/ja-jp/data-center/dgx-a100/)がNVIDA A100 80GB GPUを8枚搭載したマシンのようです。1つの筐体に8つのNVIDIA A100 80GB GPUが搭載されており、最大合計640GBのGPUメモリとあります。A100 40GBを8つで合計320GBのGPUメモリ構成もあるようです。システムメモリがGPUメモリが640GBの方はシステムメモリが2TB、GPUメモリが320GBの方はシステムメモリが1TBとシステム仕様に記載がありました。CPUはDual AMD Rome7742で合計128コアとのことです。NVIDIA DGX A100の費用は$199,000(2786万円)から、という記載が[NVIDIAのPress Release(英語)](https://nvidianews.nvidia.com/news/nvidia-ships-worlds-most-advanced-ai-system-nvidia-dgx-a100-to-fight-covid-19-third-generation-dgx-packs-record-5-petaflops-of-ai-performance)にありました。

## AWS EC2インスタンス

AWSでは[EC2 P4インスタンス](https://aws.amazon.com/jp/ec2/instance-types/p4/?nc1=h_ls)として、A100 40GB x8 GPU(p4d.24xlarge)とA100 80GB x8 GPU(p4de.24xlarge)が提供されています。A100 80GB x8 GPUのオンデマンド料金が$40.96(5,734.4円)/時間、730時間をかけて月額に換算すると$29,000.8(4,186,112円)となります。
1年間のリザーブドインスタンスにすれば、40%程度のディスカウントが適用され$24.01/時間となりますが年額$210,327.6(2900万円超)となります。

# コストの比較

DGX A100を購入する場合に必要となるであろう金額は以下のようになりました。実際には、DGX A100以外にも費用が必要だと思いますので、これだけで構成できるとは思えないのですが、ひとまず掛け算してみました。

比較対象としてAWS EC2 P4インスタンス(A100 80GB x8)を3.5ヶ月使った場合の費用も試算しました。`$29,000.8 x 48 (台) x 3.5 (月) = $4,872,134.4`

下記の表は、384 A100 80GB GPUを構成するには、DGX A100 80GB x8が48台、もしくはEC2インスタンス(p4de.24xlarge)が48台として試算しています。

|構成|台数|想定費用|
|:---:|---:|---:|
|NVIDIA DGX A100|48台|$9.5m (13億円)|
|AWS p4de.24xlarge|48台|$4.8m (6.8億円)|


# まとめ

大規模言語モデルのトレーニングには、数億円の費用がかかることがわかりました。コンシュマーグレードのGPUを搭載したリッチな構成のPCは50万円ほどから購入できそうですが、そもそも規模感が違うということもよくわかりました。

試算してみたところBigScience BLOOMの発表にある４.5億円の利用料がかかった、という話はリーズナブルなのかもしれません。そもそも額が大きいので、リーズナブルと言って良いのか、わかりませんが。

また、MosaicML MPT-7Bのトレーニング時間が9.5日間というのは、すごいことだということも理解できました。同じ条件で比較できるような具体的な情報はないのですが、おそらくかなり短い、と言えそうです。

BigScience BLOOMの発表には、70カ国以上、250以上の機関、1000名以上の研究者が1年に渡り研究を行なった成果との記述もありました。

コスト面だけを考慮しても、独自の言語モデルを作るのは大きなコストがかかる判断である、と言えることがわかりました。