有没有办法在 AWS sagemaker 的 ModelQualityMonitor 中包含自定义回归指标?
Is there a way to include custom Regression Metrics in ModelQualityMonitor in AWS sagemaker?
我已成功初始化 ModelQualityMonitor 对象。
然后我使用 CreateMonitoringSchedule API 创建了一个监控计划!在后台,sagemaker 运行两个处理作业,将地面实况数据与收集的端点数据合并,然后分析并创建预定义的回归指标:
https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-metrics.html
不幸的是,我在指标中遗漏了 MAPE(平均绝对百分比误差),我想在将来(也在 CloudWatch 中)创建它。
Sagemaker 提供以下功能:
- 预处理和后处理:
除了使用内置机制外,您还可以使用预处理和后处理脚本扩展代码。
- 自带容器:
Amazon SageMaker Model Monitor 提供了一个预构建的容器,能够分析从终端节点捕获的表格数据集数据。如果您想自带容器,Model Monitor 提供了您可以利用的扩展点。
- 自带容器的 CloudWatch 指标
这些要点记录在此站点上:https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-custom-monitoring-schedules.html
我怎样才能通过以上几点实现包含 MAPE 的目标?
这是我当前实现的代码片段:
from sagemaker.model_monitor.model_monitoring import ModelQualityMonitor
from sagemaker.model_monitor import EndpointInput
from sagemaker.model_monitor.dataset_format import DatasetFormat
# Create the model quality monitoring object
MQM = ModelQualityMonitor(
role=role,
instance_count=1,
instance_type="ml.m5.large",
volume_size_in_gb=20,
max_runtime_in_seconds=1800,
sagemaker_session=sagemaker_session,
)
# suggest a baseline
job = MQM.suggest_baseline(
job_name=baseline_job_name,
baseline_dataset="./baseline.csv",
dataset_format=DatasetFormat.csv(header=True),
output_s3_uri=baseline_results_uri,
problem_type="Regression",
inference_attribute="predicted_price",
ground_truth_attribute="price",
)
job.wait(logs=False)
baseline_job = MQM.latest_baselining_job
# create a monitoring schedule
endpointInput = EndpointInput(
endpoint_name="dev-TestEndpoint",
destination="/opt/ml/processing/input_data",
inference_attribute="$.data.predicted_price"
)
MQM.create_monitoring_schedule(
monitor_schedule_name="DS-Schedule",
endpoint_input=endpointInput,
output_s3_uri=baseline_results_uri,
constraints=baseline_job.suggested_constraints(),
problem_type="Regression",
ground_truth_input=ground_truth_upload_path,
schedule_cron_expression="cron(0 * ? * * *)", # hourly
enable_cloudwatch_metrics=True
)
我已成功初始化 ModelQualityMonitor 对象。 然后我使用 CreateMonitoringSchedule API 创建了一个监控计划!在后台,sagemaker 运行两个处理作业,将地面实况数据与收集的端点数据合并,然后分析并创建预定义的回归指标: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-metrics.html
不幸的是,我在指标中遗漏了 MAPE(平均绝对百分比误差),我想在将来(也在 CloudWatch 中)创建它。
Sagemaker 提供以下功能:
- 预处理和后处理: 除了使用内置机制外,您还可以使用预处理和后处理脚本扩展代码。
- 自带容器: Amazon SageMaker Model Monitor 提供了一个预构建的容器,能够分析从终端节点捕获的表格数据集数据。如果您想自带容器,Model Monitor 提供了您可以利用的扩展点。
- 自带容器的 CloudWatch 指标
这些要点记录在此站点上:https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-custom-monitoring-schedules.html
我怎样才能通过以上几点实现包含 MAPE 的目标?
这是我当前实现的代码片段:
from sagemaker.model_monitor.model_monitoring import ModelQualityMonitor
from sagemaker.model_monitor import EndpointInput
from sagemaker.model_monitor.dataset_format import DatasetFormat
# Create the model quality monitoring object
MQM = ModelQualityMonitor(
role=role,
instance_count=1,
instance_type="ml.m5.large",
volume_size_in_gb=20,
max_runtime_in_seconds=1800,
sagemaker_session=sagemaker_session,
)
# suggest a baseline
job = MQM.suggest_baseline(
job_name=baseline_job_name,
baseline_dataset="./baseline.csv",
dataset_format=DatasetFormat.csv(header=True),
output_s3_uri=baseline_results_uri,
problem_type="Regression",
inference_attribute="predicted_price",
ground_truth_attribute="price",
)
job.wait(logs=False)
baseline_job = MQM.latest_baselining_job
# create a monitoring schedule
endpointInput = EndpointInput(
endpoint_name="dev-TestEndpoint",
destination="/opt/ml/processing/input_data",
inference_attribute="$.data.predicted_price"
)
MQM.create_monitoring_schedule(
monitor_schedule_name="DS-Schedule",
endpoint_input=endpointInput,
output_s3_uri=baseline_results_uri,
constraints=baseline_job.suggested_constraints(),
problem_type="Regression",
ground_truth_input=ground_truth_upload_path,
schedule_cron_expression="cron(0 * ? * * *)", # hourly
enable_cloudwatch_metrics=True
)