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á.
Como adaptar o próprio contêiner de inferência
Se você não puder usar nenhuma das imagens listadas na Use imagens pré-construídas do SageMaker Docker Amazon SageMaker para seu caso de uso, você pode criar seu próprio contêiner Docker e usá-lo internamente SageMaker para treinamento e inferência. Para ser compatível com SageMaker, seu contêiner deve ter as seguintes características:
-
Seu contêiner deve ter uma listagem de servidores web na porta
8080
. -
Seu contêiner deve aceitar
POST
solicitações para os endpoints/invocations
e/ping
em tempo real. As solicitações que você envia para esses endpoints devem ser retornadas em 60 segundos e ter um tamanho máximo de 6 MB.
Para obter mais informações e um exemplo de como criar seu próprio contêiner do Docker para treinamento e inferência SageMaker, consulte Como criar seu próprio contêiner de algoritmo
O guia a seguir mostra como usar um JupyterLab
espaço com o Amazon SageMaker Studio Classic para adaptar um contêiner de inferência para funcionar com SageMaker hospedagem. O exemplo usa um servidor NGINX web, Gunicorn como uma interface de gateway de servidor Python web e Flask como uma estrutura de aplicativo web. Você pode usar aplicativos diferentes para adaptar seu contêiner, desde que ele atenda aos requisitos listados anteriormente. Para obter mais informações sobre como usar seu próprio código de inferência, consulteUsar seu próprio código de inferência com serviços de hospedagem.
Adapte seu contêiner de inferência
Use as etapas a seguir para adaptar seu próprio contêiner de inferência para funcionar com SageMaker hospedagem. O exemplo mostrado nas etapas a seguir usa um modelo pré-treinado de Reconhecimento de Entidade Nomeada (NER)Python
:
-
A Dockerfile para criar o contêiner que contém o NER modelo.
-
Scripts de inferência para servir ao NER modelo.
Se você adaptar esse exemplo para seu caso de uso, deverá usar scripts a Dockerfile e de inferência necessários para implantar e servir seu modelo.
-
Crie JupyterLab espaço com o Amazon SageMaker Studio Classic (opcional).
Você pode usar qualquer notebook para executar scripts e adaptar seu contêiner de inferência à SageMaker hospedagem. Este exemplo mostra como usar um JupyterLab espaço no Amazon SageMaker Studio Classic para iniciar um JupyterLab aplicativo que vem com uma imagem SageMaker de distribuição. Para ter mais informações, consulte SageMaker JupyterLab.
-
Faça upload de um Docker arquivo e scripts de inferência.
-
Crie uma nova pasta no seu diretório pessoal. Se você estiver usandoJupyterLab, no canto superior esquerdo, escolha o ícone Nova pasta e insira um nome de pasta para conter sua. Dockerfile Neste exemplo, a pasta é chamada
docker_test_folder
. -
Faça upload de um arquivo de Dockerfile texto em sua nova pasta. Veja a seguir um exemplo Dockerfile que cria um Docker contêiner com um modelo pré-treinado de Reconhecimento de Entidade Nomeada (NER)
da SpacY , os aplicativos e as variáveis de ambiente necessárias para executar o exemplo: FROM python:3.8 RUN apt-get -y update && apt-get install -y --no-install-recommends \ wget \ python3 \ nginx \ ca-certificates \ && rm -rf /var/lib/apt/lists/* RUN wget https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && \ pip install flask gevent gunicorn && \ rm -rf /root/.cache #pre-trained model package installation RUN pip install spacy RUN python -m spacy download en # Set environment variables ENV PYTHONUNBUFFERED=TRUE ENV PYTHONDONTWRITEBYTECODE=TRUE ENV PATH="/opt/program:${PATH}" COPY NER /opt/program WORKDIR /opt/program
No exemplo de código anterior, a variável de ambiente
PYTHONUNBUFFERED
Python evita armazenar em buffer o fluxo de saída padrão, o que permite uma entrega mais rápida de registros ao usuário. A variável de ambientePYTHONDONTWRITEBYTECODE
evita Python a gravação de.pyc
arquivos de bytecode compilados, que são desnecessários para esse caso de uso. A variável de ambientePATH
é usada para identificar a localização dosserve
programastrain
e quando o contêiner é invocado. -
Crie um novo diretório dentro de sua nova pasta para conter scripts para servir ao seu modelo. Este exemplo usa um diretório chamado
NER
, que contém os seguintes scripts necessários para executar este exemplo:-
predictor.py
— Um Python script que contém a lógica para carregar e realizar inferências com seu modelo. -
nginx.conf
— Um script para configurar um servidor web. -
serve
— Um script que inicia um servidor de inferência. -
wsgi.py
— Um script auxiliar para servir a um modelo.
Importante
Se você copiar seus scripts de inferência em um caderno que termina em
.ipynb
e renomeá-los, seu script pode conter caracteres de formatação que impedirão a implantação do endpoint. Em vez disso, crie um arquivo de texto e renomeie-o. -
-
Faça upload de um script para disponibilizar seu modelo para inferência. A seguir está um exemplo de script chamado
predictor.py
that usa Flask para fornecer os/invocations
endpoints/ping
e:from flask import Flask import flask import spacy import os import json import logging #Load in model nlp = spacy.load('en_core_web_sm') #If you plan to use a your own model artifacts, #your model artifacts should be stored in /opt/ml/model/ # The flask app for serving predictions app = Flask(__name__) @app.route('/ping', methods=['GET']) def ping(): # Check if the classifier was loaded correctly health = nlp is not None status = 200 if health else 404 return flask.Response(response= '\n', status=status, mimetype='application/json') @app.route('/invocations', methods=['POST']) def transformation(): #Process input input_json = flask.request.get_json() resp = input_json['input'] #NER doc = nlp(resp) entities = [(X.text, X.label_) for X in doc.ents] # Transform predictions to JSON result = { 'output': entities } resultjson = json.dumps(result) return flask.Response(response=resultjson, status=200, mimetype='application/json')
O
/ping
endpoint no exemplo de script anterior retorna um código de status de200
se o modelo foi carregado corretamente e404
se o modelo foi carregado incorretamente. O/invocations
endpoint processa uma solicitação formatada emJSON, extrai o campo de entrada e usa o NER modelo para identificar e armazenar entidades nas entidades variáveis. O Flask aplicativo retorna a resposta que contém essas entidades. Para obter mais informações sobre essas solicitações de saúde obrigatórias, consulteComo o contêiner deve responder a solicitações de verificação de integridade (ping). -
Faça upload de um script para iniciar um servidor de inferência. O exemplo de script a seguir é
serve
usado Gunicorn como servidor de aplicativos e Nginx como servidor web:#!/usr/bin/env python # This file implements the scoring service shell. You don't necessarily need to modify it for various # algorithms. It starts nginx and gunicorn with the correct configurations and then simply waits until # gunicorn exits. # # The flask server is specified to be the app object in wsgi.py # # We set the following parameters: # # Parameter Environment Variable Default Value # --------- -------------------- ------------- # number of workers MODEL_SERVER_WORKERS the number of CPU cores # timeout MODEL_SERVER_TIMEOUT 60 seconds import multiprocessing import os import signal import subprocess import sys cpu_count = multiprocessing.cpu_count() model_server_timeout = os.environ.get('MODEL_SERVER_TIMEOUT', 60) model_server_workers = int(os.environ.get('MODEL_SERVER_WORKERS', cpu_count)) def sigterm_handler(nginx_pid, gunicorn_pid): try: os.kill(nginx_pid, signal.SIGQUIT) except OSError: pass try: os.kill(gunicorn_pid, signal.SIGTERM) except OSError: pass sys.exit(0) def start_server(): print('Starting the inference server with {} workers.'.format(model_server_workers)) # link the log streams to stdout/err so they will be logged to the container logs subprocess.check_call(['ln', '-sf', '/dev/stdout', '/var/log/nginx/access.log']) subprocess.check_call(['ln', '-sf', '/dev/stderr', '/var/log/nginx/error.log']) nginx = subprocess.Popen(['nginx', '-c', '/opt/program/nginx.conf']) gunicorn = subprocess.Popen(['gunicorn', '--timeout', str(model_server_timeout), '-k', 'sync', '-b', 'unix:/tmp/gunicorn.sock', '-w', str(model_server_workers), 'wsgi:app']) signal.signal(signal.SIGTERM, lambda a, b: sigterm_handler(nginx.pid, gunicorn.pid)) # Exit the inference server upon exit of either subprocess pids = set([nginx.pid, gunicorn.pid]) while True: pid, _ = os.wait() if pid in pids: break sigterm_handler(nginx.pid, gunicorn.pid) print('Inference server exiting') # The main routine to invoke the start function. if __name__ == '__main__': start_server()
O exemplo de script anterior define uma função de manipulador de sinal
sigterm_handler
, que desliga os Gunicorn subprocessos Nginx e quando recebe um sinal.SIGTERM
Umastart_server
função inicia o manipulador de sinal, inicia e monitora os Nginx Gunicorn subprocessos e captura fluxos de log. -
Faça upload de um script para configurar seu servidor web. O exemplo de script a seguir
nginx.conf
, chamado, configura um servidor Nginx web usando Gunicorn como servidor de aplicativos para servir seu modelo para inferência:worker_processes 1; daemon off; # Prevent forking pid /tmp/nginx.pid; error_log /var/log/nginx/error.log; events { # defaults } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log combined; upstream gunicorn { server unix:/tmp/gunicorn.sock; } server { listen 8080 deferred; client_max_body_size 5m; keepalive_timeout 5; proxy_read_timeout 1200s; location ~ ^/(ping|invocations) { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://gunicorn; } location / { return 404 "{}"; } } }
O exemplo de script anterior é configurado Nginx para ser executado em primeiro plano, define o local para capturar e define
upstream
como oerror_log
soquete do Gunicorn servidor. O servidor configura o bloco do servidor para escutar na porta8080
, define limites no tamanho do corpo da solicitação do cliente e nos valores de tempo limite. O bloco do servidor encaminha solicitações contendo um/ping
ou/invocations
caminhos para o Gunicornserver http://gunicorn
e retorna um404
erro para outros caminhos. -
Faça upload de todos os outros scripts necessários para atender ao seu modelo. Este exemplo precisa do seguinte exemplo de script chamado
wsgi.py
para ajudar a Gunicorn encontrar seu aplicativo:import predictor as myapp # This is just a simple wrapper for gunicorn to find your app. # If you want to change the algorithm file, simply change "predictor" above to the # new file. app = myapp.app
Na pasta
docker_test_folder
, sua estrutura de diretórios deve conter a Dockerfile e a pastaNER. A NER pasta deve conter os arquivosnginx.conf
,,predictor.py
serve
, e dawsgi.py
seguinte forma: -
-
Crie seu próprio contêiner.
Na pasta
docker_test_folder
, crie seu Docker contêiner. O comando de exemplo a seguir criará o Docker contêiner que está configurado em seuDockerfile:! docker build -t byo-container-test .
O comando anterior criará um contêiner chamado
byo-container-test
no diretório de trabalho atual. Para obter mais informações sobre os parâmetros de Docker construção, consulte Argumentos de construção. nota
Se você receber a seguinte mensagem de erro que Docker não consegue encontrar o.Dockerfile, verifique se o Dockerfile tem o nome correto e foi salvo no diretório.
unable to prepare context: unable to evaluate symlinks in Dockerfile path: lstat /home/ec2-user/SageMaker/docker_test_folder/Dockerfile: no such file or directory
Dockerprocura um arquivo chamado especificamente Dockerfile sem nenhuma extensão no diretório atual. Se você o nomeou de outra forma, poderá passar o nome do arquivo manualmente com a sinalização -f. Por exemplo, se você nomeou seu Dockerfile comoDockerfile-text.txt, crie seu Docker contêiner usando a
-f
sinalização seguida pelo seu arquivo da seguinte forma:! docker build -t byo-container-test -f Dockerfile-text.txt .
-
Envie sua Docker imagem para um Amazon Elastic Container Registry (Amazon ECR)
Em uma célula de notebook, envie sua Docker imagem para um ECR. O exemplo de código a seguir mostra como criar seu contêiner localmente, fazer login e enviá-lo para um ECR:
%%sh # Name of algo -> ECR algorithm_name=sm-pretrained-spacy #make serve executable chmod +x NER/serve account=$(aws sts get-caller-identity --query Account --output text) # Region, defaults to us-west-2 region=$(aws configure get region) region=${region:-us-east-1} fullname="${account}.dkr.ecr.${region}.amazonaws.com/${algorithm_name}:latest" # If the repository doesn't exist in ECR, create it. aws ecr describe-repositories --repository-names "${algorithm_name}" > /dev/null 2>&1 if [ $? -ne 0 ] then aws ecr create-repository --repository-name "${algorithm_name}" > /dev/nullfi # Get the login command from ECR and execute it directly aws ecr get-login-password --region ${region}|docker login --username AWS --password-stdin ${fullname} # Build the docker image locally with the image name and then push it to ECR # with the full name. docker build -t ${algorithm_name} . docker tag ${algorithm_name} ${fullname} docker push ${fullname}
No exemplo anterior, mostra como executar as seguintes etapas necessárias para enviar o contêiner Docker de exemplo para um ECR:
-
Defina o nome do algoritmo como
sm-pretrained-spacy
. -
Torne o
serve
arquivo dentro da NER pasta executável. -
Defina Região da AWS o.
-
Crie um ECR se ele ainda não existir.
-
Faça login no ECR.
-
Crie o Docker contêiner localmente.
-
Empurre a Docker imagem para o ECR.
-
-
Configurar o SageMaker cliente
Se você quiser usar serviços de SageMaker hospedagem para inferência, deverá criar um modelo, criar uma
configuração de endpoint e criar um endpoint. Para obter inferências do seu endpoint, você pode usar o cliente SageMaker boto3 Runtime para invocar seu endpoint. O código a seguir mostra como configurar o SageMaker cliente e o cliente SageMaker Runtime usando o cliente SageMaker boto3: import boto3 from sagemaker import get_execution_role sm_client = boto3.client(service_name='sagemaker') runtime_sm_client = boto3.client(service_name='sagemaker-runtime') account_id = boto3.client('sts').get_caller_identity()['Account'] region = boto3.Session().region_name #used to store model artifacts which SageMaker will extract to /opt/ml/model in the container, #in this example case we will not be making use of S3 to store the model artifacts #s3_bucket = '<S3Bucket>' role = get_execution_role()
No exemplo de código anterior, o bucket do Amazon S3 não é usado, mas inserido como um comentário para mostrar como armazenar artefatos do modelo.
Se você receber um erro de permissão depois de executar o exemplo de código anterior, talvez seja necessário adicionar permissões à sua função do IAM. Para obter mais informações sobre perfis do IAM, consulte Gerente de SageMaker funções da Amazon. Para obter mais informações sobre como adicionar permissões à sua função atual, consulteAWS Políticas gerenciadas para a Amazon SageMaker.
-
Crie seu modelo.
Se você quiser usar serviços de SageMaker hospedagem para inferência, deverá criar um modelo em SageMaker. O exemplo de código a seguir mostra como criar o spaCy NER modelo dentro de SageMaker:
from time import gmtime, strftime model_name = 'spacy-nermodel-' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) # MODEL S3 URL containing model atrifacts as either model.tar.gz or extracted artifacts. # Here we are not #model_url = 's3://{}/spacy/'.format(s3_bucket) container = '{}.dkr.ecr.{}.amazonaws.com/sm-pretrained-spacy:latest'.format(account_id, region) instance_type = 'ml.c5d.18xlarge' print('Model name: ' + model_name) #print('Model data Url: ' + model_url) print('Container image: ' + container) container = { 'Image': container } create_model_response = sm_client.create_model( ModelName = model_name, ExecutionRoleArn = role, Containers = [container]) print("Model Arn: " + create_model_response['ModelArn'])
O exemplo de código anterior mostra como definir um
model_url
usando os3_bucket
se você fosse usar o bucket do Amazon S3 a partir dos comentários na Etapa 5 e define o URI do ECR para a imagem do contêiner. Os exemplos de código anteriores definemml.c5d.18xlarge
como o tipo de instância. Você também pode escolher um tipo de instância diferente. Para obter mais informações sobre os tipos de instância disponíveis, consulte Tipos de instância do Amazon EC2. No exemplo de código anterior, a
Image
chave aponta para o URI da imagem do contêiner. Acreate_model_response
definição usa ocreate_model method
para criar um modelo e retornar o nome do modelo, a função e uma lista contendo as informações do contêiner.Veja a seguir um exemplo de saída do script anterior:
Model name: spacy-nermodel-YYYY-MM-DD-HH-MM-SS Model data Url: s3://spacy-sagemaker-us-east-1-bucket/spacy/ Container image: 123456789012.dkr.ecr.us-east-2.amazonaws.com/sm-pretrained-spacy:latest Model Arn: arn:aws:sagemaker:us-east-2:123456789012:model/spacy-nermodel-YYYY-MM-DD-HH-MM-SS
-
-
Configurar e criar um endpoint
Para usar a SageMaker hospedagem para inferência, você também deve configurar e criar um endpoint. SageMaker usará esse endpoint para inferência. O exemplo de configuração a seguir mostra como gerar e configurar um endpoint com o tipo de instância e o nome do modelo que você definiu anteriormente:
endpoint_config_name = 'spacy-ner-config' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print('Endpoint config name: ' + endpoint_config_name) create_endpoint_config_response = sm_client.create_endpoint_config( EndpointConfigName = endpoint_config_name, ProductionVariants=[{ 'InstanceType': instance_type, 'InitialInstanceCount': 1, 'InitialVariantWeight': 1, 'ModelName': model_name, 'VariantName': 'AllTraffic'}]) print("Endpoint config Arn: " + create_endpoint_config_response['EndpointConfigArn'])
No exemplo de configuração anterior,
create_endpoint_config_response
associa o a um nome de configuração de endpoint exclusivo criadomodel_name
com umendpoint_config_name
carimbo de data/hora.Veja a seguir um exemplo de saída do script anterior:
Endpoint config name: spacy-ner-configYYYY-MM-DD-HH-MM-SS Endpoint config Arn: arn:aws:sagemaker:us-east-2:123456789012:endpoint-config/spacy-ner-config-MM-DD-HH-MM-SS
Para obter mais informações sobre erros de endpoint, consulte Por que meu SageMaker endpoint da Amazon entra em estado de falha quando eu crio ou atualizo um
endpoint? -
Crie um endpoint e aguarde até que o endpoint esteja em serviço.
O exemplo de código a seguir cria o endpoint usando a configuração do exemplo de configuração anterior e implanta o modelo:
%%time import time endpoint_name = 'spacy-ner-endpoint' + strftime("%Y-%m-%d-%H-%M-%S", gmtime()) print('Endpoint name: ' + endpoint_name) create_endpoint_response = sm_client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name) print('Endpoint Arn: ' + create_endpoint_response['EndpointArn']) resp = sm_client.describe_endpoint(EndpointName=endpoint_name) status = resp['EndpointStatus'] print("Endpoint Status: " + status) print('Waiting for {} endpoint to be in service...'.format(endpoint_name)) waiter = sm_client.get_waiter('endpoint_in_service') waiter.wait(EndpointName=endpoint_name)
No exemplo de código anterior, o
create_endpoint
método cria o endpoint com o nome do endpoint gerado criado no exemplo de código anterior e imprime o Amazon Resource Name do endpoint. Odescribe_endpoint
método retorna informações sobre o endpoint e seu status. Um SageMaker garçom espera que o endpoint esteja em serviço.
-
-
Teste seu endpoint.
Quando seu endpoint estiver em serviço, envie uma solicitação de invocação
para seu endpoint. O exemplo de código a seguir mostra como enviar uma solicitação de teste para seu endpoint: import json content_type = "application/json" request_body = {"input": "This is a test with NER in America with \ Amazon and Microsoft in Seattle, writing random stuff."} #Serialize data for endpoint #data = json.loads(json.dumps(request_body)) payload = json.dumps(request_body) #Endpoint invocation response = runtime_sm_client.invoke_endpoint( EndpointName=endpoint_name, ContentType=content_type, Body=payload) #Parse results result = json.loads(response['Body'].read().decode())['output'] result
No exemplo de código anterior, o método
json.dumps
serializa orequest_body
em uma string formatada em JSON e a salva na carga útil da variável. Em seguida, o cliente SageMaker Runtime usa o método invoke endpointpara enviar a carga para seu endpoint. O resultado contém a resposta do seu endpoint após extrair o campo de saída. O exemplo de código anterior deve retornar a seguinte saída:
[['NER', 'ORG'], ['America', 'GPE'], ['Amazon', 'ORG'], ['Microsoft', 'ORG'], ['Seattle', 'GPE']]
-
Exclua seu endpoint
Depois de concluir suas invocações, exclua seu endpoint para conservar recursos. O exemplo de código a seguir mostra como excluir seu endpoint:
sm_client.delete_endpoint(EndpointName=endpoint_name) sm_client.delete_endpoint_config(EndpointConfigName=endpoint_config_name) sm_client.delete_model(ModelName=model_name)
Para obter um caderno completo contendo o código deste exemplo, consulte BYOC-single-model
.
Solução de problemas na implantação do seu contêiner
Se seu endpoint não foi implantado, verifique os registros de CloudWatch eventos da Amazon da seguinte forma:
-
No painel de navegação SageMaker do console https://console.aws.amazon.com/sagemaker/
, escolha Inferência. -
Em Inferência, escolha Endpoints.
-
Encontre seu endpoint em Nome e clique no nome do endpoint. Neste exemplo, o nome seguiria a convenção
spacy-ner-configYYYY-MM-DD-HH-MM-SS
de nomenclatura. -
Em Resumo do endpoint, escolha o link em Model container logs.
-
Escolha o fluxo de log mais recente na caixa Streams de log.
Use a lista a seguir para solucionar problemas de implantação do seu endpoint. Se precisar de mais ajuda, entre em contato com o AWS Support
Tópicos
-
Erro de nome
-
Cota insuficiente
-
Erro de tempo limite do upstream
Erro de nome
Se os registros indicaremNameError: name 'null' is not defined
, certifique-se de que seus scripts não tenham sido criados em um caderno que termina em .ipnyb
e depois renomeados para outro nome de arquivo, comoDockerfile
. Quando você cria um notebook, a formatação de caracteres pode impedir que seu endpoint seja implantado. Se você receber esse erro e alterar seus scripts para corrigi-lo, talvez seja necessário reiniciar o kernel para que as alterações entrem em vigor.
Cota insuficiente
Se você receber um ResourceLimitExceeded
erro, deverá solicitar uma cota adicional da seguinte forma:
Solicite um aumento AWS de Quotas de Serviço
-
Recupere o nome da instância, a cota atual e a cota necessária na mensagem de erro na tela. Por exemplo, no seguinte exemplo de erro:
-
O nome da instância é
ml.c5d.18xlarge
. -
A cota atual do número a seguir
current utilization
é1 instances
. -
A cota adicional exigida do número a seguir
request delta
é1 instances
.
O exemplo de erro é o seguinte:
ResourceLimitExceeded: An error occurred (ResourceLimitExceeded) when calling the CreateEndpoint operation: The account-level service limit 'ml.c5d.18xlarge for endpoint usage' is 1 Instances, with current utilization of 1 Instances and a request delta of 1 Instances. Please use AWS Service Quotas to request an increase for this quota. If AWS Service Quotas is not available, contact AWS support to request an increase for this quota.
-
-
Faça login AWS Management Console e abra o console Service Quotas
. -
No painel de navegação, em Gerenciar cotas, insira Amazon. SageMaker
-
Escolha Exibir cotas.
-
Na barra de pesquisa, em Cotas de serviço, insira o nome da instância da Etapa 1. Por exemplo, usando as informações contidas na mensagem de erro da Etapa 1, insira
ml.c5d.18xlarge
. -
Escolha o nome da cota que aparece ao lado do nome da instância e termina com para uso do endpoint. Por exemplo, usando as informações contidas na mensagem de erro da Etapa 1, escolha
ml.g5.12xlarge
o uso do endpoint. -
Escolha Solicitar aumento no nível da conta.
-
Em Aumentar valor da cota, insira a cota necessária a partir das informações fornecidas na mensagem de erro da Etapa 1. Insira o total de
current utilization
request delta
e. No exemplo anterior, o errocurrent utilization
é1 Instances
e orequest delta
é1 Instances
. Neste exemplo, solicite uma cota de2
para fornecer a cota necessária. -
Escolha Solicitar.
-
Escolha Histórico de solicitações de cotas no painel de navegação.
-
Quando o status mudar de Pendente para Aprovado, execute seu trabalho novamente. Talvez seja necessário atualizar seu navegador para ver a alteração.
Para obter mais informações sobre como solicitar um aumento em sua cota, consulte Solicitando um aumento de cota.
Erro de tempo limite do upstream
Se você receber uma upstream timed out (110: Connection timed
out)
mensagem de erro, tente o seguinte:
-
Reduza a latência do contêiner ou aumente o limite de tempo limite do contêiner. SageMaker exige que seu contêiner responda a uma solicitação em 60 segundos.
-
Aumente a quantidade de tempo antes que seu servidor web espere por uma resposta do modelo.
Para obter mais informações sobre erros de tempo limite, consulte Como posso resolver o erro de SageMaker inferência da Amazon “upstream timed out (110: tempo limite de conexão) ao ler o cabeçalho de resposta