本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 SageMaker Clarify 處理任務
若要使用 SageMaker Clarify 分析資料和模型的偏差和可解釋性,您必須設定 SageMaker Clarify 處理任務。本指南說明如何指定處理工作的輸入資料集名稱、分析組態檔案名稱和輸出位置。若要設定處理容器、工作輸入、輸出、資源和其他參數,您有兩種選擇。您可以使用 SageMaker CreateProcessingJob
API,或使用 SageMaker Python SDK API SageMaker ClarifyProcessor
、
如需所有處理任務常用參數的相關資訊,請參閱 Amazon SageMaker API 參考 。
下列指示說明如何使用 提供 SageMaker Clarify CreateProcessingJob
特定組態的每個部分API。
-
在
AppSpecification
參數內輸入 SageMaker Clarify 容器映像的統一研究識別符 (URI),如下列程式碼範例所示。{ "ImageUri": "
the-clarify-container-image-uri
" }注意
必須URI識別預先建置的 SageMaker Clarify 容器映像。
ContainerArguments
不支援ContainerEntrypoint
和 。如需 SageMaker Clarify 容器映像的詳細資訊,請參閱 預先建置的 SageMaker Clarify 容器。 -
指定分析的組態和
ProcessingInputs
參數內輸入資料集的參數。-
指定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
" } }如需分析組態檔案結構描述的詳細資訊,請參閱 分析組態檔案 。
-
指定輸入資料集的位置。
ProcessingInput
物件的InputName
參數必須是dataset
。如果您已在分析組態檔案中提供 “dataset_uri”,則此參數為選用。S3Input
組態中需要下列值。-
S3Uri
可以是 Amazon S3 物件或 S3 字首。 -
S3InputMode
必須是類型File
。 -
S3CompressionType
必須是類型None
(預設值)。 -
S3DataDistributionType
必須是類型FullyReplicated
(預設值)。 -
S3DataType
可以是S3Prefix
或ManifestFile
。若要使用ManifestFile
,S3Uri
參數應指定資訊清單檔案的位置,其遵循參考區段 S3Uri中的結構描述 SageMaker API。此資訊清單檔案必須列出包含工作輸入資料的 S3 物件。
下列程式碼顯示輸入組態的範例。
{ "InputName": "dataset", "S3Input": { "S3Uri": "
s3://your-bucket/your-dataset.csv
", "S3DataType": "S3Prefix", "S3InputMode": "File", "LocalPath": "/opt/ml/processing/input/data
" } } -
-
-
指定
ProcessingOutputConfig
參數內處理工作輸出的組態。Outputs
組態中需要單一ProcessingOutput
物件。輸出組態中需要下列項目:-
OutputName
必須為analysis_result
。 -
S3Uri
必須是輸出位置的 S3 字首。 -
S3UploadMode
必須設定為EndOfJob
。
下列程式碼顯示輸出組態的範例。
{ "Outputs": [{ "OutputName": "analysis_result", "S3Output": { "S3Uri": "
s3://your-bucket/result/
", "S3UploadMode": "EndOfJob", "LocalPath": "/opt/ml/processing/output
" } }] } -
-
為您在
ProcessingResources
參數內的處理工作中使用的資源指定組態ClusterConfig
。ClusterConfig
物件內需要以下參數。-
InstanceCount
指定叢集中執行處理工作的運算執行個體數。指定大於1
的值以啟用分散式處理。 -
InstanceType
指的是執行處理工作的資源。由於 SageMaker SHAP分析是運算密集型,因此使用針對運算最佳化的執行個體類型應可改善分析的執行時間。 SageMaker Clarify 處理任務不使用 GPUs。
下列程式碼顯示資源組態的範例。
{ "ClusterConfig": { "InstanceCount":
1
, "InstanceType": "ml.m5.xlarge
", "VolumeSizeInGB":20
} } -
-
為您在
NetworkConfig
物件內的處理工作中使用的網路指定組態。組態中需要下列值。-
EnableNetworkIsolation
必須設定為False
(預設),以便 SageMaker Clarify 在必要時調用端點進行預測。 -
如果您提供給 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": { ... } }
-
-
使用
StoppingCondition
參數來設定工作執行的時間上限。 SageMaker Clarify 任務可以執行的最長時間為7
天或604800
秒。如果工作無法在此時間限制內完成,則會停止且不會提供分析結果。例如,下列組態會將工作可執行的時間上限限制為 3600 秒。{ "MaxRuntimeInSeconds": 3600 }
-
指定
RoleArn
參數IAM的角色。此角色必須與 Amazon 具有信任關係 SageMaker。它可用於執行下表中列出的 SageMaker API操作。我們建議您使用 Amazon SageMakerFullAccess 受管政策,該政策授予 的完整存取權 SageMaker。如需此政策的詳細資訊,請參閱 AWS 受管政策: AmazonSageMakerFullAccess。如果您對授予完整存取權有疑慮,所需的最低權限取決於您提供的是模型還是端點名稱。使用端點名稱允許授予較少的許可給 SageMaker。下表包含 SageMaker Clarify 處理任務所使用的API操作。模型名稱和端點名稱
X
下的 會記下每個輸入所需的API操作。API 操作 模型名稱 Endpoint name (端點名稱) 它的用途 X
工作的標籤會套用至陰影端點。
X
使用您提供的模型名稱來建立端點組態
X
使用端點組態來建立陰影端點。
X
X
描述其狀態的端點,該端點必須 InService 滿足請求。
X
X
調用端點以進行預測。
如需所需許可的相關資訊,請參閱Amazon SageMaker API 許可:動作、許可和資源參考。
如需將角色傳遞至 的詳細資訊 SageMaker,請參閱 傳遞角色。
取得處理工作組態的個別部分之後,將其合併以設定工作。
下列程式碼範例示範如何使用 AWS SDK for Python
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 的公平性和可解釋性
您也可以使用 SageMaker Python SageMaker ClarifyProcessor