

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

# トレーニングコンテナのモデル作成ガイドライン
<a name="custom-model-guidelines"></a>

このセクションでは、Clean Rooms ML のカスタム ML モデルアルゴリズムを作成するときにモデルプロバイダーが従うべきガイドラインについて詳しく説明します。
+ SageMaker AI [デベロッパーガイド」の説明に従って、適切な SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html) トレーニング対応コンテナベースイメージを使用します。次のコードでは、サポートされているコンテナベースイメージをパブリック SageMaker AI エンドポイントからプルできます。

  ```
  ecr_registry_endpoint='{{763104351884}}.dkr.ecr.$REGION.amazonaws.com'
  base_image='pytorch-training:2.3.0-cpu-py311-ubuntu20.04-sagemaker'
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ecr_registry_endpoint
  docker pull $ecr_registry_endpoint/$base_image
  ```
+ モデルをローカルで作成する場合は、モデルをローカル、開発インスタンス、 の SageMaker AI トレーニング、および Clean Rooms ML でテストできるように AWS アカウント、以下を確認してください。
  + さまざまな環境変数を使用して、トレーニング環境に関する有用なプロパティにアクセスするトレーニングスクリプトを作成することをお勧めします。Clean Rooms ML は、次の引数を使用してモデルコードのトレーニングを呼び出します: `SM_MODEL_DIR`、`SM_OUTPUT_DIR`、`SM_CHANNEL_TRAIN`、`FILE_FORMAT`。これらのデフォルトは、Clean Rooms ML によって使用され、すべての関係者のデータを使用して独自の実行環境で ML モデルをトレーニングします。
  + Clean Rooms ML は、Docker コンテナの`/opt/ml/input/data/{{channel-name}}`ディレクトリを介してトレーニング入力チャネルを利用できるようにします。各 ML 入力チャネルは、`CreateTrainedModel`リクエストで`channel_name`提供された対応するチャネルに基づいてマッピングされます。

    ```
    parser = argparse.ArgumentParser()# Data, model, and output directories
    
    parser.add_argument('--model_dir', type=str, default=os.environ.get('SM_MODEL_DIR', "/opt/ml/model"))
    parser.add_argument('--output_dir', type=str, default=os.environ.get('SM_OUTPUT_DIR', "/opt/ml/output/data"))
    parser.add_argument('--train_dir', type=str, default=os.environ.get('SM_CHANNEL_TRAIN', "/opt/ml/input/data/train"))
    parser.add_argument('--train_file_format', type=str, default=os.environ.get('FILE_FORMAT', "csv"))
    ```
  + モデルコードで使用される共同作業者のスキーマに基づいて合成データセットまたはテストデータセットを生成できることを確認します。
  + モデルアルゴリズム AWS Clean Rooms をコラボレーションに関連付ける AWS アカウント 前に、SageMaker AI トレーニングジョブを自分で実行できることを確認してください。

    次のコードには、ローカルテスト、SageMaker AI トレーニング環境テスト、Clean Rooms ML と互換性のあるサンプル Docker ファイルが含まれています。

    ```
    FROM  {{763104351884}}.dkr.ecr.us-west-2.amazonaws.com/pytorch-training:2.3.0-cpu-py311-ubuntu20.04-sagemaker
    MAINTAINER $author_name
    
    ENV PYTHONDONTWRITEBYTECODE=1 \
        PYTHONUNBUFFERED=1 \
        LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/usr/local/lib"
    
    ENV PATH="/opt/ml/code:${PATH}"
    
    # this environment variable is used by the SageMaker PyTorch container to determine our user code directory
    ENV SAGEMAKER_SUBMIT_DIRECTORY /opt/ml/code
    
    # copy the training script inside the container
    COPY train.py /opt/ml/code/train.py
    # define train.py as the script entry point
    ENV SAGEMAKER_PROGRAM train.py
    ENTRYPOINT ["python", "/opt/ml/code/train.py"]
    ```
+ コンテナの障害を最適にモニタリングするには、障害の理由でログをエクスポートし、デバッグすることをお勧めします。`GetTrainedModel` レスポンスでは、Clean Rooms ML は、このファイルの最初の 1024 文字を で返します`StatusDetails`。
+ モデルの変更を完了し、SageMaker AI 環境でテストする準備ができたら、指定された順序で次のコマンドを実行します。

  ```
  export ACCOUNT_ID=xxx
  export REPO_NAME=xxx
  export REPO_TAG=xxx
  export REGION=xxx
  
  docker build -t $ACCOUNT_ID.dkr.ecr.us-west-2.amazonaws.com/$REPO_NAME:$REPO_TAG
  
  # Sign into AWS $ACCOUNT_ID/ Run aws configure
  # Check the account and make sure it is the correct role/credentials
  aws sts get-caller-identity
  aws ecr create-repository --repository-name $REPO_NAME --region $REGION
  aws ecr describe-repositories --repository-name $REPO_NAME --region $REGION
  
  # Authenticate Doker
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com
  
  # Push To ECR Images
  docker push  $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com$REPO_NAME:$REPO_TAG
  
  # Create Sagemaker Training job
  # Configure the training_job.json with
  # 1. TrainingImage
  # 2. Input DataConfig
  # 3. Output DataConfig
  aws sagemaker create-training-job --cli-input-json file://training_job.json --region $REGION
  ```

  SageMaker AI ジョブが完了し、モデルアルゴリズムに満足したら、Amazon ECR レジストリを AWS Clean Rooms ML に登録できます。`CreateConfiguredModelAlgorithm` アクションを使用してモデルアルゴリズムを登録し、 `CreateConfiguredModelAlgorithmAssociation`を使用してコラボレーションに関連付けます。