Passer au contenu

Comment résoudre les problèmes liés à un point de terminaison multimodèle SageMaker AI ?

Lecture de 3 minute(s)
0

Je souhaite résoudre les problèmes qui surviennent lorsque je déploie un point de terminaison multimodèle Amazon SageMaker AI.

Résolution

Les démarrages à froid ou les problèmes de latence qui amènent un point de terminaison à effectuer plus lentement des prévisions peuvent affecter les performances des points de terminaison multimodèles. Les exceptions internes au serveur peuvent également affecter les performances.

Démarrages à froid et problèmes de latence

Lorsqu'un point de terminaison multimodèle invoque des modèles en succession rapide, SageMaker AI supprime les modèles de la mémoire et du disque du point de terminaison. Un démarrage à froid se produit lorsque le modèle est chargé dans le point de terminaison de mémoire de l'instance la prochaine fois que le point de terminaison invoque le modèle.

Pour éviter les problèmes de démarrage à froid ou de latence, prenez les mesures suivantes :

  • Si votre modèle est sensible au facteur temps, utilisez l'inférence en temps réel avec un seul modèle.

  • Si votre modèle n'est pas sensible au temps, sélectionnez un type d'instance qui dispose d’une mémoire suffisante pour contenir de nombreux modèles en mémoire, comme une instance r5. Vous pouvez également implémenter l’autoscaling qui effectue une mise à l'échelle en fonction du facteur MemoryUtilization.
    Exemple :

    response = client.put_scaling_policy(
        PolicyName='MemoryUtilisation-ScalingPolicy',
        ServiceNamespace='sagemaker',
        ResourceId=resource_id,
        ScalableDimension='sagemaker:variant:DesiredInstanceCount',
        PolicyType='TargetTrackingScaling',
        TargetTrackingScalingPolicyConfiguration={
            'TargetValue': 80.0,
            'CustomizedMetricSpecification':
            {
                'MetricName': 'MemoryUtilization',
                'Namespace': '/aws/sagemaker/Endpoints',
                'Dimensions': [
                    {'Name': 'EndpointName', 'Value': endpoint_name },
                    {'Name': 'VariantName','Value': 'AllTraffic'}
                ],
                'Statistic': 'Average',
                'Unit': 'Percent'
            },
            'ScaleInCooldown': 600,
            'ScaleOutCooldown': 300
        }
    )
  • Avant de déployer la configuration du point de terminaison, assurez-vous de spécifier une taille VolumeSizeInGB suffisamment grande pour contenir tous les modèles fréquemment utilisés.

  • Envoyez des demandes de test au modèle cible afin que certains modèles restent indéfiniment dans la mémoire du point de terminaison.

  • Pour optimiser les performances des points de terminaison multimodèles, il est recommandé de sélectionner des artefacts de modèle présentant une efficacité et des temps de latence comparables. Pour optimiser l'efficacité et la fiabilité globales de votre système, répartissez le trafic de manière uniforme entre les modèles.

  • Pour optimiser les performances des points de terminaison, surveillez les métriques clés d'Amazon CloudWatch, telles que ModelCacheHit et ModelLoadingWaitTime. Lorsque le taux ModelCacheHit est élevé et que le taux ModelLoadingWaitTime est faible, votre point de terminaison gère efficacement les invocations.

Exceptions internes au serveur

Si un point de terminaison multimodèle ne peut pas charger les modèles en raison d'une mémoire insuffisante, il se peut que vous rencontriez une exception de serveur interne. Par exemple, lorsque vous déployez un modèle de 14 Go sur une instance ml.t3.medium avec seulement 4 Go de mémoire de processeur, un message d'erreur s'affiche. Pour éviter les erreurs, sélectionnez des instances de point de terminaison disposant d’une mémoire suffisante pour prendre en charge plusieurs modèles pendant l'exécution.

AWS OFFICIELA mis à jour il y a un an