Hospedagem de modelos FAQs - 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á.

Hospedagem de modelos FAQs

Consulte os FAQ itens a seguir para obter respostas às perguntas mais frequentes sobre hospedagem de SageMaker inferência.

Hospedagem geral

Os FAQ itens a seguir respondem a perguntas gerais comuns para SageMaker inferência.

R: Depois de criar e treinar modelos, a Amazon SageMaker oferece quatro opções para implantá-los para que você possa começar a fazer previsões. A inferência em tempo real é adequada para workloads com requisitos de latência de milissegundos, tamanhos de carga útil de até 6 MB e tempos de processamento de até 60 segundos. O Transformação em lote é ideal para previsões off-line em grandes lotes de dados que estão disponíveis antecipadamente. A inferência assíncrona foi projetada para workloads que não têm requisitos de latência inferior a um segundo, tamanhos de carga útil de até 1 GB e tempos de processamento de até 15 minutos. Com Inferência sem servidor, você pode implantar rapidamente modelos de machine learning para inferência sem precisar configurar ou gerenciar a infraestrutura subjacente, e paga somente pela capacidade computacional usada para processar solicitações de inferência, o que é ideal para workloads intermitentes.

R: O diagrama a seguir pode ajudá-lo a escolher uma opção de implantação do modelo de SageMaker hospedagem.

Fluxograma explicando como escolher uma opção de implantação de modelo em SageMaker.

O diagrama anterior mostra o processo de decisão a seguir. Se quiser processar solicitações em lotes, talvez queira escolher Transformação em lote. Caso contrário, se você quiser receber inferência para cada solicitação ao seu modelo, talvez queira escolher inferência assíncrona, inferência sem servidor ou inferência em tempo real. Você pode escolher a inferência assíncrona se tiver longos tempos de processamento ou grandes cargas e quiser enfileirar solicitações. Você pode escolher a inferência sem servidor se sua workload tiver tráfego imprevisível ou intermitente. Você pode escolher a inferência em tempo real se tiver tráfego sustentado e precisar de uma latência menor e consistente para suas solicitações.

R: Para otimizar seus custos com o SageMaker Inference, você deve escolher a opção de hospedagem certa para seu caso de uso. Você também pode usar recursos de inferência, como Amazon SageMaker Savings Plans, otimização de modelos com SageMaker Neo, endpoints multimodelo e endpoints de vários contêineres, ou escalonamento automático. Para obter dicas sobre como otimizar seus custos de inferência, consulte Práticas recomendadas de otimização de custos de inferência.

R: Você deve usar o Amazon SageMaker Inference Recommender se precisar de recomendações para a configuração correta do endpoint para melhorar o desempenho e reduzir custos. Anteriormente, os cientistas de dados que queriam implantar seus modelos precisavam executar benchmarks manuais para selecionar a configuração correta do endpoint. Primeiro, eles precisaram selecionar o tipo certo de instância de machine learning entre mais de 70 tipos de instância disponíveis com base nos requisitos de recursos de seus modelos e cargas úteis de amostra e, em seguida, otimizar o modelo para considerar diferentes hardwares. Em seguida, eles tiveram que realizar testes de carga extensivos para validar se os requisitos de latência e throughput foram atendidos e se os custos eram baixos. O Inference Recommender elimina essa complexidade ao ajudar você a fazer o seguinte:

  • Comece em minutos com uma recomendação de instância.

  • Realize testes de carga em todos os tipos de instância para obter recomendações sobre a configuração do seu endpoint em poucas horas.

  • Ajuste automaticamente os parâmetros do contêiner e do servidor de modelo, além de realizar otimizações de modelo para um determinado tipo de instância.

R: SageMaker endpoints são HTTP REST endpoints que usam um servidor web em contêineres, que inclui um servidor modelo. Esses contêineres são responsáveis por carregar e atender às solicitações de um modelo de machine learning. Eles implementam um servidor web que responda a /invocations e /ping na porta 8080.

Os servidores de modelos comuns incluem TensorFlow Serving TorchServe e Multi Model Server. SageMaker os contêineres de estrutura têm esses servidores de modelo incorporados.

R: Tudo em SageMaker Inference é armazenado em contêineres. SageMaker fornece contêineres gerenciados para estruturas populares TensorFlow, comoSKlearn, e. HuggingFace Para obter uma lista abrangente e atualizada dessas imagens, consulte Imagens disponíveis.

Às vezes, há estruturas personalizadas para as quais talvez seja necessário criar um contêiner. Essa abordagem é conhecida como Bring Your Own Container ou BYOC. Com a BYOC abordagem, você fornece a imagem do Docker para configurar sua estrutura ou biblioteca. Em seguida, você envia a imagem para o Amazon Elastic Container Registry (AmazonECR) para poder usar a imagem com SageMaker. Para ver um exemplo de BYOC abordagem, consulte Visão geral dos contêineres para a Amazon. SageMaker

Como alternativa, em vez de criar uma imagem do zero, você pode estender um contêiner. Você pode pegar uma das imagens básicas SageMaker fornecidas e adicionar suas dependências em cima dela no Dockerfile.

R: SageMaker oferece a capacidade de trazer seu próprio modelo de estrutura treinado que você treinou externamente SageMaker e implantá-lo em qualquer uma das opções de SageMaker hospedagem.

SageMaker exige que você empacote o modelo em um model.tar.gz arquivo e tenha uma estrutura de diretórios específica. Cada estrutura tem sua própria estrutura de modelo (consulte a pergunta a seguir para ver exemplos de estruturas). Para obter mais informações, consulte a SDK documentação do SageMaker Python para TensorFlowPyTorch, e. MXNet

Embora você possa escolher entre imagens de estrutura pré-criadas TensorFlow, como, PyTorch, e MXNet para hospedar seu modelo treinado, você também pode criar seu próprio contêiner para hospedar seus modelos treinados em SageMaker endpoints. Para uma explicação passo a passo, consulte o exemplo do caderno Jupyter Criando seu próprio contêiner de algoritmo.

R: SageMaker exige que os artefatos do seu modelo sejam compactados em um .tar.gz arquivo ou em um arquivo tar. SageMaker extrai automaticamente esse .tar.gz arquivo no /opt/ml/model/ diretório do seu contêiner. O tarball não deve conter links simbólicos ou arquivos desnecessários. Se você estiver usando um dos contêineres da estrutura, como TensorFlow, PyTorch, ouMXNet, o contêiner espera que sua TAR estrutura seja a seguinte:

TensorFlow

model.tar.gz/ |--[model_version_number]/ |--variables |--saved_model.pb code/ |--inference.py |--requirements.txt

PyTorch

model.tar.gz/ |- model.pth |- code/ |- inference.py |- requirements.txt # only for versions 1.3.1 and higher

MXNet

model.tar.gz/ |- model-symbol.json |- model-shapes.json |- model-0000.params |- code/ |- inference.py |- requirements.txt # only for versions 1.6.0 and higher

R: ContentType é o MIME tipo dos dados de entrada no corpo da solicitação (o MIME tipo dos dados que você está enviando para o seu endpoint). O servidor modelo usa o ContentType para determinar se ele pode lidar com o tipo fornecido ou não.

Accepté o MIME tipo da resposta de inferência (o MIME tipo de dados que seu endpoint retorna). O servidor modelo usa o tipo Accept para determinar se ele pode lidar com o tipo fornecido ou não.

Os MIME tipos comuns incluem text/csvapplication/json, application/jsonlines e.

R: SageMaker passa qualquer solicitação para o contêiner do modelo sem modificação. O contêiner deve conter a lógica para desserializar a solicitação. Para obter informações sobre os formatos definidos para algoritmos integrados, consulte Formatos de dados comuns para inferência. Se você estiver criando seu próprio contêiner ou usando um contêiner do SageMaker Framework, poderá incluir a lógica para aceitar um formato de solicitação de sua escolha.

Da mesma forma, SageMaker também retorna a resposta sem modificação e, em seguida, o cliente deve desserializar a resposta. No caso dos algoritmos integrados, eles retornam respostas em formatos específicos. Se você estiver criando seu próprio contêiner ou usando um contêiner do SageMaker Framework, poderá incluir a lógica para retornar uma resposta no formato escolhido.

Use a API chamada Invoke Endpoint para fazer inferências em relação ao seu endpoint.

Ao passar sua entrada como carga útil para o InvokeEndpointAPI, você deve fornecer o tipo correto de dados de entrada que seu modelo espera. Ao transmitir uma carga na InvokeEndpoint API chamada, os bytes da solicitação são encaminhados diretamente para o contêiner do modelo. Por exemplo, para uma imagem, você pode usar application/jpeg para o ContentType e garantir que seu modelo possa realizar inferências sobre esse tipo de dados. Isso se aplica aJSON,CSV, vídeo ou qualquer outro tipo de entrada com a qual você possa estar lidando.

Outro fator a ser considerado são os limites de tamanho da carga útil. Em termos de endpoints em tempo real e sem servidor, o limite de carga é de 6 MB. Você pode dividir seu vídeo em vários quadros e invocar o endpoint com cada quadro individualmente. Como alternativa, se o seu caso de uso permitir, você pode enviar o vídeo inteiro na carga usando um endpoint assíncrono, que suporta cargas de até 1 GB.

Para ver um exemplo que mostra como executar inferência de visão computacional em vídeos grandes com inferência assíncrona, consulte esta postagem do blog.

Inferência em tempo real

Os FAQ itens a seguir respondem a perguntas comuns para inferência SageMaker em tempo real.

R: Você pode criar um SageMaker endpoint por meio AWS de ferramentas compatíveis, como o, AWS SDKs o SageMaker PythonSDK, o, e o. AWS Management Console AWS CloudFormation AWS Cloud Development Kit (AWS CDK)

Há três entidades principais na criação de endpoints: um SageMaker modelo, uma configuração de SageMaker endpoint e um SageMaker endpoint. O SageMaker modelo aponta para os dados e a imagem do modelo que você está usando. A configuração do endpoint define suas variantes de produção, que podem incluir o tipo de instância e a contagem de instâncias. Em seguida, você pode usar a chamada create_endpoint ou a API chamada .deploy () SageMaker para criar um endpoint usando os metadados do seu modelo e da configuração do endpoint.

R: Não, você pode usar os vários AWS SDKs (consulte Invoke/Create for availableSDKs) ou até mesmo ligar APIs diretamente para a web correspondente.

R: Um endpoint multimodelo é uma opção de inferência em tempo real que fornece. SageMaker Com endpoints multimodelo, você pode hospedar milhares de modelos atrás de um endpoint. O Multi Model Server é uma estrutura de código aberto para servir modelos de machine learning. Ele fornece os recursos de HTTP front-end e gerenciamento de modelos exigidos pelos endpoints de vários modelos para hospedar vários modelos em um único contêiner, carregar e descarregar modelos do contêiner dinamicamente e realizar inferência em um modelo carregado especificado.

R: A inferência SageMaker em tempo real oferece suporte a várias arquiteturas de implantação de modelos, como endpoints multimodelo, endpoints multicontêiner e pipelines de inferência serial.

Endpoints multimodelo (MME) — MME permite que os clientes implantem milhares de modelos hiperpersonalizados de forma econômica. Todos os modelos são implantados em uma frota de recursos compartilhados. MMEfunciona melhor quando os modelos têm tamanho e latência semelhantes e pertencem à mesma estrutura de ML. Esses endpoints são ideais para quando você não precisa chamar o mesmo modelo o tempo todo. Você pode carregar dinamicamente os respectivos modelos no SageMaker endpoint para atender à sua solicitação.

Endpoints de vários contêineres (MCE) — MCE permite que os clientes implantem 15 contêineres diferentes com diversas estruturas e funcionalidades de ML sem inicialização a frio, usando apenas um endpoint. SageMaker Você pode invocar diretamente esses contêineres. MCEé melhor para quando você deseja manter todos os modelos na memória.

Pipelines de inferência serial (SIP) — Você pode usar SIP para encadear de 2 a 15 contêineres em um único endpoint. SIPé principalmente adequado para combinar pré-processamento e inferência de modelos em um endpoint e para operações de baixa latência.

Inferência sem servidor

Os FAQ itens a seguir respondem a perguntas comuns sobre o Amazon SageMaker Serverless Inference.

R: Implante modelos com o Amazon SageMaker Serverless Inference é uma opção de fornecimento de modelos sem servidor criada especificamente para facilitar a implantação e o dimensionamento de modelos de ML. Os endpoints de inferência sem servidor iniciam automaticamente os recursos de computação e os escalam para dentro e para baixo, dependendo do tráfego, eliminando a sua necessidade de escolher tipos de instância ou gerenciar políticas de escalabilidade. Opcionalmente, você pode especificar os requisitos de memória do endpoint sem servidor. Você paga somente pela duração da execução do código de inferência e pela quantidade de dados processados, não pelos períodos de inatividade.

R: A inferência sem servidor simplifica a experiência do desenvolvedor, eliminando a necessidade de provisionar capacidade antecipadamente e gerenciar políticas de escalabilidade. A inferência sem servidor pode ser escalada instantaneamente de dezenas a milhares de inferências em segundos com base nos padrões de uso, tornando-a ideal para aplicativos de ML com tráfego intermitente ou imprevisível. Por exemplo, um serviço de chatbot usado por uma empresa de processamento de folha de pagamento experimenta um aumento nas consultas no final do mês, enquanto o tráfego é intermitente no resto do mês. O provisionamento de instâncias para o mês inteiro nesses cenários não é econômico, pois você acaba pagando por períodos de inatividade.

A inferência sem servidor ajuda a lidar com esses tipos de casos de uso, fornecendo escalabilidade automática e rápida, sem a necessidade de prever o tráfego antecipadamente ou gerenciar políticas de escalabilidade. Além disso, você paga somente pelo tempo de computação para executar seu código de inferência e pelo processamento de dados, o que o torna ideal para workloads com tráfego intermitente.

R: Seu endpoint sem servidor tem um RAM tamanho mínimo de 1024 MB (1 GB) e o RAM tamanho máximo que você pode escolher é 6144 MB (6 GB). Os tamanhos de memória que você pode escolher são 1024 MB, 2048 MB, 3072 MB, 4096 MB, 5120 MB ou 6144 MB. A inferência sem servidor atribui automaticamente recursos computacionais proporcionais à memória que você seleciona. Se você escolher um tamanho de memória maior, seu contêiner terá acesso a maisvCPUs.

Escolha o tamanho da memória do seu endpoint de acordo com o tamanho do modelo. Geralmente, o tamanho da memória deve ser pelo menos tão grande quanto o tamanho do modelo. Talvez seja necessário fazer um benchmark para escolher a seleção de memória certa para seu modelo com base na sua latênciaSLAs. Os incrementos do tamanho da memória têm preços diferentes; consulte a página de SageMaker preços da Amazon para obter mais informações.

Transformação em lote

Os FAQ itens a seguir respondem a perguntas comuns sobre o SageMaker Batch Transform.

R: Para formatos de arquivo específicosCSV, como ReCordio eTFRecord, SageMaker pode dividir seus dados em minilotes de registro único ou de vários registros e enviá-los como carga útil para o contêiner do modelo. Quando o valor de BatchStrategy éMultiRecord, SageMaker envia o número máximo de registros em cada solicitação, até o MaxPayloadInMB limite. Quando o valor de BatchStrategy éSingleRecord, SageMaker envia registros individuais em cada solicitação.

R: O tempo máximo para transformação em lote é de 3600 segundos. O tamanho máximo da carga útil de um registro (por minilote) é de 100 MB.

R: Se você estiver usando o CreateTransformJobAPI, poderá reduzir o tempo necessário para concluir os trabalhos de transformação em lote usando valores ideais para parâmetros como MaxPayloadInMBMaxConcurrentTransforms, ouBatchStrategy. O valor ideal para MaxConcurrentTransforms é igual ao número de trabalhadores de computação na tarefa de transformação em lote. Se você estiver usando o SageMaker console, poderá especificar esses valores de parâmetros ideais na seção Configuração adicional da página de configuração do trabalho de transformação em lote. SageMaker encontra automaticamente as configurações de parâmetros ideais para algoritmos integrados. Para obter algoritmos personalizados, forneça esses valores por meio de um endpoint execution-parameters.

R: O Batch Transform suporta CSV JSON e.

Inferência assíncrona

Os FAQ itens a seguir respondem a perguntas gerais comuns sobre inferência SageMaker assíncrona.

R: A inferência assíncrona enfileira as solicitações recebidas e as processa de forma assíncrona. Essa opção é ideal para solicitações com grandes tamanhos de carga útil ou longos tempos de processamento que precisam ser processadas à medida que chegam. Opcionalmente, você pode definir configurações de ajuste de escala automático para reduzir verticalmente a contagem de instâncias para zero quando não estiver processando ativamente as solicitações.

R: A Amazon SageMaker oferece suporte à escalabilidade automática (escalonamento automático) do seu endpoint assíncrono. A escalabilidade automática ajusta dinamicamente o número de instâncias provisionadas para um modelo em resposta às alterações na workload. Ao contrário do SageMaker suporte de outros modelos hospedados, com a inferência assíncrona, você também pode reduzir suas instâncias de endpoints assíncronos para zero. As solicitações recebidas quando não há instâncias são enfileiradas para processamento quando o endpoint aumenta a escala verticalmente. Para obter mais informações, consulte Escalar automaticamente um endpoint assíncrono.

O Amazon SageMaker Serverless Inference também diminui automaticamente para zero. Você não verá isso porque SageMaker gerencia a escalabilidade de seus endpoints sem servidor, mas se você não estiver enfrentando nenhum tráfego, a mesma infraestrutura se aplica.