

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Pianificazione dei processi di monitoraggio della qualità del modello
<a name="model-monitor-model-quality-schedule"></a>

Dopo aver creato la linea di base, puoi chiamare il metodo `create_monitoring_schedule()` dell'istanza di classe `ModelQualityMonitor`, per pianificare un monitoraggio orario della qualità del modello. Le sezioni seguenti mostrano come creare un monitoraggio della qualità del modello, per modelli distribuiti su un endpoint in tempo reale e per processi di trasformazione di batch.

**Importante**  
È possibile specificare un input di trasformazione di batch o un input dell'endpoint, ma non entrambi, quando si crea la pianificazione del monitoraggio.

A differenza del monitoraggio della qualità dei dati, è necessario fornire le etichette Ground Truth, se si desidera monitorare la qualità del modello. Tuttavia, le etichette Ground Truth potrebbero subire ritardi. Per risolvere questo problema, specifica gli offset quando crei la pianificazione del monitoraggio. 

## Offset di monitoraggio del modello
<a name="model-monitor-model-quality-schedule-offsets"></a>

I processi relativi alla qualità del modello includono `StartTimeOffset` e `EndTimeOffset`, che sono campi del parametro `ModelQualityJobInput` del metodo `create_model_quality_job_definition` e funzionano come segue:
+ `StartTimeOffset`: se specificato, i processi sottraggono questo tempo dall'ora di inizio.
+ `EndTimeOffset`: se specificato, i processi sottraggono questo tempo dall'ora di fine.

Il formato degli offset è, ad esempio, - PT7 H, dove 7H è 7 ore. È possibile utilizzare -PT\$1H o -P\$1D, dove H=ore, D=giorni, M=minuti e \$1 è il numero. Inoltre, l'offset deve essere espresso nel [formato di durata ISO 8601](https://en.wikipedia.org/wiki/ISO_8601#Durations).

Ad esempio, se Ground Truth inizia a entrare dopo 1 giorno, ma non è completo per una settimana, imposta `StartTimeOffset` su `-P8D` e `EndTimeOffset` su `-P1D`. Quindi, se pianifichi un processo da eseguire alle `2020-01-09T13:00`, analizza i dati compresi tra le `2020-01-01T13:00` e le `2020-01-08T13:00`.

**Importante**  
La cadenza di pianificazione deve essere tale che l'esecuzione finisca prima dell'inizio della successiva, il che consente al processo di unione Ground Truth e il processo di monitoraggio di completarsi. La durata massima di un'esecuzione viene suddivisa tra i due processi, quindi per un processo di monitoraggio della qualità del modello su base oraria, il valore di `MaxRuntimeInSeconds` specificato come parte di `StoppingCondition` non deve essere superiore a 1800.

## Monitoraggio della qualità dei modelli distribuiti su endpoint in tempo reale
<a name="model-monitor-data-quality-schedule-rt"></a>

Per pianificare un monitoraggio della qualità del modello su un endpoint in tempo reale, passa l'istanza `EndpointInput` all'argomento `endpoint_input` dell'istanza `ModelQualityMonitor`, come mostrato nel seguente esempio di codice:

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

## Monitoraggio della qualità del modello per i processi di trasformazione dei batch
<a name="model-monitor-data-quality-schedule-tt"></a>

Per pianificare un monitoraggio della qualità del modello in un processo di trasformazione di batch, passa l'istanza `BatchTransformInput` all'argomento `batch_transform_input` dell'istanza `ModelQualityMonitor`, come mostrato nel seguente esempio di codice:

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