MLチームが数百億パラメータを持つ大規模言語モデル(LLM:Large Language Model)をSageMakerでトレーニングしようとしています。最大構成のml.p4d.24xlargeインスタンス(GPU 8基、各80GB)を使用しても、モデル全体が単一GPUのメモリに収まらず、メモリ不足エラーが発生します。このシナリオで最も適切な解決策はどれですか?
データ並列(Data Parallelism)は各GPUが完全なモデルコピーを保持するため、モデルがGPUメモリを超える場合には使用できません。モデル並列(Model Parallelism)はモデル自体を複数GPUに分割するため、超大規模モデルのトレーニングが可能です。SageMaker Model Parallel(SMP)はテンソル並列・パイプライン並列を自動化し、コード変更を最小限でこれを実現します。 選択肢AのSageMaker Distributed Data Parallel (SMDDP) を使用するアプローチは、データを複数GPUに分散させますが、各GPUに完全なモデルコピーが必要なため、モデルが単一GPUメモリを超える問題は解決できません。 選択肢Cの勾配チェックポイント(Gradient Checkpointing)のみを使用するアプローチは、メモリ使用量を削減できますが、モデルが単一GPUに収まらない根本的な問題は解決できません。 選択肢DのAmazon EMR上のApache Sparkを使用するアプローチは、分散データ処理に優れていますが、GPUメモリ分割によるディープラーニングモデルのトレーニングには対応していません。