Package 一個模型 (Boto3) - Amazon SageMaker AI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Package 一個模型 (Boto3)

您可以使用 適用於 Python (Boto3) 的 AWS SDK建立 SageMaker Edge Manager 封裝任務。繼續之前,請確認您已滿足完成事前準備

若要請求 Edge 封裝任務,請使用 CreateEdgePackagingJob。您需要提供 Edge 封裝任務的名稱、SageMaker Neo 編譯任務的名稱、角色 Amazon Resource Name (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 並提供區分大小寫的 Edge 封裝任務名稱來檢查 Edge 封裝任務的狀態:

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 並提供 Edge 封裝任務的名稱。

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

如需 Edge Manager API 的完整清單,請參閱 Boto3 文件