

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Consignes de création de modèles pour le conteneur de formation
<a name="custom-model-guidelines"></a>

Cette section détaille les directives que les fournisseurs de modèles doivent suivre lors de la création d'un algorithme de modèle ML personnalisé pour Clean Rooms ML.
+ Utilisez l'image de base de conteneur appropriée prise en charge par la formation à l' SageMaker IA, comme décrit dans le guide du [développeur d'SageMaker IA](https://docs.aws.amazon.com/sagemaker/latest/dg-ecr-paths/sagemaker-algo-docker-registry-paths.html). Le code suivant vous permet d'extraire les images de base de conteneurs prises en charge à partir de points de terminaison d' SageMaker IA publics.

  ```
  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
  ```
+ Lorsque vous créez le modèle localement, assurez-vous de ce qui suit afin de pouvoir le tester localement, sur une instance de développement, sur SageMaker AI Training in your Compte AWS et sur Clean Rooms ML.
  + Nous vous recommandons d'écrire un script d'entraînement qui accède aux propriétés utiles de l'environnement d'entraînement par le biais de diverses variables d'environnement. Clean Rooms ML utilise les arguments suivants pour appeler l'entraînement sur le code de votre modèle : `SM_MODEL_DIR``SM_OUTPUT_DIR`,`SM_CHANNEL_TRAIN`, et`FILE_FORMAT`. Ces valeurs par défaut sont utilisées par Clean Rooms ML pour entraîner votre modèle ML dans son propre environnement d'exécution avec les données de toutes les parties.
  + Clean Rooms ML met à disposition vos canaux d'entrée d'entraînement via les `/opt/ml/input/data/channel-name` répertoires du conteneur docker. Chaque canal d'entrée ML est mappé en fonction du canal correspondant `channel_name` fourni dans la `CreateTrainedModel` demande.

    ```
    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"))
    ```
  + Assurez-vous de pouvoir générer un ensemble de données synthétique ou de test basé sur le schéma des collaborateurs qui sera utilisé dans le code de votre modèle.
  + Assurez-vous de pouvoir exécuter vous-même une tâche de formation à l' SageMaker IA Compte AWS avant d'associer l'algorithme du modèle à une AWS Clean Rooms collaboration.

    Le code suivant contient un exemple de fichier Docker compatible avec les tests locaux, les tests de l'environnement SageMaker AI Training et Clean Rooms ML

    ```
    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"]
    ```
+ Pour mieux surveiller les défaillances des conteneurs, nous vous recommandons d'exporter les journaux et de procéder au débogage en cas de défaillance. Dans une `GetTrainedModel` réponse, Clean Rooms ML renvoie les 1024 premiers caractères du fichier ci-dessous`StatusDetails`. 
+ Une fois que vous avez effectué les modifications du modèle et que vous êtes prêt à le tester dans l'environnement d' SageMaker IA, exécutez les commandes suivantes dans l'ordre indiqué.

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

  Une fois que le travail d' SageMaker intelligence artificielle est terminé et que vous êtes satisfait de l'algorithme de votre modèle, vous pouvez enregistrer le registre Amazon ECR auprès d'AWS Clean Rooms ML. Utilisez cette `CreateConfiguredModelAlgorithm` action pour enregistrer l'algorithme du modèle et `CreateConfiguredModelAlgorithmAssociation` pour l'associer à une collaboration.