

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.

# Comment empaqueter un modèle
<a name="edge-packaging-job"></a>

SageMaker Les tâches d'empaquetage Edge Manager utilisent des SageMaker modèles compilés par Amazon Neo et apportent les modifications nécessaires pour déployer le modèle avec le moteur d'inférence, l'agent Edge Manager.

**Topics**
+ [Exécuter les opérations prérequises](edge-packaging-job-prerequisites.md)
+ [Package d'un modèle (Amazon SageMaker AI Console)](edge-packaging-job-console.md)
+ [Empaqueter un modèle (Boto3)](edge-packaging-job-boto3.md)

# Exécuter les opérations prérequises
<a name="edge-packaging-job-prerequisites"></a>

Pour empaqueter un modèle, procédez comme suit :

1. **Compilez votre modèle d'apprentissage automatique avec SageMaker AI Neo.**

   Si ce n'est pas déjà fait, compilez votre modèle avec SageMaker Neo. Pour plus d’informations sur la compilation de votre modèle, consultez [Compiler et déployer des modèles avec Neo](https://docs.aws.amazon.com/sagemaker/latest/dg/neo.html). Si vous utilisez SageMaker Neo pour la première fois, consultez [Getting Started with Neo Edge Devices.](https://docs.aws.amazon.com/sagemaker/latest/dg/neo-getting-started-edge.html)

1. **Obtenez le nom de votre tâche de compilation.**

   Indiquez le nom du travail de compilation que vous avez utilisé lorsque vous avez compilé votre modèle avec SageMaker Neo. Ouvrez la console SageMaker AI sur [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/)et choisissez **Compilation jobs** pour trouver une liste des compilations qui ont été soumises à votre AWS compte. Les noms des tâches de compilation envoyées figurent dans la colonne **Name (Nom)**.

1. **Obtenez votre ARN IAM.**

   Vous avez besoin d'un nom de ressource Amazon (ARN) correspondant à un rôle IAM que vous pouvez utiliser pour télécharger et charger le modèle et contacter SageMaker Neo.

   Utilisez l'une des méthodes suivantes pour obtenir votre ARN IAM :
   + **Par programmation avec le SDK AI SageMaker Python**

     ```
     import sagemaker
     
     # Initialize SageMaker Session object so you can interact with AWS resources
     sess = sagemaker.Session()
     
     # Get the role ARN 
     role = sagemaker.get_execution_role()
     
     print(role)
     >> arn:aws:iam::<your-aws-account-id>:role/<your-role-name>
     ```

     Pour plus d'informations sur l'utilisation du SDK SageMaker Python, consultez l'API du [SDK Python SageMaker AI](https://sagemaker.readthedocs.io/en/stable/index.html).
   + **Utilisation de la Gestion des identités et des accès AWS console (IAM)**

     Accédez à la console IAM à [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)l'adresse. Dans la section **Resources (Ressources)** IAM, choisissez **Roles (Rôles)** pour afficher une liste des rôles dans votre compte AWS . Sélectionnez ou créez un rôle bénéficiant des autorisations `AmazonSageMakerFullAccess`, `AWSIoTFullAccess` et `AmazonS3FullAccess`.

     Pour plus d’informations, consultez [Qu’est-ce qu’IAM ?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)

1. **Procurez-vous un URI de compartiment S3.**

   Vous devez disposer d'au moins une URI de compartiment Amazon Simple Storage Service (Amazon S3) pour stocker votre modèle néo-compilé, la sortie de la tâche d'empaquetage Edge Manager et des exemples de données de votre flotte de dispositifs.

   Utilisez l'une des méthodes suivantes pour créer un compartiment Amazon S3 :
   + **Par programmation avec le SDK AI SageMaker Python**

     Vous pouvez utiliser le compartiment Amazon S3 par défaut au cours d'une session. Un compartiment par défaut est créé selon le format suivant : `sagemaker-{region}-{aws-account-id}`. Pour créer un bucket par défaut avec le SDK SageMaker Python, utilisez ce qui suit :

     ```
     import sagemaker
     
     session=sagemaker.create_session()
     
     bucket=session.default_bucket()
     ```
   + **Utilisation de la console Amazon S3**

     Ouvrez la console Amazon S3 sur [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)et consultez [Comment créer un compartiment S3 ?](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/create-bucket.html) pour obtenir step-by-step des instructions.

# Package d'un modèle (Amazon SageMaker AI Console)
<a name="edge-packaging-job-console"></a>

Vous pouvez créer une tâche d'empaquetage SageMaker Edge Manager à l'aide de la console SageMaker AI à l'adresse [https://console.aws.amazon.com/sagemaker/](https://console.aws.amazon.com/sagemaker/). Avant de continuer, assurez-vous d'avoir satisfait les [Exécuter les opérations prérequises](edge-packaging-job-prerequisites.md).

1. Dans la console SageMaker AI, choisissez **Edge Inference**, puis **Create Edge Packaging jobs**, comme illustré dans l'image suivante.  
![\[Emplacement du bouton Créer des tâches d’empaquetage Edge dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/smith/pre-edge-packaging-button-edited.png)

1. Sur la page **Job properties (Propriétés de la tâche)**, saisissez un nom pour votre tâche d'empaquetage sous **Edge packaging job name (Nom de la tâche d'empaquetage Edge)**. Veuillez noter que les noms des tâches d’empaquetage Edge Manager sont sensibles à la casse. Nommez votre modèle et donnez-lui une version : saisissez ces éléments sous **Model name (Nom de modèle)** et **Model version (Version de modèle)**, respectivement.

1. Ensuite, sélectionnez un **rôle IAM**. Vous pouvez choisir un rôle ou laisser AWS en créer un pour vous. Vous pouvez spécifier un **ARN de clé de ressource** et des **balises de tâche**.

1. Choisissez **Suivant**.   
![\[Exemple de la section Propriétés de la tâche dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/smith/create-edge-packaging-job-filled.png)

1. Spécifiez le nom de la tâche de compilation que vous avez utilisée lors de la compilation de votre modèle avec SageMaker Neo dans le champ **Nom de la tâche de compilation**. Choisissez **Suivant**.  
![\[Exemple de la section Source du modèle dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/smith/create-edge-packaging-job-model-source-filled.png)

1. Sur la page **Output configuration (Configuration de sortie)**, spécifiez l'URI du compartiment Amazon S3 où vous voulez stocker la sortie de la tâche d'empaquetage.  
![\[Exemple de page Configuration de sortie dans la console.\]](http://docs.aws.amazon.com/fr_fr/sagemaker/latest/dg/images/smith/create-device-fleet-output-filled.png)

   La colonne **Status (État)** de la page des tâches **Edge packaging (Empaquetage Edge)** doit indiquer **IN PROGRESS (EN COURS)**. Une fois la tâche d'empaquetage terminée, l'état passe à **COMPLETED (TERMINÉE)**.

   Sélectionnez une tâche d'empaquetage pour afficher les paramètres de cette tâche. La section **Job settings (Paramètres de la tâche)** affiche le nom de la tâche, l'ARN, l'état, l'heure de création, l'heure de la dernière modification, la durée de la tâche d'empaquetage et l'ARN du rôle.

   La section **Input configuration (Configuration d'entrée)** affiche l'emplacement des artefacts de modèle, la configuration d'entrée de données et le cadre de machine learning du modèle.

   La section **Output configuration (Configuration de sortie)** affiche l'emplacement de sortie de la tâche d'empaquetage, le dispositif cible pour lequel le modèle a été compilé et les balises que vous avez créées.

1. Choisissez le nom de votre flotte de dispositifs pour être redirigé vers les détails de la flotte de dispositifs. Cette page affiche le nom de la flotte de dispositifs, l'ARN, la description (si vous en avez fourni une), la date de création de la flotte, la dernière modification de la flotte, l'URI du compartiment Amazon S3, l'ID de clé AWS KMS (si vous en avez fourni une), l'alias AWS IoT (si vous en avez fourni un) et le rôle IAM. Si vous avez ajouté des balises, elles apparaissent dans la section **Device fleet tags (Balises de flotte de dispositifs)**.

# Empaqueter un modèle (Boto3)
<a name="edge-packaging-job-boto3"></a>

Vous pouvez créer une tâche d'empaquetage SageMaker Edge Manager avec le AWS SDK pour Python (Boto3). Avant de continuer, assurez-vous d'avoir satisfait les [Exécuter les opérations prérequises](edge-packaging-job-prerequisites.md).

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 [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html).