

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Diretrizes de criação de modelos para o contêiner de treinamento
<a name="custom-model-guidelines"></a>

Esta seção detalha as diretrizes que os fornecedores de modelos devem seguir ao criar um algoritmo de modelo de ML personalizado para Clean Rooms ML.
+ Use a imagem base de contêiner apropriada suportada pelo treinamento de SageMaker IA, conforme descrito no Guia do [desenvolvedor de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html). O código a seguir permite extrair as imagens de base de contêineres compatíveis de endpoints públicos de SageMaker IA.

  ```
  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
  ```
+ Ao criar o modelo localmente, garanta o seguinte para que você possa testar seu modelo localmente, em uma instância de desenvolvimento, no treinamento de SageMaker IA em sua Conta da AWS e no Clean Rooms ML.
  + Recomendamos escrever um script de treinamento que acesse propriedades úteis sobre o ambiente de treinamento por meio de várias variáveis de ambiente. O Clean Rooms ML usa os seguintes argumentos para invocar o treinamento no código do seu modelo: `SM_MODEL_DIR``SM_OUTPUT_DIR`,`SM_CHANNEL_TRAIN`, e. `FILE_FORMAT` Esses padrões são usados pelo Clean Rooms ML para treinar seu modelo de ML em seu próprio ambiente de execução com os dados de todas as partes.
  + O Clean Rooms ML disponibiliza seus canais de entrada de treinamento por meio dos `/opt/ml/input/data/{{channel-name}}` diretórios no contêiner docker. Cada canal de entrada de ML é mapeado com base no correspondente `channel_name` fornecido na `CreateTrainedModel` solicitação.

    ```
    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"))
    ```
  + Certifique-se de que você seja capaz de gerar um conjunto de dados sintético ou de teste com base no esquema dos colaboradores que será usado no código do seu modelo.
  + Certifique-se de poder executar um trabalho de treinamento de SageMaker IA sozinho Conta da AWS antes de associar o algoritmo do modelo a uma AWS Clean Rooms colaboração.

    O código a seguir contém um arquivo Docker de amostra compatível com testes locais, testes de ambiente de treinamento de SageMaker IA e ML de salas limpas.

    ```
    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"]
    ```
+ Para monitorar melhor as falhas do contêiner, recomendamos exportar registros e depurar por motivos de falha. Em uma `GetTrainedModel` resposta, o Clean Rooms ML retorna os primeiros 1024 caracteres desse arquivo abaixo`StatusDetails`. 
+ Depois de concluir todas as alterações do modelo e estar pronto para testá-lo no ambiente de SageMaker IA, execute os comandos a seguir na ordem fornecida.

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

  Depois que o trabalho de SageMaker IA for concluído e você estiver satisfeito com seu algoritmo de modelo, você poderá registrar o Amazon ECR Registry no AWS Clean Rooms ML. Use a `CreateConfiguredModelAlgorithm` ação para registrar o algoritmo do modelo e `CreateConfiguredModelAlgorithmAssociation` associá-lo a uma colaboração.