使用 API、、 Amazon CLI SageMaker SDK 创建训练作业 - 亚马逊 SageMaker AI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 API、、 Amazon CLI SageMaker SDK 创建训练作业

要将 SageMaker 训练计划用于您的 SageMaker 训练作业,请在调用 CreateTrainingJobAPI 操作ResourceConfig时在中指定所需计划的TrainingPlanArn参数。每项工作只能使用一个计划。

重要

CreateTrainingJob请求ResourceConfig部分中设置的InstanceType字段必须与您的训练计划相匹配。InstanceType

使用 CLI 根据计划运行训练作业

以下示例演示如何使用create-training-job Amazon CLI 命令中的TrainingPlanArn属性创建 SageMaker 训练作业并将其与提供的训练计划相关联。

有关如何使用 Amazon 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" } }' \ ...

此 Amazon 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 软件开发工具包根据计划运行训练作业

或者,您可以使用 SageMaker Python SDK 创建与训练计划关联的训练作业。

如果您 JupyterLab 在 Studio 中使用 SageMaker Python SDK 创建训练作业,请确保运行 JupyterLab应用程序的空间使用的执行角色具有使用 SageMaker 训练计划所需的权限。要了解使用 SageMaker 培训计划所需的权限,请参阅用于 SageMaker 培训计划的 IAM

以下示例演示了在使用 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)