View a markdown version of this page

Directives de création de modèles pour le conteneur d'inférence - 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 d'inférence

Cette section détaille les directives que les fournisseurs de modèles doivent suivre lors de la création d'un algorithme d'inférence pour Clean Rooms ML.

  • Utilisez l'image de base de conteneur prise en charge par inférence d' SageMaker IA appropriée, 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-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
  • 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 Batch Transform dans votre machine Compte AWS et sur Clean Rooms ML.

    • Clean Rooms ML rend les artefacts de votre modèle issus de l'inférence disponibles pour être utilisés par votre code d'inférence via le /opt/ml/model répertoire du conteneur Docker.

    • Clean Rooms ML divise les entrées par ligne, utilise une stratégie par MultiRecord lots et ajoute un caractère de nouvelle ligne à la fin de chaque enregistrement transformé.

    • Vous définissez la taille maximale des demandes dans la maxPayloadInMB zone ci-dessouscontainerExecutionParameters. Si vous ne spécifiez aucune valeur, Clean Rooms ML utilise 6 Mo. Lorsqu'un fichier CSV d'entrée est plus grand que cette valeur, SageMaker AI divise le fichier en plusieurs requêtes adressées à votre conteneur d'inférence. La ligne d'en-tête CSV apparaît uniquement dans la première demande pour ce fichier, et les demandes suivantes commencent par des lignes de données. Configurez votre conteneur d'inférence avec un schéma de colonnes prédéfini afin qu'il accepte les demandes avec ou sans ligne d'en-tête. Si une ligne d'en-tête est présente, ignorez-la au lieu de la traiter comme un enregistrement de données. Pour plus d'informations à ce sujetmaxPayloadInMB, consultez InferenceContainerExecutionParameters la référence de l'API AWS Clean Rooms ML.

    • Assurez-vous que vous êtes en mesure de générer un jeu de données d'inférence 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 transformation par lots basée sur 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 d'environnement SageMaker AI Transform et Clean Rooms ML

      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"]
  • 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 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

    Une fois que la tâche d' SageMaker IA est terminée et que vous êtes satisfait de votre transformation par lots, 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.