Programe trabajos de monitoreo de la calidad del modelo - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Programe trabajos de monitoreo de la calidad del modelo

Una vez que haya creado su referencia, puede utilizar el método create_monitoring_schedule() de la instancia de clase ModelQualityMonitor para programar una supervisión de calidad del modelo cada hora. En las siguientes secciones, se muestra cómo crear un monitor de calidad del modelo para un modelo implementado en un punto de conexión en tiempo real, así como para un trabajo de transformación por lotes.

importante

Puede especificar una entrada de transformación por lotes o una entrada de punto de conexión, pero no ambas, al crear su programa de supervisión.

A diferencia de la supervisión de la calidad de los datos, debe suministrar etiquetas Ground Truth si desea supervisar la calidad del modelo. Sin embargo, las etiquetas de Ground Truth podrían retrasarse. Para solucionar este problema, especifique los desplazamientos al crear su programa de supervisión.

Desplazamientos del monitor de modelos

Los trabajos de calidad del modelo incluyen StartTimeOffset y EndTimeOffset, que son campos del parámetro ModelQualityJobInput del método create_model_quality_job_definition que funcionan de la siguiente manera:

  • StartTimeOffset: si se especifica, los trabajos restan este tiempo de la hora de inicio.

  • EndTimeOffset: si se especifica, los trabajos restan este tiempo de la hora de finalización.

El formato de las compensaciones es, por ejemplo, -PT7H, donde 7H son 7 horas. Puede usar -PT#H o -P#D, donde H=horas, D=días y M=minutos, y # es el número. Además, el desfase debe tener un formato de duración ISO8601.

Por ejemplo, si Ground Truth comienza a llegar después de 1 día, pero no se completa hasta dentro de una semana, establezca StartTimeOffset en -P8D y EndTimeOffset en -P1D. Luego, si programa un trabajo para que se ejecute el 2020-01-09T13:00, analizará los datos entre 2020-01-01T13:00 y2020-01-08T13:00.

importante

La cadencia de la programación debe ser tal que una ejecución finalice antes de que comience la siguiente, lo que permite que Ground Truth combine el trabajo y supervise el trabajo desde la ejecución hasta que se complete. El tiempo de ejecución máximo de una ejecución se divide entre los dos trabajos, por lo que, en el caso de un trabajo de supervisión de la calidad del modelo cada hora, el valor de MaxRuntimeInSeconds especificado como parte de StoppingCondition no debe ser superior a 1800.

Supervisión de la calidad del modelo para los modelos implementados en puntos de conexión en tiempo real

Para programar un monitor de calidad del modelo para un punto de conexión en tiempo real, pase la instancia EndpointInput al argumento endpoint_input de la instancia ModelQualityMonitor, como se muestra en el siguiente ejemplo 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", ) )

Supervisión de la calidad del modelo para trabajos de transformación por lotes

Para programar un monitor de calidad del modelo para un trabajo de transformación por lotes, pase la instancia BatchTransformInput al argumento batch_transform_input de la instancia ModelQualityMonitor, como se muestra en el siguiente ejemplo 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, )