打包模型 (Boto3) - 亚马逊 SageMaker AI

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

打包模型 (Boto3)

您可以使用创建 SageMaker Edge Manager 打包作业 AWS SDK for Python (Boto3)。在继续之前,请确保您已经满足满足先决条件

要请求边缘打包作业,请使用 CreateEdgePackagingJob。您需要为边缘打包任务提供名称、 SageMaker Neo 编译任务的名称、角色的亚马逊资源名称 (ARN)、模型的名称、模型的版本以及要存储打包任务输出的 Amazon S3 存储桶 URI。请注意,Edge Manager 打包作业名称和 SageMaker Neo 编译作业名称区分大小写。

# Import AWS SDK for Python (Boto3) import boto3 # Create Edge client so you can submit a packaging job sagemaker_client = boto3.client("sagemaker", region_name='aws-region') sagemaker_client.create_edge_packaging_job( EdgePackagingJobName="edge-packaging-name", CompilationJobName="neo-compilation-name", RoleArn="arn:aws:iam::99999999999:role/rolename", ModelName="sample-model-name", ModelVersion="model-version", OutputConfig={ "S3OutputLocation": "s3://your-bucket/", } )

您可以使用 DescribeEdgePackagingJob 并提供区分大小写的边缘打包作业名称来检查边缘打包作业的状态:

response = sagemaker_client.describe_edge_packaging_job( EdgePackagingJobName="edge-packaging-name")

这将返回一个可用于轮询打包作业状态的字典:

# Optional - Poll every 30 sec to check completion status import time while True: response = sagemaker_client.describe_edge_packaging_job( EdgePackagingJobName="edge-packaging-name") if response['EdgePackagingJobStatus'] == 'Completed': break elif response['EdgePackagingJobStatus'] == 'Failed': raise RuntimeError('Packaging job failed') print('Packaging model...') time.sleep(30) print('Done!')

有关打包作业的列表,请使用 ListEdgePackagingJobs。您可以使用此 API 搜索特定的打包作业。提供部分名称以筛选 NameContains 的打包作业名称,提供 ModelNameContains 的部分名称以筛选模型名称中包含您提供的名称的作业。还可以指定使用 SortBy 对哪一列进行排序,以及使用 SortOrder 按哪个方向排序(AscendingDescending)。

sagemaker_client.list_edge_packaging_jobs( "NameContains": "sample", "ModelNameContains": "sample", "SortBy": "column-name", "SortOrder": "Descending" )

要停止打包作业,请使用 StopEdgePackagingJob 并提供边缘打包作业的名称。

sagemaker_client.stop_edge_packaging_job( EdgePackagingJobName="edge-packaging-name" )

有关 Edge Manager 的完整列表 APIs,请参阅 Boto3 文档