

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

# 推論コンテナのモデル作成ガイドライン
<a name="inference-model-guidelines"></a>

このセクションでは、Clean Rooms 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-inference: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 は、推論からのモデルアーティファクトを docker コンテナの `/opt/ml/model` ディレクトリを介して推論コードで使用できるようにします。
  + Clean Rooms ML は入力を行ごとに分割し、`MultiRecord`バッチ戦略を使用して、変換されたすべてのレコードの最後に改行文字を追加します。
  + モデルコードで使用される共同作業者のスキーマに基づいて、合成またはテスト推論データセットを生成できることを確認します。
  + モデルアルゴリズム AWS Clean Rooms をコラボレーションに関連付ける AWS アカウント 前に、SageMaker AI バッチ変換ジョブを自分で実行できることを確認してください。

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

    ```
    FROM {{763104351884}}.dkr.ecr.us-east-1.amazonaws.com/pytorch-inference:1.12.1-cpu-py38-ubuntu20.04-sagemaker
    
    ENV PYTHONUNBUFFERED=1
    
    COPY serve.py /opt/ml/code/serve.py
    COPY inference_handler.py /opt/ml/code/inference_handler.py
    COPY handler_service.py /opt/ml/code/handler_service.py
    COPY model.py /opt/ml/code/model.py
    
    RUN chmod +x /opt/ml/code/serve.py
    
    ENTRYPOINT ["/opt/ml/code/serve.py"]
    ```
+ モデルの変更を完了し、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 Docker
  aws ecr get-login-password --region $REGION | docker login --username AWS --password-stdin $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com
  
  # Push To ECR Repository
  docker push $ACCOUNT_ID.dkr.ecr.$REGION.amazonaws.com$REPO_NAME:$REPO_TAG
  
  # Create Sagemaker Model
  # Configure the create_model.json with
  # 1. Primary container - 
      # a. ModelDataUrl - S3 Uri of the model.tar from your training job
  aws sagemaker create-model --cli-input-json file://create_model.json --region $REGION
  
  # Create Sagemaker Transform Job
  # Configure the transform_job.json with
  # 1. Model created in the step above 
  # 2. MultiRecord batch strategy
  # 3. Line SplitType for TransformInput
  # 4. AssembleWith Line for TransformOutput
  aws sagemaker create-transform-job --cli-input-json file://transform_job.json --region $REGION
  ```

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