

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立偏差偏離基準
<a name="clarify-model-monitor-bias-drift-baseline"></a>

將應用程式設定為擷取即時或批次轉換推論資料之後，監控偏差偏離的第一項任務是建立基準。這包括設定資料輸入、哪些群組是敏感的、如何擷取預測，以及模型及其訓練後的偏差指標。然後，您需要開始進行基準工作。

模型偏差監控可定期偵測機器學習 (ML) 模型的偏差偏離。與其他監控類型相似，建立模型偏差監控的標準程序首先是基準化，然後再建立監控排程。

```
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 截止值是為了預期客戶會經常流動。對於更複雜的輸出，還有幾個選項，例如 “label” 是索引、名稱或 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}")
```

排程的監控會自動挑選基準作業名稱，並等待它，然後再開始監控。