Agende trabalhos de monitoramento da qualidade do modelo - Amazon SageMaker

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

Agende trabalhos de monitoramento da qualidade do modelo

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

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 deslocamentos é, por exemplo, -PT7H, onde 7H significa 7 horas. Você pode usar -PT #H ou -P#D, em que H = horas, D = dias e M = minutos, e # é o número. Além disso, o deslocamento deve estar no formato de duração ISO 8601.

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 tempo de execução 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

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 exemplo de código a seguir:

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

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 exemplo de código a seguir:

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