Use EI em endpoints SageMaker hospedados pela Amazon - 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á.

Use EI em endpoints SageMaker hospedados pela Amazon

Para usar o Elastic Inference (EI) na Amazon SageMaker com um endpoint hospedado para inferência em tempo real, especifique um acelerador de EI ao criar o modelo implantável para ser hospedado nesse endpoint. Você pode fazer isso por meio de uma das seguintes maneiras:

  • Use as versões do Amazon SageMaker Python SDK do, TensorFlow MXNet ou e os contêineres SageMaker pré-criados para, MXNet PyTorch e TensorFlow PyTorch

  • Crie seu próprio contêiner e use a SageMaker API de baixo nível (Boto 3). Você precisará importar a versão habilitada para EI do TensorFlow MXNet ou dos locais fornecidos PyTorch do Amazon S3 para o seu contêiner e usar uma dessas versões para escrever seu script de treinamento.

  • Use os algoritmos integrados Classificação de imagens - MXNet ou Detecção de objetos - MXNet e use o AWS SDK for Python (Boto3) para executar o trabalho de treinamento e criar o modelo implantável e o endpoint hospedado.

Use EI com um SageMaker TensorFlow contêiner

Para usar TensorFlow com o EI em SageMaker, você precisa chamar o deploy método dos objetos Estimator ou Model. Em seguida, você especifica um tipo de acelerador usando o argumento de entrada accelerator_type. Para obter informações sobre o uso TensorFlow no SDK do SageMaker Python, consulte: https://sagemaker.readthedocs.io/en/stable/frameworks/tensorflow/index.html.

SageMaker fornece treinamento de modelo padrão e código de inferência para sua conveniência. Para formatos de arquivo personalizados, pode ser necessário implementar um código de treinamento e inferência de modelo personalizado.

Usar um objeto estimador

Para usar um objeto estimador com o EI, ao usar o método de implantação, inclua o argumento de entrada accelerator_type. O estimador retorna um objeto preditor que chamamos de seu método de implantação, conforme mostrado no código de exemplo.

# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

Usar um objeto de modelo

Para usar um objeto de modelo com EI, ao usar o método de implantação, inclua o argumento de entrada accelerator_type. O estimador retorna um objeto preditor que chamamos de seu método de implantação, conforme mostrado no código de exemplo.

# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

Use EI com um contêiner SageMaker MXNet

Para usar o MXNet com EI em SageMaker, você precisa chamar o deploy método dos objetos Estimator ou Model. Depois, especifique um tipo de aceleradora usando o argumento de entrada accelerator_type. Para obter informações sobre o uso do MXNet no SDK do Amazon SageMaker Python, consulte https://sagemaker.readthedocs.io/en/stable/frameworks/mxnet/index.html

Para sua conveniência, SageMaker fornece treinamento de modelo padrão e código de inferência. Para formatos de arquivo personalizados, pode ser necessário escrever um código de treinamento e inferência de modelo personalizado.

Usar um objeto estimador

Para usar um objeto estimador com o EI, ao usar o método de implantação, inclua o argumento de entrada accelerator_type. O estimador retorna um objeto preditor que chamamos de seu método de implantação, conforme mostrado no código de exemplo.

# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

Usar um objeto de modelo

Para usar um objeto de modelo com EI, ao usar o método de implantação, inclua o argumento de entrada accelerator_type. O estimador retorna um objeto preditor que chamamos de seu método de implantação, conforme mostrado no código de exemplo.

# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

Use EI com um SageMaker PyTorch contêiner

Para usar PyTorch com o EI em SageMaker, você precisa chamar o deploy método dos objetos Estimator ou Model. Depois, especifique um tipo de aceleradora usando o argumento de entrada accelerator_type. Para obter informações sobre o uso PyTorch no SDK do Amazon SageMaker Python, consulte SageMaker PyTorch Estimators and Models.

Para sua conveniência, SageMaker fornece treinamento de modelo padrão e código de inferência. Para formatos de arquivo personalizados, pode ser necessário escrever um código de treinamento e inferência de modelo personalizado.

Usar um objeto estimador

Para usar um objeto estimador com o EI, ao usar o método de implantação, inclua o argumento de entrada accelerator_type. O estimador retorna um objeto preditor, que chamamos de seu método de implantação, conforme mostrado nesse código de exemplo.

# Deploy an estimator using EI (using the accelerator_type input argument) predictor = estimator.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

Usar um objeto de modelo

Para usar um objeto de modelo com EI, ao usar o método de implantação, inclua o argumento de entrada accelerator_type. O modelo retorna um objeto preditor, que chamamos de seu método de implantação, conforme mostrado nesse código de exemplo.

# Deploy a model using EI (using the accelerator_type input argument) predictor = model.deploy(initial_instance_count=1, instance_type='ml.m4.xlarge', accelerator_type='ml.eia2.medium')

Usar EI com i seu próprio contêiner

Para usar o EI com um modelo em um contêiner personalizado que você cria, use o AWS SDK de baixo nível para Python (Boto 3). baixe e importe as versões AWS habilitadas para EI do Apache MXNet PyTorch ou das TensorFlow estruturas de aprendizado de máquina e escreva seu script de treinamento usando essas estruturas.

Importe a versão EI do TensorFlow, MXNet ou PyTorch para o seu contêiner Docker

Para usar o EI com seu próprio contêiner, você precisa importar a biblioteca Amazon EI TensorFlow Serving, a biblioteca Amazon EI Apache MXNet ou a biblioteca PyTorch habilitada para Elastic Inference em seu contêiner. As versões habilitadas para EI do e do TensorFlow MXNet estão atualmente disponíveis como arquivos binários armazenados em locais do Amazon S3. Você pode baixar o binário habilitado para EI do bucket Amazon S3 em TensorFlow console.aws.amazon.com/s3/buckets/amazonei-tensorflow. Para obter informações sobre como criar um contêiner que usa a versão habilitada para EI do TensorFlow, consulte https://github.com/aws/sagemaker-tensorflow-container#building-the-sagemaker-elastic-inference-tensorflow-serving-container. Você pode baixar o binário habilitado para EI do Apache MXNet no bucket público da Amazon S3 em console.aws.amazon.com/s3/buckets/amazonei-apachemxnet. Para obter informações sobre a criação de um contêiner que usa a versão habilitada para EI do MXNet, consulte https://github.com/aws/sagemaker-mxnet-container#building-the-sagemaker-elastic-inference-mxnet-container. Você pode baixar o binário habilitado para o Elastic Inference para. PyTorch Para obter informações sobre como criar um contêiner que usa a versão habilitada para Elastic Inference do PyTorch, consulte Criando sua imagem.

Crie um endpoint de EI com o AWS SDK para Python (Boto 3)

Para criar um endpoint usando o AWS SDK for Python (Boto 3), primeiro crie uma configuração de endpoint. A configuração de endpoint especifica um ou mais modelos (chamados de variantes de produção) que você deseja hospedar no endpoint. Para anexar o EI a uma ou mais das variantes de produção hospedados no endpoint, você especifica um dos tipos de instância de EI como o campo AcceleratorType para essa ProductionVariant. Em seguida, você transmite essa configuração de endpoint ao criar o endpoint.

Criar uma configuração de endpoint

Para usar o EI, é necessário especificar um tipo de aceleradora na configuração de endpoint:

# Create Endpoint Configuration from time import gmtime, strftime endpoint_config_name = 'ImageClassificationEndpointConfig-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print(endpoint_config_name) create_endpoint_config_response = sagemaker.create_endpoint_config( EndpointConfigName = endpoint_config_name, ProductionVariants=[{ 'InstanceType':'ml.m4.xlarge', 'InitialInstanceCount':1, 'ModelName':model_name, 'VariantName':'AllTraffic', 'AcceleratorType':'ml.eia2.medium'}]) print("Endpoint Config Arn: " + create_endpoint_config_response['EndpointConfigArn'])

Criar um endpoint

Depois de criar uma configuração de endpoint com um tipo de aceleradora, é possível criar um endpoint.

endpoint_name = 'ImageClassificationEndpoint-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) endpoint_response = sagemaker.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name)

Depois de criar o endpoint, é possível invocá-lo usando o método invoke_endpoint em um objeto do tempo de execução Boto3, como faria com qualquer outro endpoint.