Journaux et métriques des pipelines d'inférence - Amazon SageMaker

Journaux et métriques des pipelines d'inférence

La surveillance joue un rôle déterminant pour assurer la fiabilité, la disponibilité et la performance des ressources Amazon SageMaker. Pour contrôler et résoudre les problèmes de performance des pipelines d'inférence, utilisez les journaux et les messages d'erreur Amazon CloudWatch. Pour obtenir des informations sur les outils de surveillance fournis par SageMaker, veuillez consulter contrôler Amazon SageMaker.

Utilisation de métriques pour contrôler des modèles multi-conteneur

Pour contrôler les modèles multi-conteneurs dans les pipelines d'inférence, utilisez Amazon CloudWatch. CloudWatch collecte les données brutes et les convertit en métriques lisibles en quasi-temps réel. Les tâches d'entraînement et les points de terminaison SageMaker écrivent les métriques et les journaux CloudWatch dans l'espace de noms AWS/SageMaker .

Les tableaux suivants répertorient les métriques et les dimensions pour les éléments suivants :

  • Appels de point de terminaison

  • Tâches d'entraînement, tâches de transformation par lots et instances de point de terminaison

Une dimension est une paire nom-valeur qui identifie de manière unique une métrique. Vous pouvez associer jusqu'à 10 dimensions à une métrique. Pour plus d'informations sur la surveillance avec CloudWatch, veuillez consulter contrôler Amazon SageMaker à l'aide d'Amazon CloudWatch.

Endpoint Invocation Metrics (Métriques d'appel de point de terminaison)

L'espace de noms AWS/SageMaker inclut les métriques de demande suivantes des appels vers InvokeEndpoint.

Les métriques sont présentées à des intervalles d'une minute.

Métrique Description
Invocation4XXErrors

Nombre de demandes InvokeEndpoint pour lesquelles le modèle a retourné un code de réponse HTTP 4xx. Pour chaque réponse 4xx, SageMaker envoie un 1.

Unités : aucune

Statistiques valides : Average, Sum

Invocation5XXErrors

Nombre de demandes InvokeEndpoint pour lesquelles le modèle a retourné un code de réponse HTTP 5xx. Pour chaque réponse 5xx, SageMaker envoie un 1.

Unités : aucune

Statistiques valides : Average, Sum

Invocations

Les requêtes number of InvokeEndpoint envoyées à un point de terminaison de modèle.

Pour obtenir le nombre total de demandes envoyées à un point de terminaison de modèle, utilisez la statistique Sum.

Unités : aucune

Statistiques valides : Sum, Sample Count

InvocationsPerInstance

Le nombre d'appels de points de terminaison envoyés à un modèle, normalisé par InstanceCount dans chaque ProductionVariant. SageMaker envoie 1/numberOfInstances en tant que valeur pour chaque demande, où numberOfInstances désigne le nombre d'instances actives pour la ProductionVariant au niveau du point de terminaison au moment de la demande.

Unités : aucune

Statistiques valides : Sum

ModelLatency Temps qu'il a fallu au(x) modèle(s) pour répondre. Cela inclut le temps qu'il a fallu pour envoyer la demande, pour récupérer la réponse à partir du conteneur de modèles et pour terminer l'inférence dans le conteneur. ModelLatency est le temps total qu'il a fallu à tous les conteneurs dans un pipeline d'inférence.

Unités : microsecondes

Statistiques valides : Average, Sum, Min, Max, Nombre d'échantillons

OverheadLatency

Temps venant s'ajouter au temps nécessaire pour répondre à une demande client par SageMaker pour le surdébit. OverheadLatency est mesurée entre l'instant où SageMaker reçoit la demande et l'instant où il renvoie une réponse au client, moins la ModelLatency. La latence de surcharge peut varier en fonction de différents facteurs, dont les tailles des charges utiles de demande et de réponse, la fréquence des demandes, ainsi que l'authentification ou l'autorisation de la demande.

Unités : microsecondes

Statistiques valides : Average, Sum, Min, Max, Sample Count

ContainerLatency Temps nécessaire à un conteneur de pipelines d'inférence pour répondre lors de son affichage à partir de SageMaker. ContainerLatency inclut le temps qu'il a fallu pour envoyer la demande, récupérer la réponse à partir du conteneur du modèle et accomplir l'inférence dans le conteneur.

Unités : microsecondes

Statistiques valides : Average, Sum, Min, Max, Sample Count

Dimensions for Endpoint Invocation Metrics (Dimensions pour les métriques d'appel de point de terminaison)

Dimension Description
EndpointName, VariantName, ContainerName

Filtres des métriques d'appel de point de terminaison pour un ProductionVariant au niveau du point de terminaison spécifié et pour la variante spécifiée.

Pour un point de terminaison de pipeline d'inférence, CloudWatch répertorie les métriques de latence par conteneur dans votre compte en tant que Endpoint Container Metrics (Métriques de conteneur de point de terminaison) et Endpoint Variant Metrics (Métriques de variante de point de terminaison) dans l'espace de noms SageMaker, comme suit. La métrique ContainerLatency apparaît uniquement pour les pipelines d'inférence.


                    Le tableau de bord CloudWatch pour un pipeline d'inférence répertorie les métriques de latence pour chaque point de terminaison et chaque conteneur.

Pour chaque point de terminaison et chaque conteneur, les métriques de latence affichent les noms du conteneur, du point de terminaison, de la variante et de la métrique.


                    Métriques de latence pour un point de terminaison.

Métriques de tâches d'entraînement, de tâches de transformation par lots et d'instances de point de terminaison

Les espaces de noms /aws/sagemaker/TrainingJobs, /aws/sagemaker/TransformJobs et /aws/sagemaker/Endpoints incluent les métriques suivantes pour les tâches d'entraînement et les instances de point de terminaison.

Les métriques sont présentées à des intervalles d'une minute.

Métrique Description
CPUUtilization

Pourcentage d'unités UC utilisées par les conteneurs qui s'exécutent sur une instance. La valeur s'étend de 0 % à 100 % et elle est multipliée par le nombre de processeurs. Par exemple, s'il y a quatre processeurs, CPUUtilization peut varier de 0 % à 400 %.

Pour des tâches d'entraînement, CPUUtilization correspond à l'utilisation d'UC du conteneur d'algorithme en cours d'exécution sur l'instance.

Pour les tâches de transformation par lots, CPUUtilization correspond à l'utilisation d'UC du conteneur de transformation en cours d'exécution sur l'instance.

Pour les modèles à plusieurs conteneurs, CPUUtilization est la somme de l'utilisation d'UC de tous les conteneurs en cours d'exécution sur l'instance.

Pour les variantes de point de terminaison, CPUUtilization est la somme de l'utilisation d'UC de tous les conteneurs en cours d'exécution sur l'instance.

Unités : pourcentage

MemoryUtilization

Pourcentage de mémoire utilisée par les conteneurs en cours d'exécution sur une instance. Cette valeur est comprise entre 0 % et 100 %.

Pour les tâches d'entraînement, MemoryUtilization correspond à la mémoire utilisée par le conteneur d'algorithme en cours d'exécution sur l'instance.

Pour les tâches de transformation par lots, MemoryUtilization correspond à la mémoire utilisée par le conteneur de transformation en cours d'exécution sur l'instance.

Pour les modèles à plusieurs conteneurs, MemoryUtilization est la somme de la mémoire utilisée par tous les conteneurs en cours d'exécution sur l'instance.

Pour les variantes de point de terminaison, MemoryUtilization est la somme de la mémoire utilisée par tous les conteneurs en cours d'exécution sur l'instance.

Unités : pourcentage

GPUUtilization

Pourcentage d'unités GPU qui sont utilisées par les conteneurs en cours d'exécution sur une instance. GPUUtilization s'étend de 0 % à 100 % et est multiplié par le nombre de processeurs graphiques. Par exemple, s'il y a quatre unités GPU, GPUUtilization peut varier de 0 % à 400 %.

Pour les tâches d'entraînement, GPUUtilization correspond à l'utilisation de processeur graphique par le conteneur d'algorithme qui s'exécute sur l'instance.

Pour les tâches de transformation par lots, GPUUtilization correspond à l'utilisation de processeur graphique par le conteneur de transformation en cours d'exécution sur l'instance.

Pour les modèles à plusieurs conteneurs, GPUUtilization est la somme de l'utilisation de processeur graphique par tous les conteneurs en cours d'exécution sur l'instance.

Pour les variantes de point de terminaison, GPUUtilization est la somme de l'utilisation de processeur graphique par tous les conteneurs en cours d'exécution sur l'instance.

Unités : pourcentage

GPUMemoryUtilization

Pourcentage de mémoire GPU utilisée par les conteneurs en cours d'exécution sur une instance. GPUMemoryUtilization s'étend de 0 % à 100 % et est multiplié par le nombre de processeurs graphiques. Par exemple, s'il y a quatre unités GPU, GPUMemoryUtilization peut varier de 0 % à 400 %.

Pour les tâches d'entraînement, GPUMemoryUtilization correspond à la mémoire GPU utilisée par le conteneur d'algorithme en cours d'exécution sur l'instance.

Pour les tâches de transformation par lots, GPUMemoryUtilization correspond à la mémoire GPU utilisée par le conteneur de transformation en cours d'exécution sur l'instance.

Pour les modèles à plusieurs conteneurs, GPUMemoryUtilization est la somme de l'utilisation de processeur graphique par tous les conteneurs en cours d'exécution sur l'instance.

Pour les variantes de point de terminaison, GPUMemoryUtilization est la somme de la mémoire GPU utilisée par tous les conteneurs en cours d'exécution sur l'instance.

Unités : pourcentage

DiskUtilization

Pourcentage d'espace disque utilisé par les conteneurs en cours d'exécution sur une instance. DiskUtilization s'étend de 0 % à 100 %. Cette métrique n'est pas prise en charge pour les tâches de transformation par lots.

Pour les tâches d'entraînement, DiskUtilization correspond à l'espace disque utilisé par le conteneur d'algorithme en cours d'exécution sur l'instance.

Pour les variantes de point de terminaison, DiskUtilization est la somme de l'espace disque utilisé par tous les conteneurs fournis en cours d'exécution sur l'instance.

Unités : pourcentage

Dimensions des métriques de tâches d'entraînement, de tâches de transformation par lots et d'instances de point de terminaison

Dimension Description
Host

Pour les tâches d'entraînement, Host a le format [training-job-name]/algo-[instance-number-in-cluster]. Utilisez cette dimension pour filtrer les métriques d'instance pour la tâche d'entraînement et l'instance spécifiées. Ce format de dimension est présent uniquement dans l'espace de noms /aws/sagemaker/TrainingJobs.

Pour les tâches de transformation par lots, Host a le format [transform-job-name]/[instance-id]. Utilisez cette dimension pour filtrer les métriques d'instance pour la tâche de transformation par lots et l'instance spécifiées. Ce format de dimension est présent uniquement dans l'espace de noms /aws/sagemaker/TransformJobs.

Pour les points de terminaison, Host a le format [endpoint-name]/[ production-variant-name ]/[instance-id]. Utilisez cette dimension pour filtrer les métriques d'instance pour le point de terminaison, la variante et l'instance spécifiés. Ce format de dimension est présent uniquement dans l'espace de noms /aws/sagemaker/Endpoints.

Pour vous aider à déboguer vos tâches d'entraînement, points de terminaison et configurations de cycle de vie d'instance de bloc-notes, SageMaker envoie également à Amazon CloudWatch logs tout ce qu'un conteneur d'algorithme un conteneur de modèle ou une configuration de cycle de vie d'instance de bloc-notes envoie à stdout ou stderr. Vous pouvez utiliser ces informations pour le débogage et pour analyser la progression.

Utilisation des journaux pour contrôler un pipeline d'inférence

Le tableau suivant répertorie les groupes de journaux et les flux de journaux que SageMaker envoie à Amazon CloudWatch

Un flux de journaux est une séquence d'événements de journaux qui partagent la même source. Chaque source distincte de journaux dans CloudWatch constitue un flux de journaux distinct. Un groupe de journaux est un groupe de flux de journaux qui partagent les mêmes paramètres de conservation, de surveillance et de contrôle d'accès.

Journaux

Nom du groupe de journaux Nom du flux de journaux
/aws/sagemaker/TrainingJobs

[training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp]

/aws/sagemaker/Endpoints/[EndpointName]

[production-variant-name]/[instance-id]

[production-variant-name]/[instance-id]

[production-variant-name]/[instance-id]/[container-name provided in the SageMaker model] (For Inference Pipelines) Pour les journaux des pipelines d'inférence, si vous ne fournissez pas les noms des conteneurs, CloudWatch utilise **container-1, container-2**, etc., dans l'ordre où les conteneurs sont fournis dans le modèle.

/aws/sagemaker/NotebookInstances

[notebook-instance-name]/[LifecycleConfigHook]

/aws/sagemaker/TransformJobs

[transform-job-name]/[instance-id]-[epoch_timestamp]

[transform-job-name]/[instance-id]-[epoch_timestamp]/data-log

[transform-job-name]/[instance-id]-[epoch_timestamp]/[container-name provided in the SageMaker model] (For Inference Pipelines) Pour les journaux des pipelines d'inférence, si vous ne fournissez pas les noms des conteneurs, CloudWatch utilise **container-1, container-2**, etc., dans l'ordre où les conteneurs sont fournis dans le modèle.

Note

SageMaker crée le /aws/sagemaker/NotebookInstancesgroupe de journaux lorsque vous créez une instance de bloc-notes avec une configuration de cycle de vie. Pour plus d'informations, consultez Personnalisation d'une instance de bloc-notes à l'aide d'un script de configuration du cycle de vie .

Pour de plus amples informations sur la journalisation SageMaker, veuillez consulter Journaliser les événements Amazon SageMaker à l'aide d'Amazon CloudWatch.