

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pedoman penulisan model untuk wadah pelatihan
<a name="custom-model-guidelines"></a>

Bagian ini merinci pedoman yang harus diikuti oleh penyedia model saat membuat algoritme model ML khusus untuk Clean Rooms.
+ Gunakan gambar dasar kontainer yang didukung pelatihan SageMaker AI yang sesuai, seperti yang dijelaskan dalam Panduan [Pengembang SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html). Kode berikut memungkinkan Anda untuk menarik gambar dasar kontainer yang didukung dari titik akhir SageMaker AI publik.

  ```
  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
  ```
+ Saat membuat model secara lokal, pastikan hal berikut sehingga Anda dapat menguji model Anda secara lokal, pada instance pengembangan, pada Pelatihan SageMaker AI di Anda Akun AWS, dan di Clean Rooms MS.
  + Kami merekomendasikan menulis skrip pelatihan yang mengakses properti yang berguna tentang lingkungan pelatihan melalui berbagai variabel lingkungan. Clean Rooms MS menggunakan argumen berikut untuk menjalankan pelatihan pada kode model Anda:`SM_MODEL_DIR`,, `SM_OUTPUT_DIR``SM_CHANNEL_TRAIN`, dan`FILE_FORMAT`. Default ini digunakan oleh Clean Rooms untuk melatih model ML Anda di lingkungan eksekusinya sendiri dengan data dari semua pihak.
  + Clean Rooms MLmembuat saluran input pelatihan Anda tersedia melalui `/opt/ml/input/data/channel-name` direktori di wadah docker. Setiap saluran input ML dipetakan berdasarkan yang sesuai yang `channel_name` disediakan dalam `CreateTrainedModel` permintaan.

    ```
    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"))
    ```
  + Pastikan Anda dapat menghasilkan dataset sintetis atau pengujian berdasarkan skema kolaborator yang akan digunakan dalam kode model Anda.
  + Pastikan Anda dapat menjalankan pekerjaan pelatihan SageMaker AI sendiri Akun AWS sebelum mengaitkan algoritma model dengan AWS Clean Rooms kolaborasi.

    Kode berikut berisi contoh file Docker yang kompatibel dengan pengujian lokal, pengujian lingkungan Pelatihan SageMaker AI, dan Clean Rooms

    ```
    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"]
    ```
+ Untuk memantau kegagalan kontainer dengan sebaik-baiknya, kami sarankan untuk mengekspor log dan debugging untuk alasan kegagalan. Sebagai `GetTrainedModel` tanggapan, Clean Rooms MLmengembalikan 1024 karakter pertama dari file ini di bawah`StatusDetails`. 
+ Setelah Anda menyelesaikan perubahan model apa pun dan Anda siap untuk mengujinya di lingkungan SageMaker AI, jalankan perintah berikut dalam urutan yang disediakan.

  ```
  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
  ```

  Setelah pekerjaan SageMaker AI selesai dan Anda puas dengan algoritme model Anda, Anda dapat mendaftarkan Amazon ECR Registry dengan AWS Clean Rooms ML. Gunakan `CreateConfiguredModelAlgorithm` tindakan untuk mendaftarkan algoritma model dan `CreateConfiguredModelAlgorithmAssociation` mengaitkannya dengan kolaborasi.