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, où 7H correspond à 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 au 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, )