

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 创建偏差偏移基准


将应用程序配置为捕获实时或批量转换推理数据后，监控偏差偏移的第一项任务就是创建基准。这包括配置数据输入、哪些组是敏感组、如何捕获预测结果，以及模型及其训练后偏差指标。然后，您需要启动设定基准作业。

模型偏差监控器可以定期检测机器学习模型的偏差偏移。与其他监控类型类似，创建模型偏差监控器的标准程序是先设定基准，然后制定监控计划。

```
model_bias_monitor = ModelBiasMonitor(
    role=role,
    sagemaker_session=sagemaker_session,
    max_runtime_in_seconds=1800,
)
```

`DataConfig` 存储有关待分析的数据集（如数据集文件）、其格式（即 CSV 或 JSON 行）、标题（如有）和标签的信息。

```
model_bias_baselining_job_result_uri = f"{baseline_results_uri}/model_bias"
model_bias_data_config = DataConfig(
    s3_data_input_path=validation_dataset,
    s3_output_path=model_bias_baselining_job_result_uri,
    label=label_header,
    headers=all_headers,
    dataset_type=dataset_type,
)
```

`BiasConfig` 是数据集中敏感组的配置。通常情况下，衡量偏差的方法是计算一个指标，并在不同组间进行比较。相关的组称为*分面*。对于训练后的偏差，还应考虑阳性标签。

```
model_bias_config = BiasConfig(
    label_values_or_threshold=[1],
    facet_name="Account Length",
    facet_values_or_threshold=[100],
)
```

`ModelPredictedLabelConfig` 指定如何从模型输出提取预测标签。在本例中，之所以选择 0.8 的临界值，是因为预计客户会经常交货。对于更复杂的输出，还有其他一些选项，比如 “标签” 是索引、名称或 JMESPath 在端点响应负载中定位预测的标签。

```
model_predicted_label_config = ModelPredictedLabelConfig(
    probability_threshold=0.8,
)
```

`ModelConfig` 是与用于推理的模型相关的配置。为了计算训练后偏差指标，计算需要获取所提供模型名称的推理。为此，处理作业使用模型创建临时端点（也称为*影子端点*）。计算完成后，处理作业会删除影子端点。可解释性监控器也使用此配置。

```
model_config = ModelConfig(
    model_name=model_name,
    instance_count=endpoint_instance_count,
    instance_type=endpoint_instance_type,
    content_type=dataset_type,
    accept_type=dataset_type,
)
```

现在，您可以启动设定基准作业了。

```
model_bias_monitor.suggest_baseline(
    model_config=model_config,
    data_config=model_bias_data_config,
    bias_config=model_bias_config,
    model_predicted_label_config=model_predicted_label_config,
)
print(f"ModelBiasMonitor baselining job: {model_bias_monitor.latest_baselining_job_name}")
```

计划的监控器会自动选取设定基准作业名称，并在监控开始之前等待该名称。