有没有办法在 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 提供以下功能:

这些要点记录在此站点上: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
)

A​​mazon SageMaker 模型监控器仅支持开箱即用 here 定义的指标。 如果您需要在您的案例中包含其他指标,例如 MAPE(平均绝对百分比误差),您将不得不依赖 BYOC 方法,请注意,使用这种方法您不能将指标“添加”到可用列表中,不幸的是您将拥有自己实施整套指标。我知道这对客户来说并不理想,我鼓励您联系您的 AWS 客户经理创建一个请求,将 MAPE(平均绝对百分比误差)添加为长 运行 中的受支持指标。我也记下了它,并将它反馈给团队。

同时,您可以找到有关如何 BYOC here.

的示例

我在 AWS 工作,但我的观点是我自己的。

谢谢, 拉古