Pontos de extremidade para inferência na produção

APLICA-SE A:CLI do Azure ml extension v2 (atual)Python SDK azure-ai-ml v2 (atual)

Depois de treinar modelos ou pipelines de machine learning ou encontrar modelos adequados do catálogo de modelos, você precisará implantá-los em produção para que outras pessoas os utilizem para inferência. Inferência é o processo de aplicação de novos dados de entrada a um modelo ou pipeline de machine learning para gerar saídas. Embora essas saídas sejam normalmente chamadas de "previsões", a inferência pode gerar saídas para outras tarefas de aprendizado de máquina, como classificação e clustering. Em Azure Machine Learning, você executa inferência usando endpoints.

Pontos de extremidade e implantações

Um endpoint é uma URL estável e confiável que pode ser usada para solicitar ou invocar um modelo. Você fornece as entradas necessárias para o ponto de extremidade e recebe as saídas. Azure Machine Learning dá suporte a implantações padrão, endpoints online e endpoints em lote. Um ponto de extremidade fornece:

  • Uma URL estável e durável (como endpoint-name.region.inference.ml.azure.com)
  • Um mecanismo de autenticação
  • Um mecanismo de autorização

Uma implantação é um conjunto de recursos e computação necessários para hospedar o modelo ou componente que executa a inferência real. Um ponto de extremidade contém uma implantação. Para endpoints online e em lote, um endpoint pode conter várias implantações. As implantações podem hospedar ativos independentes e consumir recursos diferentes com base nas necessidades dos ativos. Um ponto de extremidade também tem um mecanismo de roteamento que pode redirecionar solicitações para qualquer uma de suas implantações.

Alguns tipos de pontos de extremidade no "Azure Machine Learning" consomem recursos dedicados em suas implantações. Para que esses pontos de extremidade possam ser executados, você deve ter uma cota de computação em sua assinatura do Azure. No entanto, determinados modelos dão suporte a uma implantação sem servidor, o que permite que eles não consumam nenhuma cota de sua assinatura. Para implantações sem servidor, você é cobrado com base no uso.

Intuição

Suponha que você esteja trabalhando em um aplicativo que preveja o tipo e a cor de um carro de uma foto. Para este aplicativo, um usuário com determinadas credenciais faz uma solicitação HTTP para uma URL e fornece uma imagem de um carro como parte da solicitação. Em troca, o usuário recebe uma resposta que inclui o tipo e a cor do carro como valores de cadeia de caracteres. Nesse cenário, a URL serve como um endpoint.

Um diagrama mostrando o conceito de um ponto de extremidade.

Agora suponha que uma cientista de dados, Alice, esteja implementando o aplicativo. Alice tem uma ampla experiência do TensorFlow e decide implementar o modelo usando um classificador sequencial Keras com uma arquitetura ResNet do TensorFlow Hub. Depois de testar o modelo, Alice fica satisfeita com seus resultados e decide usar o modelo para resolver o problema de previsão do carro. O modelo é grande e requer 8 GB de memória com 4 núcleos para ser executado. Nesse cenário, o modelo de Alice e os recursos, como o código e os recursos computacionais, que são necessários para executar o modelo compõem uma implantação sob o endpoint.

Um diagrama mostrando o conceito de uma implantação.

Após alguns meses, a organização descobre que o aplicativo tem um desempenho insatisfatório em imagens com condições de iluminação deficientes. Bob, outro cientista de dados, tem experiência em técnicas de aumento de dados que ajudam os modelos a criar robustez para esse fator. No entanto, Bob prefere usar pyTorch para implementar o modelo e treina um novo modelo com PyTorch. Bob quer testar esse modelo em produção gradualmente até que a organização esteja pronta para desativar o modelo antigo. O novo modelo também tem um desempenho melhor quando implantado na GPU, portanto, a implantação precisa incluir uma GPU. Nesse cenário, o modelo de Bob e os recursos , como o código e a computação, que são necessários para executar o modelo compõem outra implantação no mesmo ponto de extremidade.

Um diagrama mostrando o conceito de um ponto de extremidade com várias implantações.

Endpoints: implantação padrão, online e em lotes

Azure Machine Learning dá suporte a implantações padrão, pontos de extremidade online e pontos de extremidade batch.

Implantações padrão e endpoints online são projetados para inferência em tempo real. Quando você invoca o ponto de extremidade, os resultados são retornados na resposta do ponto de extremidade. As implantações padrão não consomem quota de sua assinatura; ao invés disso, elas são cobradas com cobrança padrão.

Os pontos de extremidade do lote são projetados para inferência de lote de execução prolongada. Ao invocar um ponto de extremidade em lote, você gera um trabalho em lote que executa a tarefa real.

Quando usar a implantação padrão, os pontos de extremidade online e em lotes

Implantação padrão:

Use implantações padrão para utilizar grandes modelos fundamentais para inferência em tempo real pronta para uso ou para ajuste fino desses modelos. Nem todos os modelos estão disponíveis para implantação em implantações padrão. É recomendável usar esse modo de implantação quando:

  • Seu modelo é um modelo fundamental ou uma versão ajustada de um modelo fundamental que está disponível para implantações padrão.
  • Você pode se beneficiar de uma implantação sem limites de cota.
  • Você não precisa personalizar a pilha de inferência usada para executar o modelo.

Pontos de extremidade online:

Utilize pontos de extremidade online para implementar operacionalmente modelos para inferência em tempo real em pedidos síncronos com baixa latência. É recomendável usá-los quando:

  • Seu modelo é um modelo fundamental ou uma versão ajustada de um modelo fundamental, mas não tem suporte na implantação padrão.
  • Você tem requisitos de latência baixa.
  • Seu modelo pode responder à solicitação em um período relativamente curto de tempo.
  • As entradas do modelo se encaixam no payload HTTP da solicitação.
  • Você precisa aumentar o número de solicitações.

Pontos de extremidade de processamento em lote:

Use pontos de extremidade em lote para operacionalizar modelos ou pipelines para inferência assíncrona de longa duração. É recomendável usá-los quando:

  • Você tem modelos ou pipelines caros que exigem um tempo mais longo para serem executados.
  • Você deseja implementar pipelines de machine learning e reutilizar componentes.
  • Você precisa executar inferência em grandes quantidades de dados que são distribuídos em vários arquivos.
  • Você não tem requisitos de baixa latência.
  • As entradas do modelo são armazenadas em uma conta de armazenamento ou em um ativo de dados Azure Machine Learning.
  • Você pode aproveitar a paralelização.

Comparação de endpoints de implantação padrão, online e em lote

Todas as implantações padrão, pontos de extremidade online e pontos de extremidade em lotes são baseados na ideia de pontos de extremidade, portanto, você pode fazer a transição facilmente de um para o outro. Pontos de extremidade online e em lote também são capazes de gerenciar várias implantações para o mesmo ponto de extremidade.

Pontos de extremidade

A tabela a seguir apresenta um resumo dos diferentes recursos disponíveis para implantações padrão, pontos de extremidade online e pontos de extremidade em lotes, todos no nível do ponto de extremidade.

Funcionalidade Implantações padrão Pontos de extremidade online Pontos de extremidade do lote
URL de invocação estável Sim Sim Sim
Suporte para várias implantações Não Sim Sim
Roteamento da implantação Nenhum Divisão de tráfego Mudar para o padrão
Espelhamento de tráfego para implementação segura Não Sim Não
Suporte para Swagger Sim Sim Não
Autenticação Chave Chave e ID do Microsoft Entra (versão prévia) Microsoft Entra ID
Suporte à rede privada (herdado) Não Sim Sim
Isolamento de rede gerenciado Sim Sim Sim (consulte a configuração adicional necessária)
Chaves gerenciadas pelo cliente NA Sim Sim
Base de custo Por ponto de extremidade, por minuto1 Nenhum Nenhum

1Uma pequena fração é cobrada pela implantação padrão por minuto. Consulte a seção de implantações para os custos relacionados ao consumo, que são cobrados com base em tokens.

Implantações

A tabela a seguir mostra um resumo dos diferentes recursos disponíveis para implantações padrão, pontos de extremidade online e pontos de extremidade em lotes no nível de implantação. Esses conceitos se aplicam a cada implantação no ponto de extremidade (para pontos de extremidade online e em lotes) e se aplicam a implantações padrão (em que o conceito de implantação é integrado ao ponto de extremidade).

Funcionalidade Implantações padrão Pontos de extremidade online Pontos de extremidade do lote
Tipos de implantação Modelos Modelos Modelos e componentes da linha de operação
Implantação de modelo do MLflow Não, apenas modelos específicos no catálogo Sim Sim
Implantação de modelo personalizado Não, apenas modelos específicos no catálogo Sim, com script de pontuação Sim, com script de pontuação
Servidor de inferência 2 Azure API de Inferência de Modelo de IA – Servidor de Inferência Azure Machine Learning
-Triton
- Personalizado (usando BYOC)
Inferência em Lote
Recurso de computação consumido Nenhum (sem servidor) Instâncias ou recursos granulares Instâncias de cluster
Tipo de computação Nenhum (sem servidor) Computação gerenciada e Kubernetes Computação gerenciada e Kubernetes
Computação de baixa prioridade NA Não Sim
Dimensionando a computação para zero Integrado Não Sim
Computação de dimensionamento automático3 Integrado Sim, com base no uso de recursos Sim, com base na contagem de trabalhos
Gerenciamento de excesso de capacidade Controle de Limitação Controle de Limitação Enfileiramento
Base de custo4 Por unidade de token Por implantação: instâncias de computação em execução Por trabalho: instâncias de computação consumidas no trabalho (limitado ao número máximo de instâncias do cluster)
Teste local de implantações Não Sim Não

2O servidor de inferência refere-se à tecnologia de serviço que aceita solicitações, processa-as e cria respostas. O servidor de inferência também determina o formato da entrada e as saídas esperadas.

3O dimensionamento automático é a capacidade de escalar ou reduzir dinamicamente os recursos alocados da implantação com base em sua carga. Implantações online e em lotes usam estratégias diferentes para dimensionamento automático. Enquanto as implantações online escalonam para cima e para baixo com base na utilização de recursos (como CPU, memória, solicitações etc.), os endpoints de lote são escalonados para cima ou para baixo com base no número de trabalhos criados.

4 As implantações online e em lote são cobradas pelos recursos consumidos. Em implantações online, os recursos são provisionados no momento da implantação. Em implantações em lote, os recursos não são consumidos no tempo de implantação, mas no momento em que o trabalho é executado. Portanto, não há nenhum custo associado à implantação em lote em si. Da mesma forma, os trabalhos enfileirados também não consomem recursos.

Interfaces de desenvolvedor

Os endpoints são projetados para ajudar as organizações a operacionalizar workloads de produção em Azure Machine Learning. Os pontos de extremidade são recursos robustos e escalonáveis e fornecem as melhores capacidades para implementar fluxos de trabalho de MLOps.

Você pode criar e gerenciar pontos de extremidade em lotes e online com várias ferramentas de desenvolvedor:

  • CLI do Azure e SDK Python
  • API REST/Azure Resource Manager
  • Portal da Web do estúdio Azure Machine Learning
  • portal Azure (TI/Administrador)
  • Suporte para pipelines de CI/CD MLOps usando as interfaces do CLI do Azure e REST/ARM