기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
모델 품질 모니터링 작업 예약
기준 생성을 마쳤다면, ModelQualityMonitor
클래스 인스턴스의 create_monitoring_schedule()
메서드를 호출하여 시간별 모델 품질 모니터를 예약할 수 있습니다. 다음 섹션은 실시간 엔드포인트에 배포된 모델 및 배치 변환 작업에 사용할 모델 품질 모니터를 생성하는 방법을 보여줍니다.
중요
모니터링 일정을 생성할 때는 배치 변환 입력이나 엔드포인트 입력 중에서 하나를 지정할 수 있지만, 둘 다 지정할 수는 없습니다.
데이터 품질 모니터링과는 달리, 모델 품질을 모니터링하려면 Ground Truth 레이블을 제공해야 합니다. 그러나 Ground Truth 레이블은 지연될 수 있습니다. 이 문제를 해결하려면, 모니터링 일정을 생성할 때 오프셋을 지정하세요.
모델 모니터 오프셋
모델 품질 작업에는 StartTimeOffset
및 EndTimeOffset
이 포함되며, 이는 create_model_quality_job_definition
메서드의 ModelQualityJobInput
매개변수 필드로서 다음과 같이 작동합니다.
-
StartTimeOffset
- 지정된 경우, 작업의 시작 시간으로부터 이만큼의 시간이 차감됩니다. -
EndTimeOffset
- 지정된 경우, 작업의 종료 시간으로부터 이만큼의 시간이 차감됩니다.
오프셋의 형식은 예를 들어 -이며PT7H, 여기서 7H는 7시간입니다. -PT#H 또는 -P#D 형식으로 사용이 가능하며, 여기서 H=시간, D=일, M=분이고, #은 숫자입니다. 또한 오프셋은 ISO 8601 기간 형식
예를 들어, 해당 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, )