Prerequisiti - Amazon SageMaker AI

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:

  1. 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:

    Terminal
    pip install boto3
    Jupyter Notebook
    !pip install boto3
  2. 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 e aws_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 e aws_secret_access_key. Per ulteriori informazioni su come configurare le credenziali sul dispositivo, consulta la documentazione di Boto3.

  3. 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' );
  4. Crea un bucket Amazon S3 per archiviare gli artefatti del modello

    SageMaker Neo accederà agli artefatti del tuo modello da Amazon S3

    Boto3
    # Create an S3 client s3_client = boto3.client('s3', region_name=AWS_REGION) # Name buckets bucket='name-of-your-bucket' # Check if bucket exists if boto3.resource('s3').Bucket(bucket) not in boto3.resource('s3').buckets.all(): s3_client.create_bucket( Bucket=bucket, CreateBucketConfiguration={ 'LocationConstraint': AWS_REGION } ) else: print(f'Bucket {bucket} already exists. No action needed.')
    CLI
    aws s3 mb s3://'name-of-your-bucket' --region specify-your-region # Check your bucket exists aws s3 ls s3://'name-of-your-bucket'/
  5. 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 del coco_ssd_mobilenet modello dal sito web TensorFlow del sito web. Il modello che hai appena copiato è un modello di rilevamento di oggetti addestrato dal COCOset di 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}
  6. Carica il modello addestrato in un bucket S3

    Dopo aver addestrato la modalità di machine learning, archiviala in un bucket S3.

    Boto3
    # Upload model s3_client.upload_file(Filename=model_filename, Bucket=bucket, Key=model_filename)
    CLI

    Sostituisci your-model-filename e amzn-s3-demo-bucket con il nome del bucket Amazon S3.

    aws s3 cp your-model-filename s3://amzn-s3-demo-bucket