

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

# Model kustom di Kamar Bersih ML
<a name="custom-models"></a>

Dengan Clean Rooms, anggota kolaborasi dapat menggunakan algoritma model kustom dockerized yang disimpan di Amazon ECR untuk bersama-sama menganalisis data mereka. Untuk melakukan ini, *penyedia model* harus membuat gambar dan menyimpannya di Amazon ECR. Ikuti langkah-langkah di [Amazon Elastic Container Registry User Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/) untuk membuat repositori pribadi yang akan berisi model HTML kustom. 

Setiap anggota kolaborasi dapat menjadi *penyedia model*, asalkan mereka memiliki izin yang benar. Semua anggota kolaborasi dapat menyumbangkan data ke model. Untuk tujuan panduan ini, data yang berkontribusi anggota disebut sebagai *penyedia data*. Anggota yang menciptakan kolaborasi adalah *pembuat kolaborasi*, dan anggota ini dapat berupa *penyedia model*, salah satu *penyedia data*, atau keduanya.

Topik berikut menjelaskan informasi yang diperlukan untuk membuat model ML kustom

**Topics**
+ [

# Prasyarat pemodelan HTML khusus
](custom-model-prerequisites.md)
+ [

# Pedoman penulisan model untuk wadah pelatihan
](custom-model-guidelines.md)
+ [

# Pedoman pembuatan model untuk wadah inferensi
](inference-model-guidelines.md)
+ [

# Menerima log dan metrik model
](custom-model-logs.md)

# Prasyarat pemodelan HTML khusus
<a name="custom-model-prerequisites"></a>

Sebelum Anda dapat melakukan pemodelan HTML kustom, Anda harus mempertimbangkan hal berikut:
+ Tentukan apakah pelatihan model dan inferensi pada model yang dilatih akan dilakukan dalam kolaborasi.
+ Tentukan peran yang akan dilakukan setiap anggota kolaborasi dan berikan mereka kemampuan yang sesuai.
  + Tetapkan `CAN_QUERY` kemampuan kepada anggota yang akan melatih model dan menjalankan inferensi pada model yang dilatih.
  + Tetapkan `CAN_RECEIVE_RESULTS` untuk setidaknya satu anggota kolaborasi.
  + Tetapkan `CAN_RECEIVE_MODEL_OUTPUT` atau `CAN_RECEIVE_INFERENCE_OUTPUT` kemampuan kepada anggota yang akan menerima ekspor model terlatih atau output inferensi, masing-masing. Anda dapat memilih untuk menggunakan kedua kemampuan jika diperlukan oleh kasus penggunaan Anda.
+ Tentukan ukuran maksimum artefak model terlatih atau hasil inferensi yang akan Anda izinkan untuk diekspor.
+ Kami menyarankan agar semua pengguna memiliki `CleanrooomsFullAccess` dan `CleanroomsMLFullAccess` kebijakan yang melekat pada peran mereka. Menggunakan model ML khusus memerlukan penggunaan AWS Clean Rooms AWS Clean Rooms dan AWS Clean Rooms SDKs.
+ Pertimbangkan informasi berikut tentang peran IAM.
  + Semua penyedia data harus memiliki peran akses layanan yang memungkinkan AWS Clean Rooms untuk membaca data dari AWS Glue katalog dan tabel mereka, dan lokasi Amazon S3 yang mendasarinya. Peran ini mirip dengan yang diperlukan untuk query SQL. Ini memungkinkan Anda untuk menggunakan `CreateConfiguredTableAssociation` tindakan. Untuk informasi selengkapnya, lihat [Membuat peran layanan untuk membuat asosiasi tabel yang dikonfigurasi](ml-roles.md#ml-roles-custom-configure-table). 
  + Semua anggota yang ingin menerima metrik harus memiliki peran akses layanan yang memungkinkan mereka menulis CloudWatch metrik dan log. Peran ini digunakan oleh Clean Rooms MLuntuk menulis semua metrik model dan log ke anggota Akun AWS selama pelatihan model dan inferensi. Kami juga menyediakan kontrol privasi untuk menentukan anggota mana yang memiliki akses ke metrik dan log. Ini memungkinkan Anda untuk menggunakan `CreateMLConfiguration` tindakan. Untuk informasi selengkapnya, lihat [Buat peran layanan untuk pemodelan ML kustom - Konfigurasi ML](ml-roles.md#ml-roles-custom-configure). 

    Anggota yang menerima hasil harus menyediakan peran akses layanan dengan izin untuk menulis ke bucket Amazon S3 mereka. Peran ini memungkinkan Clean Rooms MLuntuk mengekspor hasil (artefak model terlatih atau hasil inferensi) ke bucket Amazon S3. Ini memungkinkan Anda untuk menggunakan `CreateMLConfiguration` tindakan. Untuk informasi selengkapnya, lihat [Buat peran layanan untuk pemodelan ML kustom - Konfigurasi ML](ml-roles.md#ml-roles-custom-configure). 
  + Penyedia model harus menyediakan peran akses layanan dengan izin untuk membaca repositori dan gambar Amazon ECR mereka. Ini memungkinkan Anda untuk menggunakan `CreateConfigureModelAlgorithm` tindakan. Untuk informasi selengkapnya, lihat [Buat peran layanan untuk menyediakan model ML kustom](ml-roles.md#ml-roles-custom-model-provider). 
  + Anggota yang membuat `MLInputChannel` untuk menghasilkan kumpulan data untuk pelatihan atau inferensi harus menyediakan peran akses layanan yang memungkinkan Clean Rooms MLuntuk menjalankan kueri SQL di. AWS Clean Rooms Ini memungkinkan Anda untuk menggunakan `CreateTrainedModel` dan `StartTrainedModelInferenceJob` tindakan. Untuk informasi selengkapnya, lihat [Membuat peran layanan untuk menanyakan kumpulan data](ml-roles.md#ml-roles-custom-query-dataset). 
+ Penulis model harus mengikuti [Pedoman penulisan model untuk wadah pelatihan](custom-model-guidelines.md) dan [Pedoman pembuatan model untuk wadah inferensiMenerima log dan metrik model](inference-model-guidelines.md) untuk memastikan input dan output model dikonfigurasi seperti yang diharapkan oleh. AWS Clean Rooms

# 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.

# Pedoman pembuatan model untuk wadah inferensi
<a name="inference-model-guidelines"></a>

Bagian ini merinci pedoman yang harus diikuti oleh penyedia model saat membuat algoritme inferensi untuk Clean Rooms ML.
+ Gunakan gambar dasar kontainer yang didukung inferensi 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-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
  ```
+ Saat membuat model secara lokal, pastikan hal berikut sehingga Anda dapat menguji model Anda secara lokal, pada instance pengembangan, pada Transformasi SageMaker Batch AI di Anda Akun AWS, dan di Clean Rooms MS.
  + Clean Rooms MLmembuat artefak model Anda dari inferensi tersedia untuk digunakan oleh kode inferensi Anda melalui `/opt/ml/model` direktori di wadah docker.
  + Clean Rooms MLmembagi input demi baris, menggunakan strategi `MultiRecord` batch, dan menambahkan karakter baris baru di akhir setiap catatan yang diubah.
  + Pastikan Anda dapat menghasilkan kumpulan data inferensi sintetis atau pengujian berdasarkan skema kolaborator yang akan digunakan dalam kode model Anda.
  + Pastikan Anda dapat menjalankan pekerjaan transformasi batch SageMaker AI sendiri Akun AWS sebelum mengaitkan algoritme model dengan AWS Clean Rooms kolaborasi.

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

    ```
    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"]
    ```
+ 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 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
  ```

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

# Menerima log dan metrik model
<a name="custom-model-logs"></a>

Untuk menerima log dan metrik dari pelatihan atau inferensi model kustom, anggota harus telah [membuat Konfigurasi ML](https://docs.aws.amazon.com/clean-rooms/latest/userguide/create-custom-ml-collaboration.html) dengan peran valid yang memberikan CloudWatch izin yang diperlukan (lihat [Membuat peran layanan untuk pemodelan HTML kustom - Konfigurasi ML](https://docs.aws.amazon.com/clean-rooms/latest/userguide/ml-roles.html#ml-roles-custom-configure)).

**Metrik sistem**

Metrik sistem untuk pelatihan dan inferensi, seperti CPU dan pemanfaatan memori, dipublikasikan ke semua anggota dalam kolaborasi dengan Konfigurasi ML yang valid. Metrik ini dapat dilihat saat pekerjaan berlangsung melalui CloudWatch Metrik di `/aws/cleanroomsml/TrainedModels` atau ruang `/aws/cleanroomsml/TrainedModelInferenceJobs` nama, masing-masing.

**Log model**

Akses ke log model disediakan oleh kebijakan konfigurasi privasi dari setiap algoritma model yang dikonfigurasi. Penulis model menetapkan kebijakan konfigurasi privasi saat mengaitkan algoritma model yang dikonfigurasi (baik melalui konsol atau `CreateConfiguredModelAlgorithmAssociation` API) ke kolaborasi. Menyetel kebijakan konfigurasi privasi mengontrol anggota mana yang dapat menerima log model.

Selain itu, pembuat model dapat mengatur pola filter dalam kebijakan konfigurasi privasi untuk memfilter peristiwa log. Semua log yang dikirim oleh wadah model ke `stdout` atau `stderr` dan yang cocok dengan pola filter (jika disetel), dikirim ke Amazon CloudWatch Logs. Log model tersedia dalam grup CloudWatch log `/aws/cleanroomsml/TrainedModels` atau`/aws/cleanroomsml/TrainedModelInferenceJobs`, masing-masing.

**Metrik yang ditentukan khusus**

Saat Anda mengonfigurasi algoritme model (baik melalui konsol atau `CreateConfiguredModelAlgorithm` API), pembuat model dapat memberikan nama metrik dan pernyataan regex tertentu untuk dicari di log keluaran. Ini dapat dilihat saat pekerjaan berlangsung melalui CloudWatch Metrik di namespace. `/aws/cleanroomsml/TrainedModels` Saat mengaitkan algoritme model yang dikonfigurasi, pembuat model dapat menetapkan tingkat kebisingan opsional dalam konfigurasi privasi metrik untuk menghindari keluaran data mentah sambil tetap memberikan visibilitas ke tren metrik khusus. Jika tingkat kebisingan diatur, metrik dipublikasikan di akhir pekerjaan daripada secara real time.