Empaqueter un modèle (Boto3) - Amazon SageMaker

Empaqueter un modèle (Boto3)

Vous pouvez créer une tâche d'empaquetage SageMaker Edge Manager à l'aide de AWS SDK for Python (Boto3). Avant de continuer, assurez-vous d'avoir satisfait les Prerequisites.

Pour demander une tâche d'empaquetage Edge, utilisez CreateEdgePackagingJob. Vous devez fournir un nom à votre tâche d'empaquetage Edge, le nom de votre tâche de compilation SageMaker Neo, votre Amazon Resource name (ARN) de rôle, un nom pour votre modèle, une version pour votre modèle et l'URI du compartiment Amazon S3 où vous voulez stocker la sortie de votre tâche d'empaquetage. Veuillez noter que les noms des tâches d'empaquetage Edge Manager et ceux des tâches de compilation SageMaker Neo sont sensibles à la casse.

# 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/", } )

Vous pouvez vérifier l'état d'une tâche d'empaquetage Edge avec DescribeEdgePackagingJob et en fournissant le nom de la tâche d'empaquetage Edge sensible à la casse :

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

Cela renvoie un dictionnaire qui peut être utilisé pour interroger l'état de la tâche d'empaquetage :

# 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!')

Pour obtenir la liste des tâches d'empaquetage, utilisez ListEdgePackagingJobs. Vous pouvez utiliser cette API pour rechercher une tâche d'empaquetage spécifique. Fournissez un nom partiel pour NameContains afin de filtrer les noms des tâches d'empaquetage et un nom partiel pour ModelNameContains afin de filtrer les tâches dans lesquelles le nom du modèle contient le nom que vous fournissez. Spécifiez également avec quelle colonne trier pour SortBy, et dans quelle direction trier pour SortOrder (Ascending ou Descending).

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

Pour arrêter une tâche d'empaquetage, utilisez StopEdgePackagingJob et indiquez le nom de votre tâche d'empaquetage Edge.

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

Pour obtenir une liste complète des API Edge Manager, veuillez consulter la documentation Boto 3.