設定 SageMaker 澄清處理 Job - Amazon SageMaker

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

設定 SageMaker 澄清處理 Job

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

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

下列指示顯示如何使用提供「 SageMaker 澄清特定組態」的每個部分CreateProcessingJobAPI。

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

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

    URI必須識別預先建立的 SageMaker 澄清容器映像檔。 ContainerEntrypoint並且ContainerArguments不受支援。如需「 SageMaker 澄清容器影像」的更多資訊,請參閱開始使用 SageMaker 澄清容器

  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參數應指定資訊清單檔案的位置,該檔案遵循「參 SageMaker API考」區段 S3 Uri 的結構描述。此資訊清單檔案必須列出包含工作輸入資料的 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 澄清處理工作不使用GPUs。

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

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

    1. EnableNetworkIsolation必須設定為 False (預設值),這樣 C SageMaker leven 才能在必要時叫用端點來進行預測。

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

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

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

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

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

    下表包含「 SageMaker 澄清」處理工作所使用的作API業。模型名稱端點名稱X下的註記每個輸入所需的API操作。

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

    ListTags

    X

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

    CreateEndpointConfig

    X

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

    CreateEndpoint

    X

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

    DescribeEndpoint

    X

    X

    描述端點的狀態,端點必須為請求 InService 提供服務。

    InvokeEndpoint

    X

    X

    調用端點以進行預測。

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

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

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

下列程式碼範例示範如何使用 Python 來啟動 SageMaker 澄清處理工作。AWS SDK

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", )

有關使用 Python 運行 SageMaker 澄清處理工作說明的示例筆記本,請參閱使用 AWS SDK Python 進行 SageMaker 澄清的公平性和解釋 AWS SDK性。筆記型電腦中使用的任何 S3 儲存貯體必須與存取該儲存貯體的筆記本執行個體位於相同的 AWS 區域。

您也可以使用 SageMaker Python SageMaker ClarifyProcessor中的來設定 SageMaker 澄清處理工作SDKAPI。如需詳細資訊,請參閱執行 SageMaker 澄清處理工作以進行偏差分析和解釋