【正解】C
【0からの解説】
①前提知識
・標準的なデータ並列では、各アクセラレータ(TPU チップ)がモデル全体(パラメータ・勾配・オプティマイザの状態)の完全なコピーを持ち、異なるデータのミニバッチを処理して勾配を集約します。つまり「モデル全体が 1 チップのメモリに収まること」が前提です。
・175B パラメータのモデルは、bf16(2 バイト)で保存してもパラメータだけで約 350 GB、Adam オプティマイザの状態(fp32 のマスター重みやモーメント)や勾配を含めると 2 TB を超えます。TPU v5p は 1 チップあたり約 95 GB の HBM しか持たないため、1 チップにモデル全体を載せる標準データ並列では必ず OOM になります。
・パラメータとオプティマイザの状態(および勾配)を全チップに分割(シャーディング)して持たせる手法として、ZeRO / FSDP(Fully Sharded Data Parallel)や、JAX の GSPMD / pjit による自動シャーディングがあります。データ並列の枠組みを保ったまま、各チップのメモリ使用量をおよそ「全体 ÷ チップ数」に削減でき、32 チップ合計の HBM(約 3 TB)を有効活用できます。
②要件と制約語の整理
・原因: 標準データ並列で各チップにモデル全体の複製を置いているため OOM。
・「メモリの問題を解決」し、かつ「トレーニングのレイテンシを最小限に」。
③正解がどう満たすか
パラメータとオプティマイザの状態をシャーディングすれば、モデルの状態が 32 チップに分散されて各チップのメモリ消費が大きく下がり、OOM が解消します。計算中に必要な部分だけを TPU の高速なチップ間相互接続(ICI)で集めて使うため、通信オーバーヘッドを抑えつつデータ並列のスループットを維持でき、レイテンシも最小限にできます。
【誤りの選択肢】
A:パラメータ サーバーで重みをホスト CPU メモリに置くと、ステップごとに CPU と TPU の間で巨大な重みを転送する必要があり、HBM 内の処理やチップ間相互接続に比べて大幅に遅くなります。レイテンシ最小の要件に反し、大規模 LLM の TPU トレーニングで推奨される構成でもありません。
B:勾配チェックポイント(アクティベーションの再計算)は、順伝播の中間アクティベーションのメモリを削減する手法です。今回の問題はパラメータとオプティマイザの状態そのものが 1 チップに収まらないことなので、アクティベーションを減らしても OOM は解消しません。さらに再計算によって計算時間が増えます。
D:データ並列のままチップ数を増やしても、各チップが持つのはモデル全体の完全なコピーのままなので、1 チップあたりのメモリ使用量は減りません。コストだけが増えて OOM は解決しません。
【参考】
分散トレーニングTPU v5pTPU スライスで JAX コードを実行する