

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Programar trabalhos de monitoramento da qualidade de modelos
<a name="model-monitor-model-quality-schedule"></a>

Depois de criar sua linha de base, você pode chamar o método `create_monitoring_schedule()` da sua instância de classe `ModelQualityMonitor` para programar um monitor horário de qualidade do modelo. As seções a seguir mostram como criar um monitor de qualidade do modelo para um modelo implantado em um endpoint em tempo real, bem como para um trabalho de transformação em lote.

**Importante**  
Você pode especificar uma entrada de transformação em lote ou uma entrada de endpoint, mas não ambas, ao criar sua programação de monitoramento.

Ao contrário do monitoramento da qualidade dos dados, você precisa fornecer rótulos do Ground Truth se quiser monitorar a qualidade do modelo. No entanto, os rótulos do Ground Truth podem ser adiados. Para resolver isso, especifique compensações ao criar sua programação de monitoramento. 

## Deslocamentos do monitor do modelo
<a name="model-monitor-model-quality-schedule-offsets"></a>

Os trabalhos de qualidade do modelo incluem `StartTimeOffset` e `EndTimeOffset`, que são campos do parâmetro `ModelQualityJobInput` do método `create_model_quality_job_definition` que funcionam da seguinte maneira:
+ `StartTimeOffset` - Se especificado, os trabalhos subtraem esse tempo da hora de início.
+ `EndTimeOffset` - Se especificado, os trabalhos subtraem esse tempo da hora de término.

O formato dos offsets é, por exemplo, - PT7 H, onde 7H é 7 horas. Você pode usar -PT \$1H ou -P\$1D, em que H = horas, D = dias e M = minutos, e \$1 é o número. Além disso, o deslocamento deve estar no [formato de duração ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations).

Por exemplo, se seu Ground Truth começar a chegar após 1 dia, mas não for concluído por uma semana, defina `StartTimeOffset` como `-P8D` e `EndTimeOffset` como `-P1D`. Então, se você programar um trabalho para ser executado em `2020-01-09T13:00`, ele analisará os dados entre `2020-01-01T13:00` e `2020-01-08T13:00`.

**Importante**  
A cadência da programação deve ser tal que uma execução termine antes do início da próxima execução, o que permite que o Ground Truth mescle o trabalho e o trabalho de monitoramento da execução até a conclusão. O runtime máximo de uma execução é dividido entre os dois trabalhos, portanto, para um trabalho de monitoramento horário de qualidade do modelo, o valor `MaxRuntimeInSeconds` especificado como parte de `StoppingCondition` não deve ser superior a 1800.

## Monitoramento da qualidade do modelo para modelos implantados em endpoints em tempo real
<a name="model-monitor-data-quality-schedule-rt"></a>

Para programar um monitor de qualidade do modelo para um endpoint em tempo real, transmita sua instância `EndpointInput` para o argumento `endpoint_input` de sua instância `ModelQualityMonitor`, conforme mostrado no seguinte exemplo de código:

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

## Monitoramento da qualidade do modelo para trabalhos de transformação de lotes
<a name="model-monitor-data-quality-schedule-tt"></a>

Para programar um monitor de qualidade do modelo para um trabalho de transformação em lote, transmita sua instância `BatchTransformInput` para o argumento `batch_transform_input` de sua instância `ModelQualityMonitor`, conforme mostrado no seguinte exemplo de código:

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