Criar um endpoint sem servidor - 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 endpoint sem servidor

Para criar um endpoint sem servidor, você pode usar o SageMaker console da Amazon, as APIs ou o. AWS CLI Você pode criar um endpoint sem servidor usando um processo semelhante ao de um endpoint em tempo real.

Criar um modelo

Para criar seu modelo, você deve fornecer a localização dos artefatos do modelo e da imagem do contêiner. Você também pode usar uma versão de SageMaker modelo do Model Registry. Os exemplos nas seções a seguir mostram como criar um modelo usando a CreateModelAPI, o Model Registry e o SageMakerconsole da Amazon.

Para criar um modelo (usando o Registro do modelo)

O Registro de Modelos é um recurso SageMaker que ajuda você a catalogar e gerenciar versões do seu modelo para uso em pipelines de ML. Para usar o Model Registry com inferência sem servidor, você deve primeiro registrar uma versão do modelo em um grupo de modelos do registro do modelo. Para saber como registrar um modelo no Registro do modelo, siga os procedimentos em Criar um grupo de modelos e Registrar uma versão do modelo.

O exemplo a seguir exige que você tenha o ARN de uma versão de modelo registrada e use o AWSSDK para Python (Boto3) para chamar a API. CreateModel Para inferência sem servidor, no momento, o registro do modelo é compatível apenas com o AWS SDK for Python (Boto3). Para o exemplo, especifique os seguintes valores:

  • Em model_name, insira um nome para o modelo.

  • Para sagemaker_role isso, você pode usar a função padrão SageMaker criada ou uma função personalizada SageMaker do IAM na Etapa 4 da Pré-requisitos seção.

  • Em ModelPackageName, especifique o ARN para a versão do seu modelo, que deve estar registrada em um grupo de modelos no registro do modelo.

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Specify a name for the model model_name = "<name-for-model>" #Specify a Model Registry model version container_list = [ { "ModelPackageName": <model-version-arn> } ] #Create the model response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, container_list )

Como criar um modelo (usando API)

O exemplo a seguir usa o AWSSDK para Python (Boto3) para chamar a API. CreateModel Especifique os seguintes valores:

  • Pois sagemaker_role, você pode usar a função padrão SageMaker criada ou uma função personalizada SageMaker do IAM na Etapa 4 da Pré-requisitos seção.

  • Em model_url, especifique o URI do Amazon S3 para seu modelo.

  • Em container, recupere o contêiner que você deseja usar pelo caminho do Amazon ECR. Este exemplo usa um contêiner SageMaker XGBoost fornecido. Se você não selecionou um SageMaker contêiner ou trouxe o seu, consulte a Etapa 6 da Pré-requisitos seção para obter mais informações.

  • Em model_name, insira um nome para o modelo.

#Setup import boto3 import sagemaker region = boto3.Session().region_name client = boto3.client("sagemaker", region_name=region) #Role to give SageMaker permission to access AWS services. sagemaker_role = sagemaker.get_execution_role() #Get model from S3 model_url = "s3://DOC-EXAMPLE-BUCKET/models/model.tar.gz" #Get container image (prebuilt example) from sagemaker import image_uris container = image_uris.retrieve("xgboost", region, "0.90-1") #Create model model_name = "<name-for-model>" response = client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, Containers = [{ "Image": container, "Mode": "SingleModel", "ModelDataUrl": model_url, }] )

Para criar um modelo (usando o console)

  1. Faça login no SageMakerconsole da Amazon.

  2. Na guia de navegação, escolha Inferência.

  3. Em seguida, escolha Modelos.

  4. Escolha Criar modelo.

  5. Em Nome do modelo, insira um nome para o modelo que seja exclusivo da sua conta e Região da AWS.

  6. Para a função do IAM, selecione uma função do IAM que você já criou (consultePré-requisitos) ou permita SageMaker a criação de uma para você.

  7. Em Definição do contêiner 1, para Opções de entrada de contêiner, selecione Fornecer artefatos do modelo e local de entrada.

  8. Em Fornecer artefatos do modelo e opções de imagem de inferência, selecione Usar um único modelo.

  9. Em Localização da imagem do código de inferência, insira um caminho do Amazon ECR para um contêiner. A imagem deve ser uma imagem própria SageMaker fornecida (por exemplo TensorFlow, XGBoost) ou uma imagem que resida em um repositório Amazon ECR na mesma conta na qual você está criando o endpoint. Se você não tiver um contêiner, volte para a Etapa 6 da seção Pré-requisitos para obter mais informações.

  10. Em Local dos artefatos do modelo, insira o URI do Amazon S3 em seu modelo de ML. Por exemplo, s3://DOC-EXAMPLE-BUCKET/models/model.tar.gz.

  11. (Opcional) Em Tags, adicione pares de chave-valor para criar metadados para seu modelo.

  12. Escolha Criar modelo.

Criar uma configuração de endpoint

Após criar um modelo, crie uma configuração de endpoint. Em seguida, você pode implantar seu modelo usando as especificações na configuração do endpoint. Na configuração, você especifica se deseja um endpoint em tempo real ou sem servidor. Para criar uma configuração de endpoint sem servidor, você pode usar o SageMaker console da Amazon, a CreateEndpointConfigAPI ou o. AWS CLI As abordagens de API e console estão descritas nas seções a seguir.

Para criar uma configuração de endpoint (usando API)

O exemplo a seguir usa o AWSSDK para Python (Boto3) para chamar a API. CreateEndpointConfig Especifique os seguintes valores:

  • Em EndpointConfigName, escolha um nome para a configuração do endpoint. O nome deve ser exclusivo em sua conta em uma Região.

  • (Opcional) ParaKmsKeyId, use o ID da chave, o ARN da chave, o nome do alias ou o ARN do alias para uma AWS KMS chave que você deseja usar. SageMaker usa essa chave para criptografar sua imagem do Amazon ECR.

  • Em ModelName, use o nome do modelo que você deseja implantar. Deve ser o mesmo modelo que você usou na etapa Criar um modelo.

  • Para ServerlessConfig:

    • Defina MemorySizeInMB como 2048. Neste exemplo, definimos o tamanho da memória para 2048 MB, mas você pode escolher qualquer um dos valores a seguir para o tamanho de memória: 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB ou 6144 MB.

    • Defina MaxConcurrency como 20. Neste exemplo, definimos a simultaneidade máxima como 20. O número máximo de invocações simultâneas que você pode configurar para um endpoint sem servidor é 200, e o valor mínimo que você pode escolher é 1.

    • (Opcional) Para usar a simultaneidade provisionada, defina ProvisionedConcurrency como 10. Para este exemplo, configuramos a concorrência provisionada para 10. O número ProvisionedConcurrency de um endpoint sem servidor deve ser menor ou igual ao número MaxConcurrency. Você pode deixá-lo vazio se quiser usar o endpoint de inferência sem servidor sob demanda. Você pode escalar dinamicamente a simultaneidade de provisões. Para ter mais informações, consulte Simultaneidade provisionada de escala automática para um endpoint sem servidor.

response = client.create_endpoint_config( EndpointConfigName="<your-endpoint-configuration>", KmsKeyId="arn:aws:kms:us-east-1:123456789012:key/143ef68f-76fd-45e3-abba-ed28fc8d3d5e", ProductionVariants=[ { "ModelName": "<your-model-name>", "VariantName": "AllTraffic", "ServerlessConfig": { "MemorySizeInMB": 2048, "MaxConcurrency": 20, "ProvisionedConcurrency": 10, } } ] )

Para criar uma configuração de endpoint (usando o console)

  1. Faça login no SageMakerconsole da Amazon.

  2. Na guia de navegação, escolha Inferência.

  3. Em seguida, escolha Configurações de endpoint.

  4. Escolha Criar configuração de endpoint.

  5. Em Nome de configuração de endpoint, digite um nome que seja exclusivo em sua conta em uma região.

  6. Em Tipo de endpoint, selecione Tecnologia sem servidor.

    
        Captura de tela da opção de tipo de endpoint no console.
  7. Em Variantes de produção, escolha Adicionar modelo.

  8. Em Adicionar modelo, selecione o modelo que você deseja usar na lista de modelos e escolha Salvar.

  9. Depois de adicionar seu modelo, em Ações, escolha Editar.

  10. Em Tamanho da memória, escolha o tamanho da memória que você deseja em GB.

    
        Captura de tela da opção de tamanho da memória no console.
  11. Em Simultaneidade máxima, insira o máximo de invocações simultâneas desejadas para o endpoint. O valor máximo que você pode inserir é 200 e o mínimo é 1.

  12. (Opcional) Para usar a simultaneidade provisionada, insira o número desejado de invocações simultâneas no campo de Configuração de simultaneidade provisionada. O número de invocações simultâneas provisionadas deve ser menor ou igual ao número máximo de invocações simultâneas.

  13. Escolha Salvar.

  14. (Opcional) Em Tags, insira pares de chave-valor se quiser criar metadados para a configuração de endpoint.

  15. Escolha Criar configuração de endpoint.

Criar um endpoint

Para criar um endpoint sem servidor, você pode usar o SageMaker console da Amazon, a CreateEndpointAPI ou o. AWS CLI As abordagens de API e console estão descritas nas seções a seguir. Depois que você criar seu endpoint, poderá levar alguns minutos para que ele fique disponível.

Para criar um endpoint (usando API)

O exemplo a seguir usa o AWSSDK para Python (Boto3) para chamar a API. CreateEndpoint Especifique os seguintes valores:

  • EmEndpointName, insira um nome para o endpoint que seja exclusivo em sua conta em uma região.

  • Em EndpointConfigName, use o nome da configuração de endpoint que você criou na seção anterior.

response = client.create_endpoint( EndpointName="<your-endpoint-name>", EndpointConfigName="<your-endpoint-config>" )

Para criar um endpoint (usando o console)

  1. Faça login no SageMakerconsole da Amazon.

  2. Na guia de navegação, escolha Inferência.

  3. Em seguida, escolha Endpoints.

  4. Escolha Criar endpoint.

  5. Em Nome do endpoint, insira um nome que seja exclusivo em sua conta em uma região.

  6. Em Anexar configuração de endpoint, selecione Usar uma configuração de endpoint existente.

  7. Em Configuração de endpoint, selecione o nome da configuração do endpoint que você criou na seção anterior e escolha Selecionar configuração do endpoint.

  8. (Opcional) Em Tags, insira pares de chave-valor se quiser criar metadados para o seu endpoint.

  9. Escolha Criar endpoint.

    
        Captura de tela da página de criação e configuração de endpoint no console.