UnityとゲームAIと将棋

Unity、Pythonを中心にゲーム開発やゲームAI開発の技術メモ等、たまに将棋も

【LLM】大規模言語モデルを動かすのに必要なGPUメモリ

結論

【推論】
推論時の必要GPUメモリ[GB] = パラメータ数[b] × 2 
【学習】
学習時の必要GPUメモリ[GB] = 推論時の必要GPUメモリ[GB] × 4
【n bit 量子化】
量子化時必要GPUメモリ[GB] = 通常時必要GPUメモリ[GB] × ( n / 通常時の bit 数)
【LoRA】
学習時の必要GPUメモリ[GB] = 推論時の必要GPUメモリ[GB]

詳細

GPTのような大規模言語モデル(LLM)を動かすのに必要なGPUメモリを調べたのでまとめておきます。
参考にしたのは以下の二つの資料です。

qiita.com

www.docswell.com

上の二つの資料を総合すると、概算なので正確ではありませんが、以下のようにまとめられます。

【推論】
推論時の必要GPUメモリ[GB] = パラメータ数[b] × 2 
【学習】
学習時の必要GPUメモリ[GB] = 推論時の必要GPUメモリ[GB] × 4
【n bit 量子化】
量子化時必要GPUメモリ[GB] = 通常時必要GPUメモリ[GB] × ( n / 通常時の bit 数)
【LoRA】
学習時の必要GPUメモリ[GB] = 推論時の必要GPUメモリ[GB]

「n bit 量子化
通常は float32 や float16 といった "32 bit" or "16 bit" で計算されている変数を"n bit"の変数として扱って計算する手法です。
「LoRA」
事前学習済みの重みとは別の「ファインチューニング用学習重み」を新しく追加する手法です。