はじめに

Google Cloud での LLM (大規模言語モデル)を開発するうえで不可欠な GPU インスタンスの利用ステップについてまとめました。Google Cloud で GPU インスタンスの利用予定があれば、こちらぜひ参照ください。
当該記事では、GPU インスタンスの構築内容には触れず、起動にあたってどのようなことが最低限必要か、に触れた内容になります。

GPU とは

LLM 開発において、GPU はなくてはならないものです。NVIDIA のブログにも記載されているように、以下の理由から GPU は LLM 開発にとって重要な位置づけとなっております。

GPU の並列処理能力:大量のデータを効率的に処理できます。

スーパーコンピューティングへのスケールアップ:大規模な計算能力を提供します。

広範な AI ソフトウェアスタック:多様な AI アプリケーションをサポートします。

結果として、GPU は CPU よりも高速でエネルギー効率が高く、AI のトレーニングや推論において優れた性能を発揮します。

詳細は NVIDIA のブログ を参照してください。

Google Cloud で GPU インスタンスを利用するために

Google Cloud では、最新の NVIDIA H100 GPU を搭載したインスタンスが提供されています。東京リージョンでも 6 月から利用可能になりました。ここでは、GPU を利用するためのステップを解説します。

全体図
GPU リクエストフロー

ステップ 1 : GPU リクエストを出す

Google Cloud のカスタマーエンジニアやサポートに連絡し、GPU のクォータ引き上げを申請します。申請はインスタンス数ではなく、GPU コア数で行います。例えば、NVIDIA H100 GPU を搭載した A3 インスタンスでは、1 インスタンスに 8 基の GPU を積んでいます。50 インスタンス利用するには、400 の GPU コアのクォータ引き上げが必要です。

ステップ 2 :キャパシティの確認

Google Cloud でクォータ申請内容が対応可能か確認されます。

ステップ 3 :クォータ引き上げとデプロイ方法の連絡

引き上げが承認されると、GPU インスタンスのデプロイ方法について連絡がきます。この案内を受けて、内容に応じて、 DWS (Dynamic Workload Scheduler)、予約、オンデマンドのいずれかの方法でインスタンスを利用することができます。

ステップ 4 :インスタンス構築

デプロイ方法には以下の 3 つがあります:

  1. 予約
  2. DWS
  3. オンデマンド

予約

予約イメージ図

予約には、オンデマンド予約と将来の予約リクエストの 2 種類があります。将来の予約リクエストはプレビュー機能です、詳細は 将来の予約 を参照してください。予約する際には、インスタンスタイプ、台数、ゾーンのような内容を指定する必要があります。その他のパラメタもありますので、詳細は こちら を参照ください

DWS

DWS の詳細は こちら を参照ください。DWS は、GPU の利用を順番待ちするようなイメージで、GPU の需要が高まっていったことから生まれた、効率的にリソースを確保する仕組みとなります。
現状、Managed Instance Groups ( MIG )、GKE、Vertex AI Training、Batch on GCE のいずれかで利用が可能です。
※なお、Vertex AI Training では A3 インスタンスが選択肢としてドキュメント上記載されておりませんでした

DWS を利用する方法としては以下の2つのモードがあります。:

  1. Flex Start Mode
    DWS(Flex Start mode)
    必要な数、期間、および希望するリージョンを指定し GPU の容量のリクエストを行います。 DWS にてリクエストを繰り返し行い、必要な容量が使える段階で、VM が自動的にプロビジョニングされます。最小期間のしばりはなく、最大 7 日間の連続起動が可能です。

2.Calender Mode
DWS(Calender Mode)
予約にて記載した将来の予約を拡張した機能となります。こちらは最大14日間利用可能です、8週間前から予約することが可能で、リクエストの内容で承認されれば、決めたタイミングから確実に起動し、利用することができます。

オンデマンド

オンデマンドは、通常のインスタンス作成と同様の手順で GPU インスタンスを起動します。クォータのリクエスト時にオンデマンド利用を想定する場合、事前に申請が必要です。

ユースケース

各デプロイ方法の中のユースケースを記載します。

予約

7日間、14日間の枠に収まらない利用期間が要し且つ、大きい数量が必要な場合には、予約機能を利用することをお勧めします。
想定数量が確実に使えるわけではないので、利用にあたっては、Google Cloud と利用計画を共有し、調整する必要があります。

DWS

GPU の実行待ちという状態にはなってしまうため、時間的な制約が緩く順番待ちが行えるような処理や、7日、14日など短期間で終えられるような処理は当該機能の利用をお勧めします。

オンデマンド

予約や DWS のような機能がある中で、オンデマンドで起動しようとするのは難しいかもしれません。何らかの事情で予約、DWSの機能を使えないような場合、オンデマンドでの利用をお試しください。

まとめ

GPU インスタンスを利用するためのステップをまとめました。GPU インスタンスは高価であり、タイミングを逃すとキャパシティ状況に応じて利用に時間を要するケースもあります。
そのため、確実に確保するためには、予約機能や、 DES 機能を利用することをお勧めしますが、利用時には、Google Cloud の担当エンジニアや、サポートと連携し、利用計画をご検討ください。
もし Google Cloud で LLM 開発を行われるような際には、ご参照いただければと思います。
次回以降は、今回話題にあがった DWS や、HPC ToolKit の利用について、記載できればと考えています。