建立基準 - Amazon SageMaker

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

建立基準

需要計算統計資料和限制條件的基準,作為偵測資料漂移和其他資料品質問題時的標準。Model Monitor 提供內建容器,可讓您自動建議 CSV和 平面JSON輸入的限制條件。此sagemaker-model-monitor-analyzer容器也為您提供一系列模型監控功能,包括針對基準的限制驗證,以及發出 Amazon CloudWatch 指標。此容器根據 Spark 3.3.0 版,並使用 Deequ 2.0.2 版建置。基準資料集中的所有欄位名稱都必須與 Spark 相容。對於欄位名稱,僅限使用小寫字元,且 _ 為唯一的特殊字元。

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

從訓練資料集建立基準

當您準備好訓練資料並儲存在 Amazon S3 時,DefaultModelMonitor.suggest_baseline(..)請使用 Amazon SageMaker Python SDK啟動基準處理任務。這會使用 Amazon SageMaker Model Monitor 預建容器,以針對資料集產生基準統計資料和建議基準限制條件,並寫入您指定的 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 會使用限制和統計資料檔案中的功能名稱。

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

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

檔案名稱 描述
statistics.json

針對所分析資料集的每個特徵,此檔案會有單欄式統計資料。如需有關此檔案的結構描述的更多相關資訊,請參閱統計資料的結構描述 (statistics.json 檔案)

constraints.json

針對所觀察的特徵,此檔案會有限制條件。如需有關此檔案的結構描述的更多相關資訊,請參閱限制條件的結構描述 (constraints.json 檔案)

Amazon SageMaker Python SDK 提供描述的便利函數,以產生基準統計資料和限制條件。但是,如果您想為此目的改為直接呼叫處理工作,則需要設定 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", }