本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 API AWS CLI、SageMaker SDK 建立訓練任務
若要針對 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-nametraining-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-namejob-name\ --role-arnarn:aws:iam::111122223333:role/DataAndAPIAccessRole\ --algorithm-specification '{"TrainingInputMode": "File","TrainingImage": "111122223333.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", "TrainingPlanArn" : "arn:aws:sagemaker:us-east-1:111122223333:training-plan/plan-name"}' \ --stopping-condition '{"MaxRuntimeInSeconds":1800}' \ --regionus-east-1
在建立訓練任務之後,您可以透過呼叫 DescribeTrainingJob API 來驗證是否已正確指派給訓練計畫。
aws sagemaker describe-training-job --training-job-nametraining-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)