Programar trabalhos de monitoramento de desvio de polarização
Depois de criar sua linha de base, você pode chamar o método create_monitoring_schedule()
da sua instância de classe ModelBiasModelMonitor
para programar um monitor horário de qualidade do desvio de polarização. As seções a seguir mostram como criar um monitor de desvio de polarização para um modelo implantado em um endpoint em tempo real, bem como para um trabalho de transformação em lotes.
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. Para obter detalhes sobre como criar deslocamentos de tempo, consulte Deslocamentos do monitor do modelo.
Se você enviou um trabalho de linha de base, o monitor seleciona automaticamente a configuração de análise do trabalho de linha de base. Se você pular a etapa de definição de linha de base ou se o conjunto de dados de captura tiver uma natureza diferente da do conjunto de dados de treinamento, você deverá fornecer a configuração da análise.
Monitoramento do desvio de polarização para modelos implantados em endpoints em tempo real
Para programar um monitor de desvio de polarização para um endpoint em tempo real, transmita sua instância EndpointInput
para o argumento endpoint_input
de sua instância ModelBiasModelMonitor
, conforme mostrado no seguinte exemplo de código:
from sagemaker.model_monitor import CronExpressionGenerator model_bias_monitor = ModelBiasModelMonitor( role=sagemaker.get_execution_role(), ... ) model_bias_analysis_config = None if not model_bias_monitor.latest_baselining_job: model_bias_analysis_config = BiasAnalysisConfig( model_bias_config, headers=all_headers, label=label_header, ) model_bias_monitor.create_monitoring_schedule( monitor_schedule_name=schedule_name, post_analytics_processor_script=s3_code_postprocessor_uri, output_s3_uri=s3_report_path, statistics=model_bias_monitor.baseline_statistics(), constraints=model_bias_monitor.suggested_constraints(), schedule_cron_expression=CronExpressionGenerator.hourly(), enable_cloudwatch_metrics=True, analysis_config=model_bias_analysis_config, endpoint_input=EndpointInput( endpoint_name=endpoint_name, destination="/opt/ml/processing/input/endpoint", start_time_offset="-PT1H", end_time_offset="-PT0H", probability_threshold_attribute=0.8, ), )
Monitoramento de desvio de polarização para trabalhos de transformação de lotes
Para programar um monitor de desvio de polarização para um trabalho de transformação de Lotes, transmita sua instância BatchTransformInput
para o argumento batch_transform_input
de sua instância ModelBiasModelMonitor
, conforme mostrado no seguinte exemplo de código:
from sagemaker.model_monitor import CronExpressionGenerator model_bias_monitor = ModelBiasModelMonitor( role=sagemaker.get_execution_role(), ... ) model_bias_analysis_config = None if not model_bias_monitor.latest_baselining_job: model_bias_analysis_config = BiasAnalysisConfig( model_bias_config, headers=all_headers, label=label_header, ) schedule = model_bias_monitor.create_monitoring_schedule( monitor_schedule_name=schedule_name, post_analytics_processor_script=s3_code_postprocessor_uri, output_s3_uri=s3_report_path, statistics=model_bias_monitor.baseline_statistics(), constraints=model_bias_monitor.suggested_constraints(), schedule_cron_expression=CronExpressionGenerator.hourly(), enable_cloudwatch_metrics=True, analysis_config=model_bias_analysis_config, batch_transform_input=BatchTransformInput( destination="opt/ml/processing/input", data_captured_destination_s3_uri=s3_capture_path, start_time_offset="-PT1H", end_time_offset="-PT0H", probability_threshold_attribute=0.8 ), )