本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 SageMaker 澄清處理 Job
若要使用「 SageMaker 澄清」分析資料和模型的偏差和解釋性,您必須設定「 SageMaker 澄清」處理工作。本指南說明如何指定處理工作的輸入資料集名稱、分析組態檔案名稱和輸出位置。若要設定處理容器、工作輸入、輸出、資源和其他參數,您有兩種選擇。您可以使用 SageMaker CreateProcessingJob
API,也可以使用 SageMaker Python SDK APISageMaker ClarifyProcessor
,
如需所有處理任務通用參數的相關資訊,請參閱 Amazon 參 SageMaker API考資料。
下列指示顯示如何使用提供「 SageMaker 澄清特定組態」的每個部分CreateProcessingJob
API。
-
在
AppSpecification
參數內輸入 Cverine 容器影像的 SageMaker 統一研究識別碼 (URI),如下列程式碼範例所示。{ "ImageUri": "
the-clarify-container-image-uri
" }注意
URI必須識別預先建立的 SageMaker 澄清容器映像檔。
ContainerEntrypoint
並且ContainerArguments
不受支援。如需「 SageMaker 澄清容器影像」的更多資訊,請參閱開始使用 SageMaker 澄清容器。 -
指定分析的組態和
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
參數應指定資訊清單檔案的位置,該檔案遵循「參 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
" } } -
-
-
指定
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 澄清處理工作不使用GPUs。
下列程式碼顯示資源組態的範例。
{ "ClusterConfig": { "InstanceCount":
1
, "InstanceType": "ml.m5.xlarge
", "VolumeSizeInGB":20
} } -
-
為您在
NetworkConfig
物件內的處理工作中使用的網路指定組態。組態中需要下列值。-
EnableNetworkIsolation
必須設定為False
(預設值),這樣 C SageMaker leven 才能在必要時叫用端點來進行預測。 -
如果您提供給 SageMaker 澄清任務的模型或端點位於 Amazon Virtual Private Cloud 端 (AmazonVPC) 內,則「 SageMaker 澄清」任務也必須處於相同狀態VPC。指定VPC使用VpcConfig。此外,VPC必須具有 Amazon S3 儲存貯體、 SageMaker 服務和 SageMaker 執行階段服務的端點。
如果已啟用分散式處理,您還必須允許同一個處理工作中不同執行個體之間的通訊。為安全群組設定規則,允許相同安全群組成員彼此間的傳入連線。如需詳細資訊,請參閱給 Amazon SageMaker 澄清工作訪問您的 Amazon 資源 VPC。
下列程式碼顯示網路組態的範例。
{ "EnableNetworkIsolation": False, "VpcConfig": { ... } }
-
-
使用
StoppingCondition
參數來設定工作執行的時間上限。 SageMaker 澄清工作可以執行的時間最長為7
天或604800
秒。如果工作無法在此時間限制內完成,則會停止且不會提供分析結果。例如,下列組態會將工作可執行的時間上限限制為 3600 秒。{ "MaxRuntimeInSeconds": 3600 }
-
指定
RoleArn
參數的IAM角色。該角色必須與 Amazon 建立信任關係 SageMaker。它可用於執行下表中列出的 SageMaker API操作。我們建議使用 Amazon SageMakerFullAccess 受管政策,該政策授予完整存取權 SageMaker。如需此原則的詳細資訊,請參閱AWS 受管理的策略: AmazonSageMakerFullAccess。如果您對授予完整存取權有疑慮,所需的最低權限取決於您提供的是模型還是端點名稱。使用端點名稱允許授與較少的權限 SageMaker。下表包含「 SageMaker 澄清」處理工作所使用的作API業。模型名稱和端點名稱
X
下的註記每個輸入所需的API操作。API操作 模型名稱 Endpoint name (端點名稱) 它的用途 X
工作的標籤會套用至陰影端點。
X
使用您提供的模型名稱來建立端點組態
X
使用端點組態來建立陰影端點。
X
X
描述端點的狀態,端點必須為請求 InService 提供服務。
X
X
調用端點以進行預測。
如需所需許可的相關資訊,請參閱Amazon SageMaker API 許可:動作、許可和資源參考。
如需將角色傳遞給的詳細資訊 SageMaker,請參閱傳遞角色。
取得處理工作組態的個別部分之後,將其合併以設定工作。
下列程式碼範例示範如何使用 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
", )
有關使用 Python 運行 SageMaker 澄清處理工作說明的示例筆記本,請參閱使用 AWS SDK Python 進行 SageMaker 澄清的公平性和解釋 AWS SDK性
您也可以使用 SageMaker Python SageMaker ClarifyProcessor