Pianifica i lavori di monitoraggio della qualità del modello - Amazon SageMaker

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à.

Pianifica i lavori di monitoraggio della qualità del modello

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

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, -PT7H, dove 7H corrisponde a 7 ore. È possibile utilizzare -PT#H o -P#D, dove H=ore, D=giorni, M=minuti e # è il numero. Inoltre, l'offset deve essere nel formato di durata ISO8601.

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

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

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