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.
Démarrer avec Neo sur des appareils en périphérie
Ce guide de prise en main d'Amazon SageMaker Neo explique comment compiler un modèle, configurer votre appareil et tirer des conclusions sur celui-ci. La plupart des exemples de code utilisent Boto3. Nous fournissons des commandes, le cas AWS CLI échéant, ainsi que des instructions sur la manière de satisfaire aux prérequis pour Neo.
Note
Vous pouvez exécuter les extraits de code suivants sur votre machine locale, dans un SageMaker bloc-notes, dans SageMaker Studio ou (selon votre appareil Edge) sur votre appareil Edge. La configuration est similaire ; toutefois, il existe deux exceptions principales si vous exécutez ce guide dans une instance de SageMaker bloc-notes ou une session SageMaker Studio :
-
Vous n'avez pas besoin d'installer Boto3.
-
Vous n'avez pas besoin d'ajouter la politique IAM
‘AmazonSageMakerFullAccess’
Ce guide suppose que vous exécutez les instructions suivantes sur votre appareil en périphérie.
Prérequis
-
Installation de Boto3
Si vous exécutez ces commandes sur votre appareil en périphérie, vous devez installer le kit AWS SDK for Python (Boto3). Dans un environnement Python (de préférence un environnement virtuel), exécutez les opérations suivantes localement sur le terminal de votre appareil en périphérie ou dans une instance de bloc-notes Jupyter :
-
Configurer les AWS informations d'identification
Vous devez configurer les informations d'identification Amazon Web Services sur votre périphérique afin d'exécuter le SDK for Python (Boto3). Par défaut, les AWS informations d'identification doivent être stockées dans le fichier
~/.aws/credentials
sur votre appareil Edge. Dans le fichier d'informations d'identification, vous devez voir deux variables d'environnement :aws_access_key_id
etaws_secret_access_key
.Dans votre terminal, exécutez :
$ more ~/.aws/credentials [default] aws_access_key_id =
YOUR_ACCESS_KEY
aws_secret_access_key =YOUR_SECRET_KEY
Le Guide de référence générale AWS contient des instructions sur la façon d'obtenir les
aws_access_key_id
etaws_secret_access_key
nécessaires. Pour de plus amples informations sur la configuration des informations d'identification sur votre périphérique, veuillez consulter la documentation Boto3. -
Configurez un rôle IAM et attachez-lui des politiques.
Neo doit accéder à l'URI de votre compartiment S3. Créez un rôle IAM qui peut s'exécuter SageMaker et qui est autorisé à accéder à l'URI S3. Vous pouvez créer un rôle IAM à l'aide du SDK for Python (Boto3), de la console ou de la AWS CLI. L'exemple suivant illustre la création d'un rôle IAM à l'aide du SDK for Python (Boto3) :
import boto3 AWS_REGION =
'aws-region'
# Create an IAM client to interact with IAM iam_client = boto3.client('iam', region_name=AWS_REGION) role_name ='role-name'
Pour plus d'informations sur la création d'un rôle IAM avec la console ou via l' AWS API AWS CLI, consultez la section Création d'un utilisateur IAM dans votre AWS compte.
Créez un dictionnaire décrivant la politique IAM que vous attachez. Cette politique sert à créer un nouveau rôle IAM.
policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }
Créez un nouveau rôle IAM à l'aide de la politique que vous avez définie ci-dessus :
import json new_role = iam_client.create_role( AssumeRolePolicyDocument=json.dumps(policy), Path='/', RoleName=role_name )
Vous devez connaître votre Amazon Resource Name (ARN) lorsque vous créez une tâche de compilation à une étape ultérieure. Veillez donc à le stocker dans une variable.
role_arn = new_role['Role']['Arn']
Maintenant que vous avez créé un nouveau rôle, associez les autorisations dont il a besoin pour interagir avec Amazon SageMaker et Amazon S3 :
iam_client.attach_role_policy( RoleName=role_name, PolicyArn='arn:aws:iam::aws:policy/AmazonSageMakerFullAccess' ) iam_client.attach_role_policy( RoleName=role_name, PolicyArn='arn:aws:iam::aws:policy/AmazonS3FullAccess' );
-
Création d'un compartiment Amazon S3 pour stocker vos artefacts de modèle
SageMaker Neo accèdera aux artefacts de votre modèle depuis Amazon S3
-
Entraînement d'un modèle de machine learning
Consultez Train a Model with Amazon SageMaker pour plus d'informations sur la façon de former un modèle d'apprentissage automatique à l'aide d'Amazon SageMaker. En variante, vous pouvez télécharger le modèle que vous avez entraîné localement, directement dans un compartiment d'URI Amazon S3.
Note
Assurez-vous que le modèle est correctement formaté en fonction du cadre que vous avez utilisé. Voir Quelles sont les formes de données d'entrée attendues par SageMaker Neo ?
Si vous n'avez pas encore de modèle, utilisez la
curl
commande pour obtenir une copie locale ducoco_ssd_mobilenet
modèle sur le site Web TensorFlow du fabricant. Le modèle que vous venez de copier est un modèle de détection d'objets entraîné à partir du jeu de données COCO. Saisissez ce qui suit dans votre bloc-notes Jupyter : model_zip_filename = './coco_ssd_mobilenet_v1_1.0.zip' !curl http://storage.googleapis.com/download.tensorflow.org/models/tflite/coco_ssd_mobilenet_v1_1.0_quant_2018_06_29.zip \ --output {model_zip_filename}
Veuillez noter que cet exemple particulier a été packagé dans un fichier .zip. Décompressez ce fichier et repackagez-le en tant que fichier tarfile compressé (
.tar.gz
) avant de l'utiliser dans les étapes ultérieures. Saisissez ce qui suit dans votre bloc-notes Jupyter :# Extract model from zip file !unzip -u {model_zip_filename} model_filename = 'detect.tflite' model_name = model_filename.split('.')[0] # Compress model into .tar.gz so SageMaker Neo can use it model_tar = model_name + '.tar.gz' !tar -czf {model_tar} {model_filename}
-
Chargement d'un modèle entraîné dans un compartiment S3
Une fois votre modèle de machine learning entraîné, stockez-le dans un compartiment S3.