

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Pautas de creación de modelos para el contenedor de formación
<a name="custom-model-guidelines"></a>

En esta sección se detallan las pautas que los proveedores de modelos deben seguir al crear un algoritmo de modelo de aprendizaje automático personalizado para el aprendizaje automático de salas limpias.
+ Utilice la imagen base de contenedores adecuada y compatible con la formación en SageMaker IA, tal y como se describe en la Guía para [desarrolladores de SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html). El siguiente código te permite extraer las imágenes de la base de contenedores compatibles de puntos finales de SageMaker IA públicos.

  ```
  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
  ```
+ Cuando cree el modelo localmente, asegúrese de lo siguiente para poder probarlo localmente, en una instancia de desarrollo, en SageMaker AI Training en su Cuenta de AWS empresa y en Clean Rooms ML.
  + Recomendamos escribir un guion de formación que acceda a propiedades útiles del entorno de formación a través de diversas variables de entorno. Clean Rooms ML utiliza los siguientes argumentos para invocar el entrenamiento en el código del modelo:`SM_MODEL_DIR`, `SM_OUTPUT_DIR``SM_CHANNEL_TRAIN`, y. `FILE_FORMAT` Clean Rooms ML utiliza estos valores predeterminados para entrenar su modelo de aprendizaje automático en su propio entorno de ejecución con los datos de todas las partes.
  + Clean Rooms ML hace que sus canales de entrada de formación estén disponibles a través de los `/opt/ml/input/data/{{channel-name}}` directorios del contenedor docker. Cada canal de entrada de ML se mapea en función del correspondiente que `channel_name` se proporciona en la `CreateTrainedModel` solicitud.

    ```
    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"))
    ```
  + Asegúrese de poder generar un conjunto de datos sintético o de prueba basado en el esquema de los colaboradores que se utilizará en el código de su modelo.
  + Asegúrese de poder realizar un trabajo de formación en SageMaker IA por su cuenta Cuenta de AWS antes de asociar el algoritmo del modelo a una AWS Clean Rooms colaboración.

    El siguiente código contiene un archivo Docker de muestra que es compatible con las pruebas locales, las pruebas del entorno de formación de SageMaker IA y el aprendizaje automático de salas limpias

    ```
    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 supervisar mejor los fallos de los contenedores, recomendamos exportar los registros y depurarlos en caso de que se produzcan errores. Como `GetTrainedModel` respuesta, Clean Rooms ML devuelve los primeros 1024 caracteres de este archivo. `StatusDetails` 
+ Una vez que haya realizado cualquier cambio en el modelo y esté listo para probarlo en el entorno de SageMaker IA, ejecute los siguientes comandos en el orden indicado.

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

  Una vez que haya completado el trabajo de SageMaker IA y esté satisfecho con el algoritmo de su modelo, podrá registrar el registro de Amazon ECR en AWS Clean Rooms ML. Utilice la `CreateConfiguredModelAlgorithm` acción para registrar el algoritmo del modelo y asociarlo a una colaboración. `CreateConfiguredModelAlgorithmAssociation`