Planifier les tâches de surveillance de la qualité des modèles - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Planifier les tâches de surveillance de la qualité des modèles

Après avoir créé votre base de référence, vous pouvez appeler la méthode create_monitoring_schedule() de votre instance de classe ModelQualityMonitor pour planifier une surveillance horaire de la qualité des modèles. Les sections suivantes expliquent comment créer une surveillance de la qualité des modèles pour un modèle déployé sur un point de terminaison en temps réel ainsi que pour une tâche de transformation par lots.

Important

Vous pouvez spécifier une entrée de transformation par lots ou une entrée de point de terminaison, mais pas les deux, lorsque vous créez votre planification de surveillance.

Contrairement à la surveillance de la qualité des données, vous devez fournir des étiquettes Ground Truth si vous souhaitez contrôler la qualité des modèles. Cependant, les étiquettes Ground Truth pourraient être retardées. Pour résoudre ce problème, spécifiez les décalages lorsque vous créez votre programme de surveillance.

Décalages de Model Monitor

Les tâches de surveillance de la qualité du modèle comprennent StartTimeOffset et EndTimeOffset, qui sont des champs du paramètre ModelQualityJobInput de la méthode create_model_quality_job_definition qui fonctionnent comme suit :

  • StartTimeOffset - Si spécifié, les tâches soustraient ce temps de l'heure de début.

  • EndTimeOffset - Si spécifié, les tâches soustraient ce temps de l'heure de fin.

Le format des décalages est, par exemple, -PT7H, 7H indiquant 7 heures. Vous pouvez utiliser -PT#H ou -P#D, où H=heures, D=jours, M=minutes et # est le nombre. De plus, le décalage doit être dans le format de durée ISO 8601.

Par exemple, si votre tâche Ground Truth commence au bout d'un jour, mais ne se termine pas en une semaine, définissez StartTimeOffset sur -P8D et EndTimeOffset sur -P1D. Ensuite, si vous planifiez une tâche pour qu'elle s'exécute à 2020-01-09T13:00, les données sont analysées entre 2020-01-01T13:00 et 2020-01-08T13:00.

Important

La cadence de planification doit être telle qu'une exécution se termine avant le début de la suivante, ce qui permet aux tâches de fusion et de surveillance Ground Truth de s'exécuter. La durée maximale d'une exécution est divisée entre les deux tâches. Pour une tâche de surveillance horaire de la qualité du modèle, la valeur de MaxRuntimeInSeconds spécifiée en tant que partie de StoppingCondition ne doit donc pas dépasser 1 800.

Surveillance de la qualité des modèles pour les modèles déployés sur des points de terminaison en temps réel

Pour planifier une surveillance de la qualité des modèles pour un point de terminaison en temps réel, transmettez votre instance EndpointInput à l'argument endpoint_input de votre instance ModelQualityMonitor, comme indiqué dans l'exemple de code suivant :

from sagemaker.model_monitor import CronExpressionGenerator model_quality_model_monitor = ModelQualityMonitor( role=sagemaker.get_execution_role(), ... ) schedule = model_quality_model_monitor.create_monitoring_schedule( monitor_schedule_name=schedule_name, post_analytics_processor_script=s3_code_postprocessor_uri, output_s3_uri=s3_report_path, schedule_cron_expression=CronExpressionGenerator.hourly(), statistics=model_quality_model_monitor.baseline_statistics(), constraints=model_quality_model_monitor.suggested_constraints(), schedule_cron_expression=CronExpressionGenerator.hourly(), enable_cloudwatch_metrics=True, endpoint_input=EndpointInput( endpoint_name=endpoint_name, destination="/opt/ml/processing/input/endpoint", start_time_offset="-PT2D", end_time_offset="-PT1D", ) )

Surveillance de la qualité des modèles pour les tâches de transformation par lots

Pour planifier une surveillance de la qualité des modèles pour une tâche de transformation par lots, transmettez votre instance BatchTransformInput à l'argument batch_transform_input de votre instance ModelQualityMonitor, comme indiqué dans l'exemple de code suivant :

from sagemaker.model_monitor import CronExpressionGenerator model_quality_model_monitor = ModelQualityMonitor( role=sagemaker.get_execution_role(), ... ) schedule = model_quality_model_monitor.create_monitoring_schedule( monitor_schedule_name=mon_schedule_name, batch_transform_input=BatchTransformInput( data_captured_destination_s3_uri=s3_capture_upload_path, destination="/opt/ml/processing/input", dataset_format=MonitoringDatasetFormat.csv(header=False), # the column index of the output representing the inference probablity probability_attribute="0", # the threshold to classify the inference probablity to class 0 or 1 in # binary classification problem probability_threshold_attribute=0.5, # look back 6 hour for transform job outputs. start_time_offset="-PT6H", end_time_offset="-PT0H" ), ground_truth_input=gt_s3_uri, output_s3_uri=s3_report_path, problem_type="BinaryClassification", constraints = constraints_path, schedule_cron_expression=CronExpressionGenerator.hourly(), enable_cloudwatch_metrics=True, )