

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

# 建立基準
<a name="model-monitor-create-baseline"></a>

需要計算統計資料和限制條件的基準，作為偵測資料漂移和其他資料品質問題時的標準。模型監控提供內建的容器，能夠針對 CSV 和單層 JSON 輸入，自動建議限制條件。此 *sagemaker-model-monitor-analyzer* 容器也提供一系列模型監控功能，包括根據基準來驗證限制條件，以及發出 Amazon CloudWatch 指標。此容器根據 Spark 3.3.0 版，並使用 [Deequ](https://github.com/awslabs/deequ) 2.0.2 版建置。基準資料集中的所有欄位名稱都必須與 Spark 相容。對於欄位名稱，僅限使用小寫字元，且 `_` 為唯一的特殊字元。

您用來訓練模型的訓練資料集，通常就是適合的基準資料集。訓練資料集資料結構描述和推論資料集結構描述，應該完全相符 (特徵數目和順序)。請注意，預測/輸出欄假定為訓練資料集的第一欄。您可以要求 SageMaker AI 根據訓練資料集，建議一組基準限制條件，並產生描述性統計資料，以利於您探索資料。針對此範例，請上傳訓練資料集 (原先用來訓練此範例中預先訓練的模型)。如果您已將訓練資料集存放在 Amazon S3 中，則可以直接指向其位置。

**從訓練資料集建立基準** 

當您準備好訓練資料並將其存放在 Amazon S3 時，透過 `DefaultModelMonitor.suggest_baseline(..)` 使用 [Amazon SageMaker Python SDK ](https://sagemaker.readthedocs.io/en/stable) 開始基準處理工作。這會使用 [Amazon SageMaker Model Monitor 預建容器](model-monitor-pre-built-container.md)，以針對資料集產生基準統計資料和建議基準限制條件，並寫入您指定的 `output_s3_uri` 位置。

```
from sagemaker.model_monitor import DefaultModelMonitor
from sagemaker.model_monitor.dataset_format import DatasetFormat

my_default_monitor = DefaultModelMonitor(
    role=role,
    instance_count=1,
    instance_type='ml.m5.xlarge',
    volume_size_in_gb=20,
    max_runtime_in_seconds=3600,
)

my_default_monitor.suggest_baseline(
    baseline_dataset=baseline_data_uri+'/training-dataset-with-header.csv',
    dataset_format=DatasetFormat.csv(header=True),
    output_s3_uri=baseline_results_uri,
    wait=True
)
```

**注意**  
如果您在訓練資料集提供功能/欄位名稱當作第一列，並如上述程式碼範例來設定 `header=True` 選項，SageMaker AI 會在限制條件和統計資料檔案中使用該功能名稱。

資料集的基準統計資料放在 statistics.json 檔案，而建議的基準限制條件放在 constraints.json 檔案 (在您以 `output_s3_uri` 指定的位置中)。

表格式資料集統計資料和限制條件的輸出檔案


| 檔案名稱 | Description | 
| --- | --- | 
| statistics.json |  針對所分析資料集的每個特徵，此檔案會有單欄式統計資料。如需有關此檔案的結構描述的更多相關資訊，請參閱[統計資料的結構描述 (statistics.json 檔案)](model-monitor-byoc-statistics.md)。  | 
| constraints.json |  針對所觀察的特徵，此檔案會有限制條件。如需有關此檔案的結構描述的更多相關資訊，請參閱[限制條件的結構描述 (constraints.json 檔案)](model-monitor-byoc-constraints.md)。  | 

[Amazon SageMaker Python SDK ](https://sagemaker.readthedocs.io/en/stable) 提供方便的函式，可用來產生基準統計資料和限制條件。但是，如果您想為此目的改為直接呼叫處理工作，則需要設定 `Environment` 對應，如以下範例所示：

```
"Environment": {
    "dataset_format": "{\"csv\”: { \”header\”: true}",
    "dataset_source": "/opt/ml/processing/sm_input",
    "output_path": "/opt/ml/processing/sm_output",
    "publish_cloudwatch_metrics": "Disabled",
}
```