View a markdown version of this page

Directives de création de modèles pour le conteneur de formation - AWS Clean Rooms

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.

Directives de création de modèles pour le conteneur de formation

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 SageMaker AI, comme décrit dans le Guide du développeur d'SageMaker IA. 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, veillez à ce qui suit afin de pouvoir tester votre modèle localement, sur une instance de développement, sur SageMaker AI Training in your Compte AWS et sur Clean Rooms ML.

    • Nous vous recommandons de rédiger un script de formation qui accède à des propriétés utiles concernant l'environnement d'entraînement par le biais de diverses variables d'environnement. Clean Rooms ML utilise les arguments suivants pour invoquer l'entraînement sur le code de votre modèle :SM_MODEL_DIR, SM_OUTPUT_DIRSM_CHANNEL_TRAIN, etFILE_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 de formation via les /opt/ml/input/data/channel-name répertoires du conteneur Docker. Chaque canal d'entrée ML est mappé en fonction de sa correspondance channel_name fournie 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 que vous êtes en mesure de générer un jeu de données synthétique ou de test basé sur le schéma des collaborateurs qui seront utilisés 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 surveiller au mieux les défaillances des conteneurs, nous vous recommandons d'exporter les journaux et de déboguer en cas de défaillance. En GetTrainedModel réponse, Clean Rooms ML renvoie les 1024 premiers caractères de ce fichier ci-dessousStatusDetails.

  • Une fois que vous avez modifié le modèle et que vous êtes prêt à le tester dans l'environnement SageMaker AI, 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 la tâche d' SageMaker IA terminée et que vous êtes satisfait de votre algorithme de 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 l'associer CreateConfiguredModelAlgorithmAssociation à une collaboration.