このチュートリアルでは、MaxText と Cluster Toolkit を使用して、Tensor Processing Unit (TPU) v6e-64クラスタ上でマルチホスト強化学習 (RL) トレーニングを実行する方法を示します。Cluster Toolkitを使用して、マルチホストのトレーニングワークロードを実行し、結果を Hugging Face 形式にエクスポートして提供します。
目標
- Cluster Toolkit とその依存関係をインストールしてください。
- MaxText とその依存関係をインストールしてください。
- Cluster Toolkit クラスターをデプロイします。
- ハグ顔モデルを MaxText 形式に変換します。
- TPU v6e クラスタ上で強化学習のトレーニングワークロードを実行します。
- 微調整したモデルを、提供用にハグフェイス形式に戻します。
費用
このドキュメントでは、課金対象である次の Google Cloudコンポーネントを使用します。
料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。
このドキュメントに記載されているタスクの完了後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。
を参照してください。始める前に
このチュートリアルを使用するには、Hugging Face のアクセストークンが必要です。Hugging Faceで無料アカウントに登録できます。アカウントを作成したら、アクセストークンを生成してください。
- Hugging Face へようこそページで、アカウントのアバターをクリックし、アクセストークンを選択します。
- オンアクセストークンページをクリック新しいトークンを作成する。
- Readトークンタイプを選択し、トークンの名前を入力してください。
- アクセストークンが表示されました。トークンは安全な場所に保管してください。
- Hugging Face のウェブサイトで、トレーニング予定のモデルのライセンス契約に同意してください。このチュートリアルではモデル
gemma4-26bを使用します。
このチュートリアルを完了するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールを付与するよう管理者に依頼してください。
-
このチュートリアルを完了するには:
- TPU 管理者 (
roles/tpu.admin) - サービス アカウント ユーザー(
roles/iam.serviceAccountUser) - コンピュータエディタ (
roles/compute.editor)
- TPU 管理者 (
-
MaxText コンテナイメージを準備するには:
- Cloud Build 編集者 (
roles/cloudbuild.builds.editor) - Artifact Registry 管理者(
roles/artifactregistry.admin) - ストレージ管理者 (
roles/storage.admin) - サービス利用管理者 (
roles/serviceusage.serviceUsageAdmin)
- Cloud Build 編集者 (
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
環境変数を設定する
環境変数を設定します。
次のように置き換えます。
- YOUR_PROJECT_ID: 実際の Google Cloud プロジェクト ID。
- YOUR_REGION: クラスターをデプロイするリージョン。
- YOUR_ZONE: クラスターをデプロイするゾーン。
- YOUR_CLUSTER_NAME: Google Kubernetes Engine クラスタの名前。
- YOUR_REPOSITORY_NAME: MaxText イメージのアーティファクトレジストリリポジトリの名前。
- YOUR_BUCKET_NAME: クラウドストレージバケットのグローバルに一意な名前。
- YOUR_RESERVATION_NAME: 予約の名前。
- YOUR_HF_TOKEN: Hugging Face アクセス トークン。
Cluster Toolkit の依存関係をインストールする
Linux または macOS クライアントまたはワークステーションからこのチュートリアルを完了するには、Cluster Toolkit ドキュメントの 依存関係のインストール の関連手順に従ってください。
Cloud Shell を使用している場合は、このセクションはスキップしてください。
Cluster Toolkit をインストールする
Cluster Toolkit をインストールするの手順に沿って、Cluster Toolkit 用のビルド済みバンドルをインストールします。
MaxText コンテナイメージを準備する
MaxText コンテナイメージを準備するには、必要な依存関係のインストールを含め、以下の手順を実行してください。
Cloud Storage バケットを作成します。
アーティファクトレジストリリポジトリを作成する。
リポジトリのルートディレクトリに、ファイル名が
cloudbuild.yamlで、以下の内容を記述したファイルを作成してください。Cloud Build を使用して MaxText の Docker イメージをビルドします。
Cluster Toolkit クラスターを作成します
Cluster Toolkit クラスターを 64 で作成およびデプロイするにはv6eTPU チップを使用する場合は、以下の手順を実行してください。
gke.gcsfuse.profileUserという名前のカスタム ID およびアクセス管理 (IAM) ロールを作成します。Cloud Storage バケットを作成します。
デフォルトでは、クラスタノードプールサービスアカウントには、クラウドストレージバケットへの書き込みに必要な権限がありません。ノードプールサービスアカウントがクラウドストレージバケットに書き込めるようにするには、
Storage Adminロールを付与する必要があります。このロールを付与するには、node_pool_service_accountという名前のservice-accountモジュールを更新して、gke-tpu-v6e-advanced.yamlファイルを編集します。デフォルトの IPv6 およびマシンタイプの設定を上書きするカスタム設定を
gke-tpu-v6e-clusterブロックに適用します。ブループリント
gke-tpu-v6e-advanced.yamlを使用し、--varsフラグを使用して必要な変数を渡すことで、Cluster Toolkit クラスターをデプロイします。
モデルを MaxText 形式に変換します
モデルを MaxText 形式でトレーニングするには、Hugging Face 形式から MaxText 形式に変換する必要があります。
Cluster Toolkit クラスターの作成が完了したら、Docker を設定します。
後続のコマンドを簡素化するには、デフォルトのプロジェクト、クラスタ、ロケーションを構成します。
モデルを Hugging Face 形式から MaxText 形式に変換し、Cloud Storage バケットに保存します。
変換ジョブのステータスを確認します。
トレーニング ワークロードを開始する
変換プロセスが完了したら、RL トレーニング ワークロードを開始します。
トレーニング ジョブのステータスを確認します。
トレーニング済みモデルを Hugging Face 形式に変換する
トレーニング ワークロードが完了したら、モデルを Hugging Face 形式に戻します。
変換ジョブのステータスを確認します。
クリーンアップ
追加料金が発生しないようにするには、このチュートリアルで作成したリソースを削除します。
次のステップ
- Cloud TPU の詳細については、Cloud TPU の概要をご覧ください。
v6e-64TPU のアーキテクチャと構成の詳細については、TPU v6e をご覧ください。- Cluster Toolkit の詳細については、Cluster Toolkit の概要をご覧ください。