Pré-requisitos - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Pré-requisitos

SageMaker O Neo é um recurso que permite treinar modelos de aprendizado de máquina uma vez e executá-los em qualquer lugar na nuvem e na borda. Antes de poder compilar e otimizar seus modelos com o Neo, há alguns pré-requisitos que você precisa configurar. Você deve instalar as bibliotecas Python necessárias, configurar suas AWS credenciais, criar uma IAM função com as permissões necessárias e configurar um bucket do S3 para armazenar artefatos do modelo. Você também deve ter um modelo de aprendizado de máquina treinado pronto. As etapas a seguir orientam você na configuração:

  1. Instale o Boto3

    Se estiver executando esses comandos em seu dispositivo de borda, você deve instalar o AWS SDK for Python (Boto3). Em um ambiente Python (de preferência um ambiente virtual), execute o seguinte localmente no terminal do seu dispositivo de borda ou em uma instância do bloco de anotações Jupyter:

    Terminal
    pip install boto3
    Jupyter Notebook
    !pip install boto3
  2. Configurar AWS credenciais

    Você precisa configurar as credenciais da Amazon Web Services no seu dispositivo SDK para executar o Python (Boto3). Por padrão, as AWS credenciais devem ser armazenadas no arquivo ~/.aws/credentials em seu dispositivo de borda. No arquivo de credenciais, você deve ver duas variáveis de ambiente: aws_access_key_id e aws_secret_access_key.

    No seu terminal, execute:

    $ more ~/.aws/credentials [default] aws_access_key_id = YOUR_ACCESS_KEY aws_secret_access_key = YOUR_SECRET_KEY

    O Guia de Referência Geral AWS tem instruções sobre como obter o necessário aws_access_key_id e aws_secret_access_key. Para obter mais informações sobre como configurar credenciais no seu dispositivo, consulte a documentação do Boto3.

  3. Configure uma IAM função e anexe políticas.

    O Neo precisa acessar seu bucket URI S3. Crie uma IAM função que possa ser executada SageMaker e tenha permissão para acessar o S3URI. Você pode criar uma IAM função usando SDK para Python (Boto3), o console ou o. AWS CLI O exemplo a seguir ilustra como criar uma IAM função usando SDK para 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'

    Para obter mais informações sobre como criar uma IAM função com o console ou por meio do AWS API, consulte Criação de um IAM usuário em sua AWS conta. AWS CLI

    Crie um dicionário descrevendo a IAM política que você está anexando. Essa política é usada para criar uma nova IAM função.

    policy = { 'Statement': [ { 'Action': 'sts:AssumeRole', 'Effect': 'Allow', 'Principal': {'Service': 'sagemaker.amazonaws.com'}, }], 'Version': '2012-10-17' }

    Crie uma nova IAM função usando a política que você definiu acima:

    import json new_role = iam_client.create_role( AssumeRolePolicyDocument=json.dumps(policy), Path='/', RoleName=role_name )

    Você precisa saber qual é o seu Amazon Resource Name (ARN) ao criar um trabalho de compilação em uma etapa posterior, portanto, armazene-o também em uma variável.

    role_arn = new_role['Role']['Arn']

    Agora que você criou uma nova função, anexe as permissões necessárias para interagir com a Amazon SageMaker e o 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. Crie um bucket do Amazon S3 para armazenar seus artefatos do modelo

    SageMaker Neo acessará seus artefatos de modelo a partir do 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. Treinar um modelo de machine learning

    Consulte Treinar um modelo com a Amazon SageMaker para obter mais informações sobre como treinar um modelo de aprendizado de máquina usando a Amazon SageMaker. Opcionalmente, você pode carregar seu modelo treinado localmente diretamente em um bucket do Amazon URI S3.

    nota

    Verifique se o modelo está formatado corretamente, dependendo da estrutura usada. Consulte Quais formatos de dados de entrada o SageMaker Neo espera?

    Se você ainda não tiver um modelo, use o curl comando para obter uma cópia local do coco_ssd_mobilenet modelo no site TensorFlow da empresa. O modelo que você acabou de copiar é um modelo de detecção de objetos treinado a partir do COCOconjunto de dados. Digite o seguinte em seu caderno 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}

    Observe que esse exemplo específico foi empacotado em um arquivo .zip. Descompacte esse arquivo e reempacote-o como um arquivo tar comprimido (.tar.gz) antes de usá-lo em etapas posteriores. Digite o seguinte em seu bloco de anotações 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. Carregue o modelo treinado em um bucket S3

    Depois de treinar seu modo demachine learning, armazene-o em um bucket S3.

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

    Substitua your-model-filename e amzn-s3-demo-bucket pelo nome do bucket do S3.

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