Déploiement de points de terminaison multi-conteneurs - Amazon SageMaker

Déploiement de points de terminaison multi-conteneurs

Les points de terminaison multi-conteneurs SageMaker permettent aux clients de déployer plusieurs conteneurs de sorte à déployer différents modèles sur un point de terminaison SageMaker. Les conteneurs peuvent être exécutés en séquence en tant que pipeline d'inférence, ou être appelés directement pour un accès individuel afin d'améliorer l'utilisation du point de terminaison et optimiser les coûts.

Pour obtenir des informations sur l'appel des conteneurs dans un point de terminaison multi-conteneurs en séquence, veuillez consulter Déploiement d'un pipeline d'inférence.

Pour obtenir des informations sur l'appel d'un conteneur spécifique dans un point de terminaison multi-conteneurs, veuillez consulter Utilisation d'un point de terminaison multi-conteneurs avec appel direct

Pour créer un point de terminaison multi-conteneurs (Boto 3)

Pour créer un point de terminaison multi-conteneurs, appelez les API CreateModel, CreateEndpointConfig et CreateEndpoint comme vous le feriez pour créer d'autres points de terminaison. Vous pouvez exécuter ces conteneurs en séquence en tant que pipeline d'inférence, ou les appeler directement pour les exécuter individuellement. Les points de terminaison multi-conteneurs ont les exigences suivantes lorsque vous appelez create_model :

  • Utilisez le paramètre Containers au lieu de PrimaryContainer, et incluez plus d'un conteneur dans le paramètre Containers.

  • Le paramètre ContainerHostname est requis pour chaque conteneur d'un point de terminaison multi-conteneurs appelé directement.

  • Définissez le paramètre Mode du champ InferenceExecutionConfig sur Direct pour appeler directement chaque conteneur, ou sur Serial pour utiliser les conteneurs en tant que pipeline d'inférence. Le mode par défaut est Serial.

Note

Actuellement, un point de terminaison multi-conteneurs peut prendre en charge un maximum de 15 conteneurs.

L'exemple suivant crée un modèle multi-conteneurs pour l'appel direct.

  1. Créez des éléments de conteneur et InferenceExecutionConfig avec appel direct.

    container1 = { 'Image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myimage1:mytag', 'ContainerHostname': 'firstContainer'} container2 = { 'Image': '123456789012.dkr.ecr.us-east-1.amazonaws.com/myimage2:mytag', 'ContainerHostname': 'secondContainer' } inferenceExecutionConfig = {'Mode': 'Direct' }
  2. Créez le modèle avec les éléments de conteneur et définissez le champ InferenceExecutionConfig.

    import boto3 sm_client = boto3.Session().client('sagemaker') response = sm_client.create_model( ModelName = 'my-direct-mode-model-name', InferenceExecutionConfig = inferenceExecutionConfig, ExecutionRoleArn = role, Containers = [container1, container2])

Pour créer un point de terminaison, appelez create_endpoint_config et create_endpoint comme vous le feriez pour créer d'autres points de terminaison.

Mise à jour d'un point de terminaison multi-conteneurs

Pour mettre à jour un point de terminaison multi-conteneurs, procédez comme suit.

  1. Appelez create_model pour créer un modèle avec une nouvelle valeur pour le paramètre Mode dans le champ InferenceExecutionConfig.

  2. Appelez create_endpoint_config pour créer une configuration de point de terminaison avec un nom différent à l'aide du modèle que vous avez créé à l'étape précédente.

  3. Appelez update_endpoint pour mettre à jour le point de terminaison avec la nouvelle configuration de point de terminaison que vous avez créée à l'étape précédente.

Suppression d'un point de terminaison multi-conteneurs

Pour supprimer un point de terminaison, appelez delete_endpoint et indiquez le nom du point de terminaison que vous voulez supprimer en tant que paramètre EndpointName.