Interprétation des résultats - Amazon SageMaker

Interprétation des résultats

Après avoir exécuté une tâche de traitement de référence et obtenu des statistiques et des contraintes pour votre jeu de données, vous pouvez exécuter des tâches de surveillance qui calculent les statistiques et répertorient les violations des contraintes de référence. Les métriques Amazon CloudWatch sont également signalées dans votre compte par défaut. Pour des informations sur l'affichage des résultats de la surveillance dans Amazon SageMaker Studio, veuillez consulter Visualiser les résultats dans Amazon SageMaker Studio.

Répertorier les exécutions

Le programme démarre les tâches de surveillance aux intervalles spécifiés. Le code suivant répertorie les cinq dernières exécutions. Si vous exécutez ce code après avoir créé la planification horaire, les exécutions peuvent être vides et vous devrez peut-être attendre jusqu'à ce que vous franchissiez la limite horaire (en UTC) pour que les exécutions démarrent. Le code suivant inclut la logique d'attente.

mon_executions = my_default_monitor.list_executions() print("We created a hourly schedule above and it will kick off executions ON the hour (plus 0 - 20 min buffer.\nWe will have to wait till we hit the hour...") while len(mon_executions) == 0: print("Waiting for the 1st execution to happen...") time.sleep(60) mon_executions = my_default_monitor.list_executions()

Inspecter une exécution spécifique

À l'étape précédente, vous avez récupéré la dernière exécution programmée réussie ou non. Vous pouvez explorer ce qui s'est bien ou mal passé. Les états terminaux sont les suivants :

  • Completed : l'exécution de la surveillance a réussi et le rapport de violations n'a révélé aucun problème.

  • CompletedWithViolations : l'exécution est terminée, mais des violations des contraintes ont été détectées.

  • Failed : l'exécution de la surveillance a échoué, peut-être à cause d'une erreur client (problèmes de rôle, par exemple) ou de problèmes d'infrastructure. Pour identifier la cause, veuillez consulter FailureReason et ExitMessage.

latest_execution = mon_executions[-1] # latest execution's index is -1, previous is -2 and so on.. time.sleep(60) latest_execution.wait(logs=False) print("Latest execution status: {}".format(latest_execution.describe()['ProcessingJobStatus'])) print("Latest execution result: {}".format(latest_execution.describe()['ExitMessage'])) latest_job = latest_execution.describe() if (latest_job['ProcessingJobStatus'] != 'Completed'): print("====STOP==== \n No completed executions to inspect further. Please wait till an execution completes or investigate previously reported failures.")
report_uri=latest_execution.output.destination print('Report Uri: {}'.format(report_uri))

Liste des rapports générés

Répertorier les rapports générés Utilisez le code suivant pour répertorier les rapports générés.

from urllib.parse import urlparse s3uri = urlparse(report_uri) report_bucket = s3uri.netloc report_key = s3uri.path.lstrip('/') print('Report bucket: {}'.format(report_bucket)) print('Report key: {}'.format(report_key)) s3_client = boto3.Session().client('s3') result = s3_client.list_objects(Bucket=report_bucket, Prefix=report_key) report_files = [report_file.get("Key") for report_file in result.get('Contents')] print("Found Report Files:") print("\n ".join(report_files))

Rapport de violations

Si des violations sont détectées par rapport à la référence, elles sont générées dans le rapport de violations. Utilisez le code suivant pour répertorier les violations.

violations = my_default_monitor.latest_monitoring_constraint_violations() pd.set_option('display.max_colwidth', -1) constraints_df = pd.io.json.json_normalize(violations.body_dict["violations"]) constraints_df.head(10)

Cela s'applique uniquement aux ensembles de données contenant des données tabulaires. Les fichiers de schéma suivants spécifient les statistiques calculées et les violations surveillées.

Fichiers de sortie pour données tabulaires
Nom de fichier Description
statistics.json

Contient des statistiques en colonnes pour chaque fonction de l'ensemble de données analysé. Consultez le schéma de ce fichier dans la rubrique suivante.

Note

Ce fichier est créé uniquement pour la surveillance de la qualité des données.

constraints_violations.json

Contient une liste des violations détectées dans cet ensemble de données actuel par rapport au fichier de statistiques et de contraintes de référence spécifié dans les chemins d'accès baseline_constaints et baseline_statistics.

Le Conteneur préconçu Amazon SageMaker Model Monitor enregistre par défaut un ensemble de métriques Amazon CloudWatch pour chaque fonction.

Le code du conteneur peut émettre des métriques CloudWatch à cet emplacement: /opt/ml/output/metrics/cloudwatch.