本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
若要針對 SageMaker 訓練任務使用 SageMaker 訓練計劃,請在呼叫 CreateTrainingJob
API 操作ResourceConfig
時,在 中指定所需計劃的 TrainingPlanArn
參數。每個任務只能使用一個計劃。
重要
CreateTrainingJob
請求 ResourceConfig
區段中的 InstanceType
欄位集必須符合訓練計畫的 InstanceType
。
使用 CLI 在計劃上執行訓練任務
下列範例示範如何使用 create-training-job
AWS CLI 命令中的 TrainingPlanArn
屬性,建立 SageMaker 訓練任務,並將其與提供的訓練計畫建立關聯。
如需如何使用 AWS CLI CreateTrainingJob 命令建立訓練任務的詳細資訊,請參閱 create-training-job
。
# Create a training job aws sagemaker create-training-job \ --training-job-name
training-job-name
\ ... --resource-config '{ "InstanceType": "ml.p5.48xlarge
", "InstanceCount":8
, "VolumeSizeInGB":10
, "TrainingPlanArn": "training-plan-arn
" } }' \ ...
此 AWS CLI 範例命令會在 SageMaker AI 中建立新的訓練任務,並在 --resource-config
引數中傳遞訓練計畫。
aws sagemaker create-training-job \
--training-job-name job-name
\
--role-arn arn:aws:iam::123456789123:role/DataAndAPIAccessRole
\
--algorithm-specification '{"TrainingInputMode": "File
","TrainingImage": "123456789123.dkr.ecr.us-east-1.amazonaws.com/algo-image:tag
", "ContainerArguments": [" "]}' \
--input-data-config '[{"ChannelName":"training
","DataSource":{"S3DataSource":{"S3DataType":"S3Prefix
","S3Uri":"s3://bucketname/input
","S3DataDistributionType":"ShardedByS3Key
"}}}]' \
--output-data-config '{"S3OutputPath": "s3://bucketname/output
"}' \
--resource-config '{"VolumeSizeInGB":10
,"InstanceCount":4
,"InstanceType":"ml.p5.48xlarge
", "TrainingJobArn" : "arn:aws:sagemaker:us-east-1:123456789123:training-job/plan-name
"}' \
--stopping-condition '{"MaxRuntimeInSeconds": 1800
}' \
--region us-east-1
建立訓練任務之後,您可以呼叫 DescribeTrainingJob
API 來驗證是否已正確指派給訓練計畫。
aws sagemaker describe-training-job --training-job-name
training-job-name
使用 SageMaker AI Python SDK 在計劃上執行訓練任務
或者,您可以使用 SageMaker Python SDK
如果您使用 Studio 中 JupyterLab 的 SageMaker Python SDK 來建立訓練任務,請確定執行 JupyterLab 應用程式之空間所使用的執行角色具有使用 SageMaker 訓練計畫所需的許可。若要了解使用 SageMaker 訓練計畫所需的許可,請參閱 IAM for SageMaker 訓練計畫。
下列範例示範如何在使用 SageMaker Python SDK 時,使用 Estimator
物件中的 training_plan
屬性建立 SageMaker 訓練任務,並將其與提供的訓練計畫建立關聯。
如需 SageMaker 估算器的詳細資訊,請參閱使用 SageMaker 估算器執行訓練任務。
import sagemaker
import boto3
from sagemaker import get_execution_role
from sagemaker.estimator import Estimator
from sagemaker.inputs import TrainingInput
# Set up the session and SageMaker client
session = boto3.Session()
region = session.region_name
sagemaker_session = session.client('sagemaker')
# Get the execution role for the training job
role = get_execution_role()
# Define the input data configuration
trainingInput = TrainingInput(
s3_data='s3://input-path
',
distribution='ShardedByS3Key
',
s3_data_type='S3Prefix
'
)
estimator = Estimator(
entry_point='train.py',
image_uri="123456789123.dkr.ecr.{}.amazonaws.com/image:tag
",
role=role,
instance_count=4
,
instance_type='ml.p5.48xlarge
',
training_plan="training-plan-arn
",
volume_size=20
,
max_run=3600
,
sagemaker_session=sagemaker_session,
output_path="s3://output-path
"
)
# Create the training job
estimator.fit(inputs=trainingInput, job_name=job_name
)
建立訓練任務之後,您可以呼叫 DescribeTrainingJob
API 來驗證是否已正確指派給訓練計畫。
# Check job details
sagemaker_session.describe_training_job(TrainingJobName=job_name)