

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.

# Planification des tâches de surveillance de la qualité des modèles
<a name="model-monitor-model-quality-schedule"></a>

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
<a name="model-monitor-model-quality-schedule-offsets"></a>

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, PT7 -H, où 7H correspond à 7 heures. Vous pouvez utiliser -PT\$1H ou -P\$1D, où H=heures, D=jours, M=minutes et \$1 est le nombre. De plus, le décalage doit être dans le [format de durée ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations).

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
<a name="model-monitor-data-quality-schedule-rt"></a>

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
<a name="model-monitor-data-quality-schedule-tt"></a>

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,
)
```