Empaqueter un modèle (Boto3) - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Empaqueter un modèle (Boto3)

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

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, le nom de la ressource Amazon (ARN) de votre rôle, le nom de votre modèle, une version de votre modèle et l'URI du compartiment Amazon S3 dans lequel vous souhaitez stocker le résultat de votre tâche d'empaquetage. Notez que les noms des tâches d'empaquetage d'Edge Manager et les noms des tâches de compilation SageMaker Neo distinguent les majuscules et minuscules.

# 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 une liste complète d'Edge Manager APIs, consultez la documentation de Boto3.