

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

# クラスター固有の設定
<a name="cluster-specific-configurations"></a>

SageMaker HyperPod は、さまざまなクラスター環境でトレーニングジョブを柔軟に実行できます。各環境には独自の設定要件とセットアッププロセスがあります。このセクションでは、SageMaker HyperPod Slurm、SageMaker HyperPod k8s、SageMaker トレーニングジョブでトレーニングジョブを実行するために必要なステップと設定の概要を説明します。これらの設定を理解しておくことは、選択した環境で分散トレーニングの能力を効果的に活用するために不可欠です。

レシピは、以下のクラスター環境で使用できます。
+ SageMaker HyperPod Slurm オーケストレーション
+ SageMaker HyperPod Amazon Elastic Kubernetes サービスオーケストレーション
+ SageMaker トレーニングジョブ

クラスターでトレーニングジョブを起動するには、対応するクラスター設定と環境を設定してインストールします。

**Topics**
+ [HyperPod Slurm でのトレーニングジョブの実行](cluster-specific-configurations-run-training-job-hyperpod-slurm.md)
+ [HyperPod k8s でのトレーニングジョブの実行](cluster-specific-configurations-run-training-job-hyperpod-k8s.md)
+ [SageMaker トレーニングジョブの実行](cluster-specific-configurations-run-sagemaker-training-job.md)

# HyperPod Slurm でのトレーニングジョブの実行
<a name="cluster-specific-configurations-run-training-job-hyperpod-slurm"></a>

SageMaker HyperPod レシピは、GPU/Trainium Slurm クラスターへのトレーニングジョブの送信をサポートしています。トレーニングジョブを送信する前に、クラスター設定を更新します。クラスター設定を更新するには、次のいずれかの方法を使用します。
+ `slurm.yaml` の変更
+ コマンドラインで上書きする

クラスター設定を更新したら、環境をインストールします。

## クラスターを設定する
<a name="cluster-specific-configurations-configure-cluster-slurm-yaml"></a>

Slurm クラスターにトレーニングジョブを送信するには、Slurm 固有の設定を指定します。`slurm.yaml` を変更して Slurm クラスターを設定します。Slurm クラスターの設定の例は、次のとおりです。このファイルは、独自のトレーニングニーズに合わせて変更できます。

```
job_name_prefix: 'sagemaker-'
slurm_create_submission_file_only: False 
stderr_to_stdout: True
srun_args:
  # - "--no-container-mount-home"
slurm_docker_cfg:
  docker_args:
    # - "--runtime=nvidia" 
  post_launch_commands: 
container_mounts: 
  - "/fsx:/fsx"
```

1. `job_name_prefix`: ジョブ名のプレフィックスを指定すると、Slurm クラスターへの送信を簡単に識別できます。

1. `slurm_create_submission_file_only`: デバッグに役立つよう0に、ドライランではこの設定を True に設定します。

1. `stderr_to_stdout`: 標準エラー (stderr) を標準出力 (stdout) にリダイレクトするかどうかを指定します。

1. `srun_args`: 特定のコンピューティングノードの除外など、追加の srun 設定をカスタマイズします。詳細については、srun に関するドキュメントを参照してください。

1. `slurm_docker_cfg`: SageMaker HyperPod レシピランチャーが Docker コンテナを起動してトレーニングジョブを実行します。このパラメータ内で追加の Docker 引数を指定できます。

1. `container_mounts`: レシピランチャーのコンテナにマウントするボリュームを指定し、トレーニングジョブがそれらのボリューム内のファイルにアクセスできるようにします。

# HyperPod k8s でのトレーニングジョブの実行
<a name="cluster-specific-configurations-run-training-job-hyperpod-k8s"></a>

SageMaker HyperPod レシピは、GPU/Trainium Kubernetes クラスターへのトレーニングジョブの送信をサポートしています。トレーニングジョブを送信する前に、次のいずれかを実行します。
+ `k8s.yaml` クラスター設定ファイルを変更する
+ コマンドラインを使用してクラスター設定を上書きする

上記のステップのいずれかを実行したら、対応する環境をインストールします。

## `k8s.yaml` を使用してクラスターを設定する
<a name="cluster-specific-configurations-configure-cluster-k8s-yaml"></a>

トレーニングジョブを Kubernetes クラスターに送信するには、Kubernetes 固有の設定を指定します。設定には、クラスター名前空間または永続ボリュームの場所などがあります。

```
pullPolicy: Always
restartPolicy: Never
namespace: default
persistent_volume_claims:
  - null
```

1. `pullPolicy`: トレーニングジョブを送信する際にプルポリシーを指定できます。「常に」を指定すると、Kubernetes クラスターは常にリポジトリからイメージをプルします。詳細については、「[ イメージのプルポリシー](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy)」を参照してください。

1. `restartPolicy`: 失敗した場合にトレーニングジョブを再起動するかどうかを指定します。

1. `namespace`: トレーニングジョブを送信する Kubernetes 名前空間を指定できます。

1. `persistent_volume_claims`: ボリューム内のファイルにアクセスするためのすべてのトレーニングプロセスのトレーニングジョブの共有ボリュームを指定できます。

# SageMaker トレーニングジョブの実行
<a name="cluster-specific-configurations-run-sagemaker-training-job"></a>

SageMaker HyperPod レシピは、SageMaker トレーニングジョブの送信をサポートしています。トレーニングジョブを送信する前に、クラスター設定、`sm_job.yaml` を更新し、対応する環境をインストールする必要があります。

## レシピを SageMaker トレーニングジョブとして使用する
<a name="cluster-specific-configurations-cluster-config-sm-job-yaml"></a>

クラスターをホストしていない場合は、レシピを SageMaker トレーニングジョブとして使用できます。レシピを実行するには、SageMaker トレーニングジョブ設定ファイル `sm_job.yaml` を変更する必要があります。

```
sm_jobs_config:
  output_path: null 
  tensorboard_config:
    output_path: null 
    container_logs_path: null
  wait: True 
  inputs: 
    s3: 
      train: null
      val: null
    file_system:  
      directory_path: null
  additional_estimator_kwargs: 
    max_run: 1800
```

1. `output_path`: モデルを Amazon S3 URL に保存する場所を指定できます。

1. `tensorboard_config`: 出力パスや TensorBoard ログパスなどの TensorBoard 関連の設定を指定できます。

1. `wait`: トレーニングジョブの送信時にジョブの完了を待機するかどうかを指定できます。

1. `inputs`: トレーニングデータと検証データのパスを指定できます。データソースは、Amazon FSx や Amazon S3 URL などの共有ファイルシステムから取得できます。

1. `additional_estimator_kwargs`: SageMaker トレーニングジョブプラットフォームにトレーニングジョブを送信するための追加の推定ツール引数。詳細については、「[アルゴリズム推定ツール](https://sagemaker.readthedocs.io/en/stable/api/training/algorithm.html)」を参照してください。