

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 훈련 컨테이너에 대한 모델 작성 지침
<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 훈련 및 AWS 계정 Clean Rooms ML에서 로컬에서 모델을 테스트할 수 있도록 다음을 확인하세요.
  + 다양한 환경 변수를 통해 훈련 환경에 대한 유용한 속성에 액세스하는 훈련 스크립트를 작성하는 것이 좋습니다. 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 작업이 완료되고 모델 알고리즘에 만족하면 AWS Clean Rooms ML에 Amazon ECR 레지스트리를 등록할 수 있습니다. `CreateConfiguredModelAlgorithm` 작업을 사용하여 모델 알고리즘을 등록하고 `CreateConfiguredModelAlgorithmAssociation`를 사용하여 이를 공동 작업에 연결합니다.