Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Prerequisiti
SageMaker Neo è una funzionalità che ti consente di addestrare i modelli di machine learning una volta e di eseguirli ovunque nel cloud e nell'edge. Prima di poter compilare e ottimizzare i modelli con Neo, è necessario configurare alcuni prerequisiti. È necessario installare le librerie Python necessarie, configurare le AWS credenziali, creare un IAM ruolo con le autorizzazioni richieste e configurare un bucket S3 per l'archiviazione degli artefatti del modello. È inoltre necessario disporre di un modello di machine learning addestrato. I seguenti passaggi ti guidano nella configurazione:
-
Installa Boto3
Se stai eseguendo questi comandi sul tuo dispositivo edge, devi installare il AWS SDK for Python (Boto3). All'interno di un ambiente Python (preferibilmente un ambiente virtuale), esegui quanto segue localmente sul terminale del tuo dispositivo edge o all'interno di un'istanza del notebook Jupyter:
-
Configurare AWS le credenziali
È necessario configurare le credenziali di Amazon Web Services sul dispositivo SDK per eseguire Python (Boto3). Per impostazione predefinita, le AWS credenziali devono essere archiviate nel file
~/.aws/credentials
sul dispositivo edge. All'interno del file delle credenziali, dovresti vedere due variabili di ambiente:aws_access_key_id
eaws_secret_access_key
.Nel tuo terminale, esegui:
$ more ~/.aws/credentials [default] aws_access_key_id =
YOUR_ACCESS_KEY
aws_secret_access_key =YOUR_SECRET_KEY
La Guida di riferimento AWS generale contiene istruzioni su come ottenere le informazioni necessarie
aws_access_key_id
eaws_secret_access_key
. Per ulteriori informazioni su come configurare le credenziali sul dispositivo, consulta la documentazione di Boto3. -
Imposta un IAM ruolo e allega le politiche.
Neo deve accedere al tuo URI bucket S3. Crea un IAM ruolo in grado di eseguire l' SageMaker intelligenza artificiale e che disponga dell'autorizzazione per accedere a S3. URI Puoi creare un IAM ruolo usando SDK for Python (Boto3), la console o il. AWS CLI L'esempio seguente illustra come creare un IAM ruolo usando SDK per 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'
Per ulteriori informazioni su come creare un IAM ruolo con la console o tramite AWS CLI AWS API, vedi Creazione di un IAM utente nel tuo account. AWS
Crea un dizionario che descriva la IAM politica che stai allegando. Questa politica viene utilizzata per creare un nuovo IAM ruolo.
policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }
Crea un nuovo IAM ruolo utilizzando la politica che hai definito sopra:
import json new_role = iam_client.create_role( AssumeRolePolicyDocument=json.dumps(policy), Path='/', RoleName=role_name )
Devi sapere qual è il tuo Amazon Resource Name (ARN) quando crei un lavoro di compilazione in una fase successiva, quindi memorizzalo anche in una variabile.
role_arn = new_role['Role']['Arn']
Ora che hai creato un nuovo ruolo, allega le autorizzazioni necessarie per interagire con Amazon SageMaker AI e 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' );
-
Crea un bucket Amazon S3 per archiviare gli artefatti del modello
SageMaker Neo accederà agli artefatti del tuo modello da Amazon S3
-
Addestra un modello di machine learning
Consulta Train a Model with Amazon SageMaker AI per ulteriori informazioni su come addestrare un modello di machine learning utilizzando Amazon SageMaker AI. Facoltativamente, puoi caricare il tuo modello addestrato localmente direttamente in un bucket Amazon URI S3.
Nota
Assicurati che il modello sia formattato correttamente a seconda del framework che hai utilizzato. Vedi Quali forme di dati di input si SageMaker aspetta Neo?
Se non hai ancora un modello, usa il
curl
comando per ottenere una copia locale delcoco_ssd_mobilenet
modello dal sito web TensorFlow del sito web. Il modello che hai appena copiato è un modello di rilevamento di oggetti addestrato dal COCOsetdi dati. Digita quanto segue nel tuo notebook 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}
Nota che questo particolare esempio è stato impacchettato in un file .zip. Decomprimi questo file e comprimilo nuovamente come tarfile compresso (
.tar.gz
) prima di utilizzarlo nelle fasi successive. Digita quanto segue nel tuo notebook 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}
-
Carica il modello addestrato in un bucket S3
Dopo aver addestrato la modalità di machine learning, archiviala in un bucket S3.