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á.
Implemente modelos para inferência em tempo real
A inferência em tempo real é ideal para workloads de inferência em que você tem requisitos em tempo real, interativos e de baixa latência. Esta seção mostra como você pode usar a inferência em tempo real para obter previsões do seu modelo de forma interativa.
Para implantar o modelo que produziu a melhor métrica de validação em um experimento do Autopilot, você tem várias opções. Por exemplo, ao usar o Autopilot no SageMaker Studio Classic, você pode implantar o modelo automática ou manualmente. Você também pode usar SageMaker APIs para implantar manualmente um modelo de piloto automático.
As guias a seguir mostram três opções para implantar seu modelo. Estas instruções supõem que você já criou um modelo no Autopilot. Se você não tem um modelo, consulte Crie trabalhos de regressão ou classificação para dados tabulares usando o AutoML API. Para ver exemplos de cada opção, abra cada guia.
A interface do usuário do Autopilot contém menus suspensos úteis, botões de alternância, dicas de ferramentas e muito mais para ajudá-lo(a) a navegar pela implantação do modelo. Você pode implantar usando um dos seguintes procedimentos: automático ou manual.
-
Implantação automática: para implantar automaticamente o melhor modelo de um experimento do Autopilot em um endpoint
-
Crie um experimento no SageMaker Studio Classic.
-
Mude o valor de Auto deploy (implantação automática) para Sim.
nota
A implantação automática falhará se a cota de recursos padrão ou a cota de clientes para instâncias de endpoint em uma região for muito limitada. No modo hyperparameter optimization (HPO), você precisa ter pelo menos duas instâncias ml.m5.2xlarge. No modo de agrupamento, você precisa ter pelo menos uma instância ml.m5.12xlarge. Se você encontrar uma falha relacionada às cotas, poderá solicitar um aumento do limite de serviço para instâncias de SageMaker endpoint.
-
-
Implantação manual: para implantar manualmente o melhor modelo de um experimento do Autopilot em um endpoint
-
Crie um experimento no SageMaker Studio Classic.
-
Mude o valor de Auto deploy (implantação automática) para Não.
-
Selecione o modelo que deseja implantar em Model name (Nome do modelo).
-
Selecione o botão laranja de Deployment and advanced settings (Implantação e configurações avançadas) localizado à direita do placar. Isso abre uma nova guia.
-
Configure o nome do endpoint, o tipo de instância e outras informações opcionais.
-
Selecione o botão laranja Deploy model (Implantar modelo) para implantar em um endpoint.
-
Verifique o progresso do processo de criação do endpoint no https://console.aws.amazon.com/sagemaker/
navegando até a seção Endpoints. Essa seção está localizada no menu suspenso Inference (Inferência) no painel de navegação. -
Depois que o status do endpoint mudar de Creating para InService, conforme mostrado abaixo, retorne ao Studio Classic e invoque o endpoint.
-
Você também pode obter inferência em tempo real implantando seu modelo usando API chamadas. Esta seção mostra as cinco etapas desse processo usando trechos de código AWS Command Line Interface (AWS CLI).
Para obter exemplos de código completos para ambos os AWS CLI comandos e AWS SDK para Python (boto3), abra as guias diretamente seguindo estas etapas.
-
Obtenha definições de candidatos
Obtenha as definições do contêiner candidato em InferenceContainers. Essas definições candidatas são usadas para criar um SageMaker modelo.
O exemplo a seguir usa o DescribeAutoMLJobAPIpara obter as definições do candidato ao melhor modelo. Veja o AWS CLI comando a seguir como exemplo.
aws sagemaker describe-auto-ml-job --auto-ml-job-name
<job-name>
--region<region>
-
Listar candidatos
O exemplo a seguir usa o ListCandidatesForAutoMLJobAPIpara listar todos os candidatos. O comando AWS CLI a seguir é um exemplo.
aws sagemaker list-candidates-for-auto-ml-job --auto-ml-job-name
<job-name>
--region<region>
-
Crie um SageMaker modelo
Use as definições de contêiner das etapas anteriores para criar um SageMaker modelo usando CreateModelAPIo. Veja o AWS CLI comando a seguir como exemplo.
aws sagemaker create-model --model-name '
<your-custom-model-name>
' \ --containers ['<container-definition1
>,<container-definition2>
,<container-definition3>
]' \ --execution-role-arn '<execution-role-arn>
' --region '<region>
-
Criar uma configuração de endpoint
O exemplo a seguir usa o CreateEndpointConfigAPIpara criar uma configuração de endpoint. Veja o AWS CLI comando a seguir como exemplo.
aws sagemaker create-endpoint-config --endpoint-config-name '
<your-custom-endpoint-config-name>
' \ --production-variants '<list-of-production-variants>
' \ --region '<region>
' -
Criar o endpoint
O AWS CLI exemplo a seguir usa o CreateEndpointAPIpara criar o endpoint.
aws sagemaker create-endpoint --endpoint-name '
<your-custom-endpoint-name>
' \ --endpoint-config-name '<endpoint-config-name-you-just-created>
' \ --region '<region>
'Verifique o progresso da implantação do seu endpoint usando o. DescribeEndpointAPI Veja o AWS CLI comando a seguir como exemplo.
aws sagemaker describe-endpoint —endpoint-name '
<endpoint-name>
' —region<region>
Depois que
EndpointStatus
muda paraInService
, o endpoint está pronto para ser usado para inferência em tempo real. -
Invoque o endpoint
A estrutura de comando a seguir invoca o endpoint para inferência em tempo real.
aws sagemaker invoke-endpoint --endpoint-name '
<endpoint-name>
' \ --region '<region>
' --body '<your-data>
' [--content-type] '<content-type>
'<outfile>
As guias a seguir contêm exemplos de código completos para implantar um modelo com for AWS SDK Python (boto3) ou o. AWS CLI
Você pode implantar um modelo do Autopilot a partir de uma conta diferente da conta original na qual o modelo foi gerado. Para implementar a implantação do modelo entre contas, esta seção mostra como fazer o seguinte:
-
Conceder permissão à conta de implantação
Para assumir a função na conta geradora, você deve dar permissão para a conta de implantação. Isso permite que a conta de implantação descreva as tarefas do Autopilot na conta geradora.
O exemplo a seguir usa uma conta geradora com uma entidade
sagemaker-role
confiável. O exemplo mostra como dar permissão a uma conta de implantação com o ID 111122223333 para assumir a função da conta geradora."Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "sagemaker.amazonaws.com" ], "AWS": [ "
111122223333
"] }, "Action": "sts:AssumeRole" }A nova conta com o ID 111122223333 agora pode assumir a função da conta geradora.
Em seguida, chame a
DescribeAutoMLJob
API partir da conta de implantação para obter uma descrição do trabalho criado pela conta geradora.O exemplo de código a seguir descreve o modelo da conta de implantação.
import sagemaker import boto3 session = sagemaker.session.Session() sts_client = boto3.client('sts') sts_client.assume_role role = '
arn:aws:iam::111122223333:role/sagemaker-role
' role_session_name = "role-session-name
" _assumed_role = sts_client.assume_role(RoleArn=role, RoleSessionName=role_session_name) credentials = _assumed_role["Credentials"] access_key = credentials["AccessKeyId"] secret_key = credentials["SecretAccessKey"] session_token = credentials["SessionToken"] session = boto3.session.Session() sm_client = session.client('sagemaker', region_name='us-west-2
', aws_access_key_id=access_key, aws_secret_access_key=secret_key, aws_session_token=session_token) # now you can call describe automl job created in account A job_name = "test-job
" response= sm_client.describe_auto_ml_job(AutoMLJobName=job_name) -
Conceda acesso à conta de implantação aos artefatos do modelo na conta geradora.
Conceda acesso à conta de implantação somente aos artefatos do modelo na conta geradora para implantá-la. Eles estão localizados no S3 OutputPath que foi especificado na
CreateAutoMLJob
API chamada original durante a geração do modelo.Para dar acesso à conta de implantação aos artefatos do modelo, escolha uma das seguintes opções:
-
Dê acesso
ao ModelDataUrl
da conta geradora para a conta de implantação.Em seguida, você precisa dar permissão à conta de implantação para assumir a função. Siga as etapas de inferência em tempo real para implantar.
-
Copie artefatos do modelo
do S3 original da conta geradora OutputPath para a conta geradora. Para conceder acesso aos artefatos do modelo, defina um modelo
best_candidate
e reatribua os contêineres do modelo à nova conta.O exemplo a seguir mostra como definir um modelo
best_candidate
e reatribuir oModelDataUrl
.best_candidate = automl.describe_auto_ml_job()['BestCandidate'] # reassigning ModelDataUrl for best_candidate containers below new_model_locations = ['
new-container-1-ModelDataUrl
', 'new-container-2-ModelDataUrl
', 'new-container-3-ModelDataUrl
'] new_model_locations_index = 0 for container in best_candidate['InferenceContainers']: container['ModelDataUrl'] = new_model_locations[new_model_locations_index++]Após essa atribuição de contêineres, siga as etapas em Implemente usando SageMaker APIs para implantar.
-
Para criar uma carga útil em inferência em tempo real, veja o exemplo do bloco de anotações para definir uma carga útil de teste