Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Kubernetes クラスターのトレーニング前チュートリアル (GPU)

フォーカスモード
Kubernetes クラスターのトレーニング前チュートリアル (GPU) - Amazon SageMaker AI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

GPU Kubernetes クラスターでトレーニングジョブを起動するには、次の 2 つの方法があります。

前提条件

環境のセットアップを開始する前に、以下を確認してください。

  • HyperPod GPU Kubernetes クラスターが正しくセットアップされている。

  • 共有ストレージの場所。クラスターノードからアクセスできる Amazon FSx ファイルシステムまたは NFS システムを使用できます。

  • 次のいずれかの形式のデータ。

    • JSON

    • JSONGZ (圧縮 JSON)

    • 矢印

  • (オプション) HuggingFace のモデルの重みを事前トレーニングまたは微調整に使用する場合は、HuggingFace トークンを取得する必要があります。トークンの取得の詳細については、「ユーザーアクセストークン」を参照してください。

GPU Kubernetes 環境のセットアップ

GPU Kubernetes 環境を設定するには、以下を実行します。

  • 仮想環境をセットアップします。Python 3.9 以降を使用していることを確認してください。

    python3 -m venv ${PWD}/venv source venv/bin/activate
  • 次のいずれかの方法を使用して依存関係をインストールします。

    • (推奨): HyperPod コマンドラインツールメソッド:

      # install HyperPod command line tools git clone https://github.com/aws/sagemaker-hyperpod-cli cd sagemaker-hyperpod-cli pip3 install .
    • SageMaker HyperPod レシピメソッド:

      # install SageMaker HyperPod Recipes. git clone --recursive git@github.com:aws/sagemaker-hyperpod-recipes.git cd sagemaker-hyperpod-recipes pip3 install -r requirements.txt
  • kubectl と eksctl のセットアップ

  • Helm をインストールする

  • Kubernetes クラスターに接続する

    aws eks update-kubeconfig --region "${CLUSTER_REGION}" --name "${CLUSTER_NAME}" hyperpod connect-cluster --cluster-name "${CLUSTER_NAME}" [--region "${CLUSTER_REGION}"] [--namespace <namespace>]

SageMaker HyperPod CLI を使用してトレーニングジョブを起動する

SageMaker HyperPod コマンドラインインターフェイス (CLI) ツールを使用して、設定でトレーニングジョブを送信することをお勧めします。次の の例では、hf_llama3_8b_seq16k_gpu_p5x16_pretrainモデルのトレーニングジョブを送信します。

  • your_training_container: 深層学習コンテナ。SMP コンテナの最新リリースを確認するには、「」を参照してくださいSageMaker モデル並列処理ライブラリのリリースノート

  • (オプション) HuggingFace から事前トレーニング済みの重みが必要な場合は、次のキーと値のペアを設定して HuggingFace トークンを指定できます。

    "recipes.model.hf_access_token": "<your_hf_token>"
hyperpod start-job --recipe training/llama/hf_llama3_8b_seq16k_gpu_p5x16_pretrain \ --persistent-volume-claims fsx-claim:data \ --override-parameters \ '{ "recipes.run.name": "hf-llama3-8b", "recipes.exp_manager.exp_dir": "/data/<your_exp_dir>", "container": "658645717510.dkr.ecr.<region>.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121", "recipes.model.data.train_dir": "<your_train_data_dir>", "recipes.model.data.val_dir": "<your_val_data_dir>", "cluster": "k8s", "cluster_type": "k8s" }'

トレーニングジョブを送信したら、次のコマンドを使用して、正常に送信したかどうかを確認できます。

kubectl get pods NAME READY STATUS RESTARTS AGE hf-llama3-<your-alias>-worker-0 0/1 running 0 36s

STATUSPENDINGまたは の場合はContainerCreating、次のコマンドを実行して詳細を取得します。

kubectl describe pod <name of pod>

ジョブが にSTATUS変わったらRunning、次のコマンドを使用してログを確認できます。

kubectl logs <name of pod>

を実行するCompletedと、 は STATUSになりますkubectl get pods

recipes ランチャーを使用してトレーニングジョブを起動する

または、SageMaker HyperPod レシピを使用してトレーニングジョブを送信することもできます。レシピの使用にはk8s.yaml、、config.yaml、および起動スクリプトの実行の更新が必要です。

  • k8s.yaml、 を更新しますpersistent_volume_claims。Amazon FSx クレームを各コンピューティングポッドの /data ディレクトリにマウントします。

    persistent_volume_claims: - claimName: fsx-claim mountPath: data
  • config.yamlrepo_url_or_pathの下の を更新しますgit

    git: repo_url_or_path: <training_adapter_repo> branch: null commit: null entry_script: null token: null
  • launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh の更新

    • your_contrainer: Deep Learning コンテナ。SMP コンテナの最新リリースを確認するには、「」を参照してくださいSageMaker モデル並列処理ライブラリのリリースノート

    • (オプション) HuggingFace から事前トレーニング済みの重みが必要な場合は、次のキーと値のペアを設定して HuggingFace トークンを指定できます。

      recipes.model.hf_access_token=<your_hf_token>
    #!/bin/bash #Users should setup their cluster type in /recipes_collection/config.yaml REGION="<region>" IMAGE="658645717510.dkr.ecr.${REGION}.amazonaws.com/smdistributed-modelparallel:2.4.1-gpu-py311-cu121" SAGEMAKER_TRAINING_LAUNCHER_DIR=${SAGEMAKER_TRAINING_LAUNCHER_DIR:-"$(pwd)"} EXP_DIR="<your_exp_dir>" # Location to save experiment info including logging, checkpoints, ect TRAIN_DIR="<your_training_data_dir>" # Location of training dataset VAL_DIR="<your_val_data_dir>" # Location of talidation dataset HYDRA_FULL_ERROR=1 python3 "${SAGEMAKER_TRAINING_LAUNCHER_DIR}/main.py" \ recipes=training/llama/hf_llama3_8b_seq8k_gpu_p5x16_pretrain \ base_results_dir="${SAGEMAKER_TRAINING_LAUNCHER_DIR}/results" \ recipes.run.name="hf-llama3" \ recipes.exp_manager.exp_dir="$EXP_DIR" \ cluster=k8s \ cluster_type=k8s \ container="${IMAGE}" \ recipes.model.data.train_dir=$TRAIN_DIR \ recipes.model.data.val_dir=$VAL_DIR
  • トレーニングジョブを起動する

    bash launcher_scripts/llama/run_hf_llama3_8b_seq16k_gpu_p5x16_pretrain.sh

トレーニングジョブを送信したら、次のコマンドを使用して、正常に送信したかどうかを確認できます。

kubectl get pods
NAME READY STATUS RESTARTS AGE hf-llama3-<your-alias>-worker-0 0/1 running 0 36s

STATUSPENDINGまたは の場合はContainerCreating、次のコマンドを実行して詳細を取得します。

kubectl describe pod <name-of-pod>

ジョブが にSTATUS変わったらRunning、次のコマンドを使用してログを確認できます。

kubectl logs <name of pod>

を実行するCompletedと、 STATUSは に変わりますkubectl get pods

k8s クラスター設定の詳細については、「」を参照してくださいHyperPod k8s でトレーニングジョブを実行する

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.