

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

# AWS Clean Rooms ML での分散トレーニングの使用
<a name="use-distributed-training"></a>

前提条件: 
+ にアクセスできる AWS アカウント 。 AWS Clean Rooms
+ でのコラボレーションのセットアップ AWS Clean Rooms
+ 分散トレーニングをサポートする設定済みモデルアルゴリズム
+ 分散処理に適した大きなデータセット 
+ コラボレーションで ML モデルを作成および管理するための適切なアクセス許可
+ 分散トレーニング用に複数のインスタンスを実行するのに十分な Amazon EC2 クォータ 

分散トレーニングは、大量のデータを処理し、モデルパラメータを効率的に更新するために並行して機能する多くのコンピューティングノードの能力を活用します。

分散トレーニングの詳細については、*Amazon SageMakerデベロッパーガイド*」の[「分散トレーニングの概念](https://docs.aws.amazon.com/sagemaker/latest/dg/distributed-training.html#distributed-training-basic-concepts)」を参照してください。

------
#### [ Console ]

**分散トレーニングジョブを実行するには (コンソール)**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/cleanrooms](https://console.aws.amazon.com/cleanrooms/home) で AWS Clean Rooms コンソールを開きます。

1. 左のナビゲーションペインで、**[コラボレーション]** を選択します。

1. **コラボレーション**ページで、トレーニング済みモデルを作成するコラボレーションを選択します。

1. コラボレーションが開いたら、**ML モデル**タブを選択します。

1. **カスタム ML モデル** セクションで、**トレーニング済みモデル****の作成** を選択します。

1. **トレーニング済みモデルの作成**ページで、**関連付けられたモデルアルゴリズム**にアルゴリズムを指定します。

1. **トレーニング済みモデルの詳細については**、次のように入力します。

   1. Name には****、コラボレーションでモデルの一意の名前を入力します。

   1. (オプション) **説明** に、トレーニングされたモデルの説明を入力します。

   1. **トレーニングデータ入力モードでは**、次のいずれかを選択します。
      + ML ストレージボリュームに収まる小さなデータセットがあり、トレーニングスクリプトに従来のファイルシステムアクセスを希望する場合は、**ファイル**を選択します。
      + 大規模なデータセットに**パイプ**を選択して S3 から直接データをストリーミングすると、すべてをディスクにダウンロードする必要がなくなるため、トレーニング速度が向上し、ストレージ要件が軽減されます。
      + S3 からのストリーミングの利点とファイルシステムアクセスを組み合わせる場合は、**FastFile** を選択します。特にデータのシーケンシャル読み取りや、起動時間の短縮のためにより少ないファイルを処理する場合は、FastFile を選択します。

1. **ML 入力チャネルの詳細については**、以下を実行します。

   1. **ML 入力チャネル**では、モデルアルゴリズムにデータを提供する ML 入力チャネルを指定します。

      別のチャネルを追加するには、**別の ML 入力チャネルを追加する** を選択します。最大 19 個の ML 入力チャネルを追加できます。

   1. **チャネル名**に、ML 入力チャネルの名前を入力します。

   1. **Amazon S3 データディストリビューションタイプ**では、次のいずれかを選択します。
      + **完全レプリケート**を選択して、各トレーニングインスタンスにデータセットの完全なコピーを提供します。これは、データセットがメモリに収まるほど小さい場合、または各インスタンスがすべてのデータにアクセスする必要がある場合に最適です。
      + **S3 キーでシャーディング**を選択して、S3 キーに基づいてデータセットをトレーニングインスタンス間で分割します。各インスタンスは、合計 S3 オブジェクトの約 1/n を受け取ります。ここで、「n」はインスタンスの数です。これは、並行して処理する大規模なデータセットに最適です。
**注記**  
ディストリビューションタイプを選択するときは、データセットのサイズとトレーニング要件を考慮してください。**完全にレプリケートされた** は完全なデータアクセスを提供しますが、より多くのストレージが必要です。一方、**S3 キーによるシャーディング**により、大規模なデータセットの分散処理が可能になります。

1. **最大トレーニング期間** で、モデルをトレーニングする最大時間を選択します。

1. **ハイパーパラメータ**には、アルゴリズム固有のパラメータとその目的の値を指定します。ハイパーパラメータは、トレーニング対象のモデルに固有であり、モデルトレーニングを微調整するために使用されます。

1. **環境変数**には、アルゴリズム固有の変数とその意図した値を指定します。環境変数は Docker コンテナで設定されます。

1. **暗号化**でカスタム を使用するには AWS KMS key、**カスタム KMS キーのチェックボックスで 暗号化シークレット**を選択します。

1. **EC2 リソース設定**では、モデルトレーニングに使用されるコンピューティングリソースに関する情報を指定します。

   1. **インスタンスタイプ**で、実行するインスタンスのタイプを選択します。

      分散トレーニングでサポートされているインスタンスタイプは次のとおりです。
      + ml.m5.4xlarge
      + ml.m5.12xlarge 
      + ml.m5.2xlarge
      + ml.g5.12xlarge
      + ml.g5.24xlarge

   1. **インスタンス数**には、インスタンスの数を入力します。

   1. **ボリュームサイズを GB 単位で**入力するには、ML ストレージボリュームサイズを入力します。

1. **トレーニング済みモデルの作成** を選択します。

------
#### [ API ]

分散トレーニングジョブ (API) を実行するには

特定のパラメータを使用して次のコードを実行します。

```
import boto3 
acr_ml_client= boto3.client('cleanroomsml')
 
acr_ml_client.create_trained_model(
    membershipIdentifier= '{{membership_id}}',
    configuredModelAlgorithmAssociationArn = 'arn:aws:cleanrooms-ml:{{region:account:membership}}/membershipIdentifier/configured-model-algorithm-association/{{identifier}}',
    name='{{trained_model_name}}',
    trainingInputMode: "File",
    resourceConfig={
        'instanceCount': "3"
        'instanceType': "ml.m5.xlarge",
        'volumeSizeInGB': 3
    },
    dataChannels=[
        {
            "mlInputChannelArn": channel_arn_1,
            "channelName": "{{channel_name}}", 
            "S3DataDistributionType:" "FullyReplicated"
        }
  
    ]
)
```

------

**注記**  
トレーニング済みモデルを作成した後は、編集できません。変更するには、トレーニング済みモデルを削除し、新しいモデルを作成します。