設定 SageMaker Clarify 處理任務 - Amazon SageMaker

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

設定 SageMaker Clarify 處理任務

若要使用 SageMaker Clarify 分析資料和模型的偏差和可解釋性,您必須設定 SageMaker Clarify 處理任務。本指南說明如何指定處理工作的輸入資料集名稱、分析組態檔案名稱和輸出位置。若要設定處理容器、工作輸入、輸出、資源和其他參數,您有兩種選擇。您可以使用 SageMaker CreateProcessingJob API,或使用 SageMaker Python SDK API SageMaker ClarifyProcessor

如需所有處理任務常用參數的相關資訊,請參閱 Amazon SageMaker API 參考

下列指示說明如何使用 提供 SageMaker Clarify CreateProcessingJob 特定組態的每個部分API。

  1. AppSpecification 參數內輸入 SageMaker Clarify 容器映像的統一研究識別符 (URI),如下列程式碼範例所示。

    { "ImageUri": "the-clarify-container-image-uri" }
    注意

    必須URI識別預先建置的 SageMaker Clarify 容器映像。 ContainerArguments 不支援 ContainerEntrypoint和 。如需 SageMaker Clarify 容器映像的詳細資訊,請參閱 預先建置的 SageMaker Clarify 容器

  2. 指定分析的組態和 ProcessingInputs 參數內輸入資料集的參數。

    1. 指定JSON分析組態檔案的位置,其中包含偏差分析和可解釋性分析的參數。ProcessingInput 物件的 InputName 參數必須為 analysis_config,如下列程式碼範例所示。

      { "InputName": "analysis_config", "S3Input": { "S3Uri": "s3://your-bucket/analysis_config.json", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/config" } }

      如需分析組態檔案結構描述的詳細資訊,請參閱 分析組態檔案

    2. 指定輸入資料集的位置。ProcessingInput 物件的 InputName 參數必須是 dataset。如果您已在分析組態檔案中提供 “dataset_uri”,則此參數為選用。S3Input 組態中需要下列值。

      1. S3Uri 可以是 Amazon S3 物件或 S3 字首。

      2. S3InputMode 必須是類型 File

      3. S3CompressionType 必須是類型 None (預設值)。

      4. S3DataDistributionType 必須是類型 FullyReplicated (預設值)。

      5. S3DataType 可以是 S3PrefixManifestFile。若要使用 ManifestFileS3Uri 參數應指定資訊清單檔案的位置,其遵循參考區段 S3Uri中的結構描述 SageMaker API。此資訊清單檔案必須列出包含工作輸入資料的 S3 物件。

      下列程式碼顯示輸入組態的範例。

      { "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data" } }
  3. 指定 ProcessingOutputConfig 參數內處理工作輸出的組態。Outputs 組態中需要單一 ProcessingOutput 物件。輸出組態中需要下列項目:

    1. OutputName 必須為 analysis_result

    2. S3Uri 必須是輸出位置的 S3 字首。

    3. S3UploadMode 必須設定為 EndOfJob

    下列程式碼顯示輸出組態的範例。

    { "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output" } }] }
  4. 為您在 ProcessingResources 參數內的處理工作中使用的資源指定組態 ClusterConfigClusterConfig 物件內需要以下參數。

    1. InstanceCount 指定叢集中執行處理工作的運算執行個體數。指定大於 1 的值以啟用分散式處理。

    2. InstanceType 指的是執行處理工作的資源。由於 SageMaker SHAP分析是運算密集型,因此使用針對運算最佳化的執行個體類型應可改善分析的執行時間。 SageMaker Clarify 處理任務不使用 GPUs。

    下列程式碼顯示資源組態的範例。

    { "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 20 } }
  5. 為您在 NetworkConfig 物件內的處理工作中使用的網路指定組態。組態中需要下列值。

    1. EnableNetworkIsolation 必須設定為 False(預設),以便 SageMaker Clarify 在必要時調用端點進行預測。

    2. 如果您提供給 SageMaker Clarify 任務的模型或端點位於 Amazon Virtual Private Cloud (AmazonVPC) 內,則 SageMaker Clarify 任務也必須位於相同的 中VPC。VPC 使用 指定 VpcConfig。此外, VPC必須有 Amazon S3 儲存貯體、 SageMaker 服務和 SageMaker 執行期服務的端點。

      如果已啟用分散式處理,您還必須允許同一個處理工作中不同執行個體之間的通訊。為安全群組設定規則,允許相同安全群組成員彼此間的傳入連線。如需詳細資訊,請參閱讓 Amazon SageMaker Clarify 任務存取 Amazon 中的資源 VPC

    下列程式碼顯示網路組態的範例。

    { "EnableNetworkIsolation": False, "VpcConfig": { ... } }
  6. 使用 StoppingCondition 參數來設定工作執行的時間上限。 SageMaker Clarify 任務可以執行的最長時間為 7 天或 604800 秒。如果工作無法在此時間限制內完成,則會停止且不會提供分析結果。例如,下列組態會將工作可執行的時間上限限制為 3600 秒。

    { "MaxRuntimeInSeconds": 3600 }
  7. 指定 RoleArn 參數IAM的角色。此角色必須與 Amazon 具有信任關係 SageMaker。它可用於執行下表中列出的 SageMaker API操作。我們建議您使用 Amazon SageMakerFullAccess 受管政策,該政策授予 的完整存取權 SageMaker。如需此政策的詳細資訊,請參閱 AWS 受管政策: AmazonSageMakerFullAccess。如果您對授予完整存取權有疑慮,所需的最低權限取決於您提供的是模型還是端點名稱。使用端點名稱允許授予較少的許可給 SageMaker。

    下表包含 SageMaker Clarify 處理任務所使用的API操作。模型名稱端點名稱X下的 會記下每個輸入所需的API操作。

    API 操作 模型名稱 Endpoint name (端點名稱) 它的用途

    ListTags

    X

    工作的標籤會套用至陰影端點。

    CreateEndpointConfig

    X

    使用您提供的模型名稱來建立端點組態

    CreateEndpoint

    X

    使用端點組態來建立陰影端點。

    DescribeEndpoint

    X

    X

    描述其狀態的端點,該端點必須 InService 滿足請求。

    InvokeEndpoint

    X

    X

    調用端點以進行預測。

    如需所需許可的相關資訊,請參閱Amazon SageMaker API 許可:動作、許可和資源參考

    如需將角色傳遞至 的詳細資訊 SageMaker,請參閱 傳遞角色

    取得處理工作組態的個別部分之後,將其合併以設定工作。

下列程式碼範例示範如何使用 AWS SDK for Python 啟動 SageMaker Clarify 處理任務。

sagemaker_client.create_processing_job( ProcessingJobName="your-clarify-job-name", AppSpecification={ "ImageUri": "the-clarify-container-image-uri", }, ProcessingInputs=[{ "InputName": "analysis_config", "S3Input": { "S3Uri": "s3://your-bucket/analysis_config.json", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/config", }, }, { "InputName": "dataset", "S3Input": { "S3Uri": "s3://your-bucket/your-dataset.csv", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data", }, }, ], ProcessingOutputConfig={ "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "s3://your-bucket/result/", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output", }, }], }, ProcessingResources={ "ClusterConfig": { "InstanceCount": 1, "InstanceType": "ml.m5.xlarge", "VolumeSizeInGB": 20, }, }, NetworkConfig={ "EnableNetworkIsolation": False, "VpcConfig": { ... }, }, StoppingCondition={ "MaxRuntimeInSeconds": 3600, }, RoleArn="arn:aws:iam::<your-account-id>:role/service-role/AmazonSageMaker-ExecutionRole", )

如需使用 AWS SDK for Python 執行 SageMaker Clarify 處理任務的指示筆記本範例,請參閱使用 AWS SDK for Python 搭配 SageMaker Clarify 的公平性和可解釋性。筆記本中使用的任何 S3 儲存貯體都必須與存取該儲存貯體的筆記本執行個體位於相同 AWS 區域。

您也可以使用 SageMaker Python SageMaker ClarifyProcessor中的 設定 SageMaker Clarify SDK 處理任務API。如需詳細資訊,請參閱執行 SageMaker 澄清處理任務以進行偏差分析和可解釋性