Criar um modelo - 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á.

Criar um modelo

O exemplo a seguir mostra como criar um usando o AWS SDK for Python (Boto3). As primeiras linhas definem:

  • sagemaker_client: um objeto SageMaker cliente de baixo nível que facilita o envio e o recebimento de solicitações de AWS serviços.

  • sagemaker_role: Uma variável de string com a SageMaker IAM função Amazon Resource Name (ARN).

  • aws_region: uma variável de string com o nome da sua AWS região.

import boto3 # Specify your AWS Region aws_region='<aws_region>' # Create a low-level SageMaker service client. sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Role to give SageMaker permission to access AWS services. sagemaker_role= "arn:aws:iam::<account>:role/*"

Em seguida, especifique a localização do modelo pré-treinado armazenado no Amazon S3. Neste exemplo, usamos um XGBoost modelo pré-treinado chamadodemo-xgboost-model.tar.gz. O Amazon S3 completo URI é armazenado em uma variável de string: model_url

#Create a variable w/ the model S3 URI s3_bucket = '<your-bucket-name>' # Provide the name of your S3 bucket bucket_prefix='saved_models' model_s3_key = f"{bucket_prefix}/demo-xgboost-model.tar.gz" #Specify S3 bucket w/ model model_url = f"s3://{s3_bucket}/{model_s3_key}"

Especifique um contêiner primário. Para o contêiner principal, você especifica a imagem do Docker que contém o código de inferência, os artefatos (do treinamento anterior) e um mapa do ambiente personalizado que o código de inferência usa quando você implanta o modelo para previsões.

Neste exemplo, especificamos uma imagem de contêiner de algoritmo XGBoost incorporada:

from sagemaker import image_uris # Specify an AWS container image. container = image_uris.retrieve(region=aws_region, framework='xgboost', version='0.90-1')

Crie um modelo na Amazon SageMaker comCreateModel. Especifique o seguinte:

  • ModelName: um nome para seu modelo (neste exemplo, ele é armazenado como uma variável de string chamada model_name).

  • ExecutionRoleArn: O Amazon Resource Name (ARN) da IAM função que a Amazon SageMaker pode assumir para acessar artefatos de modelo e imagens do Docker para implantação em instâncias de computação de ML ou para trabalhos de transformação em lote.

  • PrimaryContainer: A localização da imagem do Docker primária que contém código de inferência, artefatos associados e mapas de ambiente personalizado usado pelo código de inferência quando o modelo é implantado para previsões.

model_name = '<The_name_of_the_model>' #Create model create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url, })

Consulte a CreateModeldescrição no Guia de SageMaker API referência para obter uma lista completa dos API parâmetros.

Se você estiver usando um contêiner SageMaker fornecido, poderá aumentar o tempo limite do servidor modelo e os tamanhos da carga útil dos valores padrão para os máximos suportados pela estrutura definindo variáveis de ambiente nesta etapa. Talvez você não consiga aproveitar o tempo limite máximo e os tamanhos de carga que a inferência assíncrona suporta se não definir explicitamente essas variáveis. O exemplo a seguir mostra como você pode definir as variáveis de ambiente para um contêiner de PyTorch inferência com base em TorchServe.

model_name = '<The_name_of_the_model>' #Create model create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url, 'Environment': { 'TS_MAX_REQUEST_SIZE': '100000000', 'TS_MAX_RESPONSE_SIZE': '100000000', 'TS_DEFAULT_RESPONSE_TIMEOUT': '1000' }, })

Quando terminar de criar seu endpoint, verifique se definiu as variáveis de ambiente corretamente imprimindo-as do seu script inference.py. A tabela a seguir lista as variáveis de ambiente de uma série de estruturas que você pode definir para alterar os valores padrão.

Framework Variáveis de ambiente

PyTorch 1.8 (baseado em TorchServe)

'TS_ _ MAX REQUEST _ SIZE ':' 100000000 '

'TS_ _ MAX RESPONSE _ SIZE ':' 100000000 '

'TS_ _ DEFAULT RESPONSE _ TIMEOUT ':' 1000 '

PyTorch 1.4 (baseado emMMS)

'MMS_ _ MAX REQUEST _SIZE': '1000000000'

'MMS_ _ MAX RESPONSE _SIZE': '1000000000'

'MMS_ DEFAULT _ RESPONSE _TIMEOUT': '900'

HuggingFace Contêiner de inferência (baseado emMMS)

'MMS_ _ MAX REQUEST _SIZE': '2000000000'

'MMS_ _ MAX RESPONSE _SIZE': '2000000000'

'MMS_ DEFAULT _ RESPONSE _TIMEOUT': '900'