모델 품질 모니터링 작업 일정 잡기 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

모델 품질 모니터링 작업 일정 잡기

기준 생성을 마쳤다면, ModelQualityMonitor클래스 인스턴스의 create_monitoring_schedule()메서드를 호출하여 시간별 모델 품질 모니터를 예약할 수 있습니다. 다음 섹션은 실시간 엔드포인트에 배포된 모델 및 배치 변환 작업에 사용할 모델 품질 모니터를 생성하는 방법을 보여줍니다.

중요

모니터링 일정을 생성할 때는 배치 변환 입력이나 엔드포인트 입력 중에서 하나를 지정할 수 있지만, 둘 다 지정할 수는 없습니다.

데이터 품질 모니터링과는 달리, 모델 품질을 모니터링하려면 Ground Truth 레이블을 제공해야 합니다. 그러나 Ground Truth 레이블은 지연될 수 있습니다. 이 문제를 해결하려면, 모니터링 일정을 생성할 때 오프셋을 지정하세요.

모델 모니터 오프셋

모델 품질 작업에는 StartTimeOffsetEndTimeOffset이 포함되며, 이는 create_model_quality_job_definition메서드의 ModelQualityJobInput매개변수 필드로서 다음과 같이 작동합니다.

  • StartTimeOffset - 지정된 경우, 작업의 시작 시간으로부터 이만큼의 시간이 차감됩니다.

  • EndTimeOffset - 지정된 경우, 작업의 종료 시간으로부터 이만큼의 시간이 차감됩니다.

오프셋 형식은 예를 PT7H 들어 -입니다. 여기서 7H는 7시간입니다. -PT#H 또는 -P#D 형식으로 사용이 가능하며, 여기서 H=시간, D=일, M=분이고, #은 숫자입니다. 또한 오프셋은 ISO8601 기간 형식이어야 합니다.

예를 들어, 해당 Ground Truth가 1일이 지난 후부터 들어오기 시작하지만 일주일 안에는 완료되지 않는 경우라면, StartTimeOffset-P8D로, EndTimeOffset-P1D로 설정하세요. 그런 다음에 작업 실행 시점을 2020-01-09T13:00로 예약한다면, 2020-01-01T13:00~2020-01-08T13:00사이의 데이터가 분석됩니다.

중요

일정 케이던스는 다음 번의 실행이 시작되기 전에 한 가지 실행이 먼저 완료되는 형태로 설정해야 하며, 이렇게 해야 실행 시 Ground Truth 병합 작업과 모니터링 작업이 완료될 수 있습니다. 실행의 최대 런타임은 두 작업으로 나누어지기 때문에, 시간별 모델 품질 모니터링 작업에서의 경우 StoppingCondition의 일부로서 지정된 MaxRuntimeInSeconds의 값은 1800을 넘지 않아야 합니다.

실시간 엔드포인트에 배포된 모델에 대한 모델 품질 모니터링

실시간 엔드포인트에 대한 모델 품질 모니터를 예약하려면, 다음 코드 샘플에 나와 있는 것처럼 EndpointInput인스턴스를 ModelQualityMonitor인스턴스의 endpoint_input인수로 전달하세요.

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

배치 변환 작업에 대한 모델 품질 모니터링

배치 변환 작업에 대한 모델 품질 모니터를 예약하려면, 다음 코드 샘플에 나와 있는 것처럼 BatchTransformInput인스턴스를 ModelQualityMonitor인스턴스의 batch_transform_input인수로 전달하세요.

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