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
Importante
IAMPolíticas personalizadas que permitem que o Amazon SageMaker Studio ou o Amazon SageMaker Studio Classic criem SageMaker recursos da Amazon também devem conceder permissões para adicionar tags a esses recursos. A permissão para adicionar tags aos recursos é necessária porque o Studio e o Studio Classic marcam automaticamente todos os recursos que eles criam. Se uma IAM política permitir que o Studio e o Studio Classic criem recursos, mas não permita a marcação, erros AccessDenied "" podem ocorrer ao tentar criar recursos. Para obter mais informações, consulte Forneça permissões para marcar recursos SageMaker.
AWS Políticas gerenciadas para a Amazon SageMakerque dão permissões para criar SageMaker recursos já incluem permissões para adicionar tags ao criar esses recursos.
Há várias opções para implantar um modelo usando serviços de SageMaker hospedagem. Você pode implantar interativamente um modelo com o SageMaker Studio. Ou você pode implantar programaticamente um modelo usando um AWS SDK, como o Python ou SDK o for SageMaker SDK Python (Boto3). Você também pode implantar usando AWS CLI o.
Antes de começar
Antes de implantar um SageMaker modelo, localize e anote o seguinte:
-
O Região da AWS local onde seu bucket do Amazon S3 está localizado
-
O URI caminho do Amazon S3 em que os artefatos do modelo são armazenados
-
O IAM papel para SageMaker
-
O caminho de ECR URI registro do Docker Amazon para a imagem personalizada que contém o código de inferência ou a estrutura e a versão de uma imagem Docker integrada que é suportada e por AWS
Para obter uma lista dos Serviços da AWS disponíveis em cada um Região da AWS, consulte Mapas de regiões e redes de borda
Importante
O bucket do Amazon S3 em que os artefatos do modelo são armazenados deve estar no mesmo Região da AWS modelo que você está criando.
Utilização compartilhada de recursos com vários modelos
Você pode implantar um ou mais modelos em um endpoint com a Amazon SageMaker. Quando vários modelos compartilham um endpoint, eles utilizam em conjunto os recursos que estão hospedados lá, como instâncias de computação de ML e aceleradores. CPUs A maneira mais flexível de implantar vários modelos em um endpoint é definir cada modelo como um componente de inferência.
Componentes de inferência
Um componente de inferência é um objeto de SageMaker hospedagem que você pode usar para implantar um modelo em um endpoint. Nas configurações do componente de inferência, você especifica o modelo, o endpoint e como o modelo utiliza os recursos que o endpoint hospeda. Para especificar o modelo, você pode especificar um objeto SageMaker Modelo ou especificar diretamente os artefatos e a imagem do modelo.
Nas configurações, você pode otimizar a utilização de recursos adaptando a forma como os CPU núcleos, aceleradores e memória necessários são alocados ao modelo. Você pode implantar vários componentes de inferência em um endpoint, onde cada componente de inferência contém um modelo e as necessidades de utilização de recursos desse modelo.
Depois de implantar um componente de inferência, você pode invocar diretamente o modelo associado ao usar a InvokeEndpoint ação no. SageMaker API
Os componentes de inferência oferecem os seguintes benefícios:
- Flexibilidade
-
O componente de inferência separa os detalhes da hospedagem do modelo do próprio endpoint. Isso fornece mais flexibilidade e controle sobre como os modelos são hospedados e servidos com um endpoint. Você pode hospedar vários modelos na mesma infraestrutura e adicionar ou remover modelos de um endpoint conforme necessário. Você pode atualizar cada modelo de forma independente.
- Escalabilidade
-
Você pode especificar quantas cópias de cada modelo hospedar e definir um número mínimo de cópias para garantir que o modelo seja carregado na quantidade necessária para atender às solicitações. Você pode reduzir a escala de qualquer cópia do componente de inferência para zero, o que abre espaço para que outra cópia seja ampliada.
SageMaker empacota seus modelos como componentes de inferência quando você os implanta usando:
-
SageMaker Estúdio clássico.
-
O SageMaker Python SDK para implantar um objeto Model (onde você define o tipo de endpoint).
EndpointType.INFERENCE_COMPONENT_BASED
-
O AWS SDK for Python (Boto3) para definir
InferenceComponent
objetos que você implanta em um endpoint.
Implemente modelos com o SageMaker Studio
Conclua as etapas a seguir para criar e implantar seu modelo de forma interativa por meio do SageMaker Studio. Para obter mais informações sobre o Studio, consulte a documentação do Studio. Para obter mais orientações sobre vários cenários de implantação, consulte o blog Package e implante modelos clássicos de ML de forma fácil LLMs com a Amazon SageMaker —
Prepare seus artefatos e permissões
Conclua esta seção antes de criar um modelo no SageMaker Studio.
Você tem duas opções para trazer seus artefatos e criar um modelo no Studio:
-
Você pode trazer um
tar.gz
arquivo pré-empacotado, que deve incluir os artefatos do seu modelo, qualquer código de inferência personalizado e todas as dependências listadas em um arquivo.requirements.txt
-
SageMaker pode empacotar seus artefatos para você. Você só precisa trazer os artefatos do modelo bruto e quaisquer dependências em um
requirements.txt
arquivo e SageMaker fornecer o código de inferência padrão para você (ou pode substituir o código padrão pelo seu próprio código de inferência personalizado). SageMakersuporta essa opção para as seguintes estruturas: PyTorch,XGBoost.
Além de trazer seu modelo, sua função AWS Identity and Access Management (IAM) e um contêiner Docker (ou estrutura e versão desejadas que SageMaker tenham um contêiner pré-construído), você também deve conceder permissões para criar e implantar modelos por meio do SageMaker Studio.
Você deve ter a AmazonSageMakerFullAccesspolítica anexada à sua IAM função para poder acessar SageMaker outros serviços relevantes. Para ver os preços dos tipos de instância no Studio, você também deve anexar a AWS PriceListServiceFullAccesspolítica (ou, se não quiser anexar toda a política, mais especificamente, a pricing:GetProducts
ação).
Se você optar por fazer o upload dos artefatos do seu modelo ao criar um modelo (ou fazer upload de um arquivo de carga útil de amostra para recomendações de inferência), deverá criar um bucket do Amazon S3. O nome do bucket deve ser prefixado pela palavraSageMaker
. Capitalizações alternativas de também SageMaker são aceitáveis: Sagemaker
ou. sagemaker
Recomendamos que você use a convenção sagemaker-{
de nomenclatura do bucket. Esse bucket é usado para armazenar os artefatos que você carrega.Region
}-{accountID
}
Depois de criar o bucket, anexe a seguinte política CORS (compartilhamento de recursos entre origens) ao bucket:
[ { "AllowedHeaders": ["*"], "ExposeHeaders": ["Etag"], "AllowedMethods": ["PUT", "POST"], "AllowedOrigins": ['https://*.sagemaker.aws'], } ]
Você pode anexar uma CORS política a um bucket do Amazon S3 usando qualquer um dos seguintes métodos:
-
Por meio da página Editar compartilhamento de recursos de origem cruzada (CORS)
no console do Amazon S3 -
Usando o Amazon S3 API PutBucketCors
-
Usando o put-bucket-cors AWS CLI comando:
aws s3api put-bucket-cors --bucket="..." --cors-configuration="..."
Crie um modelo implantável
Nesta etapa, você cria uma versão implantável do seu modelo SageMaker fornecendo seus artefatos junto com especificações adicionais, como o contêiner e a estrutura desejados, qualquer código de inferência personalizado e configurações de rede.
Crie um modelo implantável no SageMaker Studio fazendo o seguinte:
-
Abra o aplicativo SageMaker Studio.
-
No painel de navegação à esquerda, selecione Modelos.
-
Escolha a guia Modelos implantáveis.
-
Na página Modelos implantáveis, escolha Criar.
-
Na página Criar modelo implantável, no campo Nome do modelo, insira um nome para o modelo.
Há várias outras seções para você preencher na página Criar modelo implantável.
A seção de definição de contêiner se parece com a seguinte captura de tela:
Para a seção Definição de contêiner, faça o seguinte:
-
Em Tipo de contêiner, selecione Contêiner pré-construído se quiser usar um contêiner SageMaker gerenciado ou selecione Traga seu próprio contêiner se você tiver seu próprio contêiner.
-
Se você selecionou Contêiner pré-construído, selecione a estrutura do contêiner, a versão da estrutura e o tipo de hardware que você gostaria de usar.
-
Se você selecionou Traga seu próprio contêiner, insira um ECR caminho da Amazon para o ECRcaminho até a imagem do contêiner.
Em seguida, preencha a seção Artefatos, que se parece com a seguinte captura de tela:
Para a seção Artefatos, faça o seguinte:
-
Se você estiver usando uma das estruturas que oferecem SageMaker suporte ao empacotamento de artefatos de modelo (PyTorch ouXGBoost), para Artefatos, você pode escolher a opção Carregar artefatos. Com essa opção, você pode simplesmente especificar seus artefatos de modelo bruto, qualquer código de inferência personalizado que você tenha e seu arquivo requirements.txt, além de lidar com o SageMaker empacotamento do arquivo para você. Faça o seguinte:
-
Em Artefatos, selecione Carregar artefatos para continuar fornecendo seus arquivos. Caso contrário, se você já tiver um
tar.gz
arquivo que contém seus arquivos de modelo, código de inferência erequirements.txt
arquivo, selecione Entrada S3 URI para artefatos pré-empacotados. -
Se você optar por fazer o upload de seus artefatos, então, para o bucket do S3, insira o caminho do Amazon S3 até um bucket onde você SageMaker gostaria de armazenar seus artefatos depois de empacotá-los para você. Em seguida, conclua as etapas a seguir.
-
Para Carregar artefatos do modelo, faça o upload dos arquivos do modelo.
-
Para Código de inferência, selecione Usar código de inferência padrão se quiser usar o código padrão que SageMaker forneça inferência de veiculação. Caso contrário, selecione Carregar código de inferência personalizado para usar seu próprio código de inferência.
-
Para Carregar requirements.txt, faça upload de um arquivo de texto que liste todas as dependências que você deseja instalar em tempo de execução.
-
-
Se você não estiver usando uma estrutura SageMaker compatível com o empacotamento de artefatos do modelo, o Studio mostra a opção de artefatos pré-empacotados e você deve fornecer todos os artefatos já empacotados como um arquivo.
tar.gz
Faça o seguinte:-
Para artefatos pré-empacotados, selecione Input S3 URI para artefatos de modelo pré-empacotados se você já
tar.gz
tiver feito o upload do seu arquivo para o Amazon S3. Selecione Carregar artefatos de modelo pré-empacotados se quiser fazer o upload direto do seu arquivo para. SageMaker -
Se você selecionou Input S3 URI para artefatos de modelo pré-empacotados, insira o caminho do Amazon S3 até seu arquivo para o S3. URI Caso contrário, selecione e carregue o arquivo da sua máquina local.
-
A próxima seção é Segurança, que se parece com a seguinte captura de tela:
Para a seção Segurança, faça o seguinte:
-
Em IAMfunção, insira ARN para uma IAM função.
-
(Opcional) Para Virtual Private Cloud (VPC), você pode selecionar uma Amazon VPC para armazenar a configuração e os artefatos do seu modelo.
-
(Opcional) Ative o botão de isolamento de rede se quiser restringir o acesso à Internet do seu contêiner.
Por fim, você pode preencher opcionalmente a seção Opções avançadas, que se parece com a seguinte captura de tela:
(Opcional) Para a seção Opções avançadas, faça o seguinte:
-
Ative a opção Recomendações de instância personalizada se quiser executar um trabalho do Amazon SageMaker Inference Recommender em seu modelo após sua criação. O Inference Recommender é um recurso que fornece os tipos de instância recomendados para otimizar o desempenho e o custo da inferência. Você pode ver essas recomendações de instância ao se preparar para implantar seu modelo.
-
Em Adicionar variáveis de ambiente, insira variáveis de ambiente para seu contêiner como pares de valores-chave.
-
Em Tags, insira todas as tags como pares de valores-chave.
-
Depois de concluir a configuração do modelo e do contêiner, escolha Criar modelo implantável.
Agora você deve ter um modelo no SageMaker Studio que esteja pronto para implantação.
Implantar o modelo
Por fim, você implanta o modelo configurado na etapa anterior em um HTTPS endpoint. Você pode implantar um único modelo ou vários modelos no endpoint.
Compatibilidade de modelos e terminais
Antes de implantar um modelo em um endpoint, o modelo e o endpoint devem ser compatíveis e ter os mesmos valores para as seguintes configurações:
-
O IAM papel
-
A AmazonVPC, incluindo suas sub-redes e grupos de segurança
-
O isolamento da rede (ativado ou desativado)
O Studio impede que você implante modelos em endpoints incompatíveis das seguintes maneiras:
-
Se você tentar implantar um modelo em um novo endpoint, SageMaker defina o endpoint com configurações iniciais compatíveis. Se você quebrar a compatibilidade alterando essas configurações, o Studio mostrará um alerta e impedirá sua implantação.
-
Se você tentar implantar em um endpoint existente e esse endpoint for incompatível, o Studio mostrará um alerta e impedirá sua implantação.
-
Se você tentar adicionar vários modelos a uma implantação, o Studio impede que você implante modelos incompatíveis entre si.
Quando o Studio mostra o alerta sobre a incompatibilidade do modelo e do endpoint, você pode escolher Exibir detalhes no alerta para ver quais configurações são incompatíveis.
Uma forma de implantar um modelo é fazer o seguinte no Studio:
-
Abra o aplicativo SageMaker Studio.
-
No painel de navegação à esquerda, selecione Modelos.
-
Na página Modelos, selecione um ou mais modelos na lista de SageMaker modelos.
-
Escolha Implantar.
-
Em Nome do endpoint, abra o menu suspenso. Você pode selecionar um endpoint existente ou criar um novo endpoint no qual você implanta o modelo.
-
Em Tipo de instância, selecione o tipo de instância que você deseja usar para o endpoint. Se você executou anteriormente um trabalho do Inference Recommender para o modelo, seus tipos de instância recomendados aparecerão na lista sob o título Recomendado. Caso contrário, você verá algumas instâncias potenciais que podem ser adequadas para seu modelo.
Compatibilidade do tipo de instância para JumpStart
Se você estiver implantando um JumpStart modelo, o Studio mostra apenas os tipos de instância compatíveis com o modelo.
-
Em Contagem inicial de instâncias, insira o número inicial de instâncias que você gostaria de provisionar para seu endpoint.
-
Em Contagem máxima de instâncias, especifique o número máximo de instâncias que o endpoint pode provisionar quando se expande para acomodar um aumento no tráfego.
-
Se o modelo que você está implantando for um dos mais usados no hub JumpStart LLMs de modelos, a opção Configurações alternativas aparecerá após os campos tipo de instância e contagem de instâncias.
Para os mais populares JumpStart LLMs, AWS tem tipos de instância pré-comparados para otimizar em termos de custo ou desempenho. Esses dados podem ajudar você a decidir qual tipo de instância usar para implantar suaLLM. Escolha Configurações alternativas para abrir uma caixa de diálogo que contém os dados pré-comparados. O painel se parece com a seguinte captura de tela:
Na caixa Configurações alternativas, faça o seguinte:
-
Selecione um tipo de instância. Você pode escolher Custo por hora ou Melhor desempenho para ver os tipos de instância que otimizam o custo ou o desempenho para o modelo especificado. Você também pode escolher Outras instâncias compatíveis para ver uma lista de outros tipos de instância compatíveis com o JumpStart modelo. Observe que selecionar um tipo de instância aqui substitui qualquer seleção de instância anterior especificada na Etapa 6.
-
(Opcional) Ative a opção Personalizar a configuração selecionada para especificar o máximo total de tokens (o número máximo de tokens que você deseja permitir, que é a soma dos tokens de entrada e a saída gerada pelo modelo), o tamanho máximo do token de entrada (o número máximo de tokens que você deseja permitir para a entrada de cada solicitação) e o máximo de solicitações simultâneas (o número máximo de solicitações que o modelo pode processar por vez).
-
Escolha Selecionar para confirmar o tipo de instância e as configurações.
-
-
O campo Modelo já deve estar preenchido com o nome do modelo ou modelos que você está implantando. Você pode escolher Adicionar modelo para adicionar mais modelos à implantação. Para cada modelo que você adicionar, preencha os seguintes campos:
-
Em Número de CPU núcleos, insira os CPU núcleos que você gostaria de dedicar ao uso do modelo.
-
Em Número mínimo de cópias, insira o número mínimo de cópias do modelo que você deseja hospedar no endpoint a qualquer momento.
-
Em CPUMemória mínima (MB), insira a quantidade mínima de memória (em MB) exigida pelo modelo.
-
Em CPUMemória máxima (MB), insira a quantidade máxima de memória (em MB) que você gostaria de permitir que o modelo usasse.
-
-
(Opcional) Para as opções avançadas, faça o seguinte:
-
Para IAMfunção, use a função de SageMaker IAM execução padrão ou especifique sua própria função que tenha as permissões necessárias. Observe que essa IAM função deve ser a mesma que você especificou ao criar o modelo implantável.
-
Para Virtual Private Cloud (VPC), você pode especificar uma VPC na qual deseja hospedar seu endpoint.
-
Em KMSChave de criptografia, selecione uma AWS KMS chave para criptografar dados no volume de armazenamento anexado à instância de computação de ML que hospeda o endpoint.
-
Ative o botão Ativar isolamento de rede para restringir o acesso à Internet do seu contêiner.
-
Em Configuração de tempo limite, insira valores para os campos Tempo limite de download de dados do modelo (segundos) e Tempo limite de verificação de integridade de inicialização do contêiner (segundos). Esses valores determinam o tempo máximo que SageMaker permite o download do modelo para o contêiner e a inicialização do contêiner, respectivamente.
-
Em Tags, insira todas as tags como pares de valores-chave.
nota
SageMaker configura as configurações de IAM VPC função e isolamento de rede com valores iniciais compatíveis com o modelo que você está implantando. Se você quebrar a compatibilidade alterando essas configurações, o Studio mostrará um alerta e impedirá sua implantação.
-
Depois de configurar suas opções, a página deve ter a aparência da captura de tela a seguir.
Depois de configurar sua implantação, escolha Deploy para criar o endpoint e implantar seu modelo.
Implemente modelos com o Python SDKs
Usando o SageMaker PythonSDK, você pode criar seu modelo de duas maneiras. A primeira é criar um objeto de modelo a partir da ModelBuilder
classe Model
or. Se você usar a Model
classe para criar seu Model
objeto, precisará especificar o pacote do modelo ou o código de inferência (dependendo do servidor do modelo), scripts para lidar com a serialização e desserialização de dados entre o cliente e o servidor e quaisquer dependências a serem carregadas no Amazon S3 para consumo. A segunda maneira de criar seu modelo é usar ModelBuilder
para o qual você fornece artefatos de modelo ou código de inferência. ModelBuilder
captura automaticamente suas dependências, infere as funções de serialização e desserialização necessárias e empacota suas dependências para criar seu objeto. Model
Para obter mais informações sobre o ModelBuilder
, consulte Crie um modelo na Amazon SageMaker com ModelBuilder.
A seção a seguir descreve os dois métodos para criar seu modelo e implantar seu objeto de modelo.
Configurar
Os exemplos a seguir preparam o processo de implantação do modelo. Eles importam as bibliotecas necessárias e definem o S3 URL que localiza os artefatos do modelo.
exemplo artefato modelo URL
O código a seguir cria um exemplo do Amazon URL S3. Ele URL localiza os artefatos do modelo para um modelo pré-treinado em um bucket do Amazon S3.
# Create a variable w/ the model S3 URL # The name of your S3 bucket: s3_bucket = "amzn-s3-demo-bucket" # The directory within your S3 bucket your model is stored in: bucket_prefix = "
sagemaker/model/path
" # The file name of your model artifact: model_filename = "my-model-artifact.tar.gz
" # Relative S3 path: model_s3_key = f"{bucket_prefix}/"+model_filename # Combine bucket name, model file name, and relate S3 path to create S3 model URL: model_url = f"s3://{s3_bucket}/{model_s3_key}"
O Amazon S3 completo URL é armazenado na variávelmodel_url
, que é usada nos exemplos a seguir.
Visão geral
Há várias maneiras de implantar modelos com o SageMaker Python SDK ou com o for Python (SDKBoto3). As seções a seguir resumem as etapas que você conclui para várias abordagens possíveis. Essas etapas são demonstradas pelos exemplos a seguir.
Configurar
Os exemplos a seguir configuram os recursos necessários para implantar um modelo em um endpoint.
Implantar
Os exemplos a seguir implantam um modelo em um endpoint.
Implemente modelos com o AWS CLI
Você pode implantar um modelo em um endpoint usando o. AWS CLI
Visão geral
Ao implantar um modelo com o AWS CLI, você pode implantá-lo com ou sem o uso de um componente de inferência. As seções a seguir resumem os comandos que você executa para ambas as abordagens. Esses comandos são demonstrados pelos exemplos a seguir.
Configurar
Os exemplos a seguir configuram os recursos necessários para implantar um modelo em um endpoint.
Implantar
Os exemplos a seguir implantam um modelo em um endpoint.