Planification des tâches de surveillance - Amazon SageMaker

Planification des tâches de surveillance

Amazon SageMaker Model Monitor vous permet de programmer la surveillance continue des données collectées à partir des points de terminaison. Vous pouvez créer un calendrier de surveillance avec l'API CreateMonitoringSchedule, selon un intervalle périodique prédéfini. Par exemple, toutes les x heures (x étant compris entre 1 et 23).

Avec un programme de surveillance, SageMaker peut lancer des tâches de traitement à une fréquence définie pour analyser les données collectées sur une période définie. SageMaker fournit un conteneur préconçu pour effectuer des analyses sur des jeux de données tabulaires. Dans la tâche de traitement, SageMaker compare le jeu de données de l'analyse en cours aux statistiques de référence et aux contraintes fournies, puis génère un rapport de violations. En outre, des métriques CloudWatch sont émises pour chaque fonction analysée. Vous pouvez également choisir d'utiliser votre propre conteneur comme indiqué dans la rubrique Utilisation de vos propres conteneurs.

Vous pouvez créer un calendrier de surveillance de modèles pour le point de terminaison créé précédemment. Comparez le trafic en temps réel par rapport aux ressources de référence (contraintes et statistiques). Pour cet exemple, chargez l'ensemble des données d'entraînement qui a servi à entraîner le modèle préentraîné inclus. S'il est déjà dans Amazon S3, vous pouvez pointer directement dessus.

# copy over the training dataset to Amazon S3 (if you already have it in Amazon S3, you could reuse it) baseline_prefix = prefix + '/baselining' baseline_data_prefix = baseline_prefix + '/data' baseline_results_prefix = baseline_prefix + '/results' baseline_data_uri = 's3://{}/{}'.format(bucket,baseline_data_prefix) baseline_results_uri = 's3://{}/{}'.format(bucket, baseline_results_prefix) print('Baseline data uri: {}'.format(baseline_data_uri)) print('Baseline results uri: {}'.format(baseline_results_uri))
training_data_file = open("test_data/training-dataset-with-header.csv", 'rb') s3_key = os.path.join(baseline_prefix, 'data', 'training-dataset-with-header.csv') boto3.Session().resource('s3').Bucket(bucket).Object(s3_key).upload_fileobj(training_data_file)

Créez un calendrier de surveillance de modèles pour le point de terminaison à l'aide des contraintes et des statistiques de référence afin de comparer le trafic en temps réel.

from sagemaker.model_monitor import CronExpressionGenerator from time import gmtime, strftime mon_schedule_name = 'DEMO-xgb-churn-pred-model-monitor-schedule-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) my_default_monitor.create_monitoring_schedule( monitor_schedule_name=mon_schedule_name, endpoint_input=predictor.endpoint, post_analytics_processor_script=s3_code_postprocessor_uri, output_s3_uri=s3_report_path, statistics=my_default_monitor.baseline_statistics(), constraints=my_default_monitor.suggested_constraints(), schedule_cron_expression=CronExpressionGenerator.hourly(), enable_cloudwatch_metrics=True, )

Décrivez et examinez le calendrier : après l'avoir décrit, observez que le paramètre MonitoringScheduleStatus dans le type de données MonitoringScheduleSummary renvoyé par l'API ListMonitoringSchedules est remplacé par Scheduled.

desc_schedule_result = my_default_monitor.describe_schedule() print('Schedule status: {}'.format(desc_schedule_result['MonitoringScheduleStatus']))