Compartilhar via


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

APLICA-SE A:Extensão ml da CLI do Azure v2 (atual)SDK do Python 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 na produção para que outras pessoas usem 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. No Azure Machine Learning, você executa inferência usando pontos de extremidade.

Pontos de extremidade e implantações

Um ponto de extremidade é uma URL estável e durá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. O Azure Machine Learning dá suporte a implantações padrão, pontos de extremidade online e pontos de extremidade 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 pontos de extremidade online e em lote, um ponto de extremidade 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 direcionar 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 sejam executados, você deve ter a 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.

Intuition

Suponha que você esteja trabalhando em um aplicativo que preveja o tipo e a cor de um carro de uma foto. Para esse 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 ponto de extremidade.

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 a computação, que são necessários para executar o modelo compõem uma implantação no ponto de extremidade.

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

Após alguns meses, a organização descobre que o aplicativo tem um desempenho ruim em imagens com más condições de iluminação. 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.

Pontos de extremidade: implantação padrão, online e lote

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

Implantações padrão e pontos de extremidade 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 cota de sua assinatura; em vez disso, eles são cobrados 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 o trabalho real.

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

Implantação padrão:

Use implantações padrão para consumir modelos fundamentais grandes para inferência em tempo real fora da prateleira ou para ajustar esses modelos. Nem todos os modelos estão disponíveis para implantação em implantações padrão. É recomendável usar este 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 cota.
  • Você não precisa personalizar a pilha de inferência usada para executar o modelo.

Pontos de extremidade online:

Use pontos de extremidade online para operacionalizar modelos para inferência em tempo real em solicitações síncronas de baixa latência. Recomendamos 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 baixa latência.
  • Seu modelo pode responder à solicitação em um período relativamente curto de tempo.
  • As entradas do modelo se encaixam no conteúdo HTTP da solicitação.
  • Você precisa escalar verticalmente em termos de número de solicitações.

Pontos de extremidade do lote:

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

  • Você tem modelos ou pipelines caros que exigem mais tempo de execução.
  • Você deseja operacionalizar pipelines de aprendizado de máquina e reutilizar componentes.
  • Você precisa executar a inferência em grandes quantidades de dados, distribuídas 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 do Azure Machine Learning.
  • Você pode aproveitar a paralelização.

Comparação entre a implantação padrão e os pontos de extremidade online e em lotes

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.

Endpoints

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 do ponto de extremidade.

Feature Implantações padrão Pontos de extremidade online Pontos de extremidade do lote
URL de invocação estável Yes Yes Yes
Suporte para várias implantações No Yes Yes
Roteamento da implantação None Divisão de tráfego Alternar para o padrão
Tráfego de espelhamento para uma distribuição segura No Yes No
Suporte do Swagger Yes Yes No
Authentication Key Key e Microsoft Entra ID (versão prévia) Microsoft Entra ID
Suporte à rede privada (herdado) No Yes Yes
Isolamento de rede gerenciada Yes Yes Sim (confira a configuração adicional necessária)
Chaves gerenciadas pelo cliente NA Yes Yes
Base de custo Por ponto de extremidade, por minuto1 None None

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

Deployments

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).

Feature Implantações padrão Pontos de extremidade online Pontos de extremidade do lote
Tipos de implantação Models Models Modelos e componentes do Pipeline
Implantação de modelo do MLflow Não, apenas modelos específicos no catálogo Yes Yes
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 3 API de inferência de modelo de IA do Azure - Servidor de Inferência do Azure Machine Learning
-Tritão
- Personalizado (por meio do BYOC)
Inferência do 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 No Yes
Dimensionar a computação para zero Built-in No Yes
Dimensionamento automático de computação4 Built-in Sim, com base no uso de recursos Sim, com base na contagem de trabalhos
Gerenciamento de excesso de capacidade Throttling Throttling Queuing
Base de custo5 Por 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 No Yes No

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. As implantações online e em lote usam estratégias diferentes para dimensionamento automático. Enquanto as implantações online escalam e reduzem verticalmente com base na utilização de recursos (como CPU, memória, solicitações etc.), os pontos de extremidade em lote são escalados verticalmente ou reduzidos 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 pontos de extremidade foram projetados para ajudar a organização a operacionalizar as cargas de trabalho de nível de produção no Azure Machine Learning. Os pontos de extremidade são recursos robustos e escalonáveis e fornecem os melhores recursos 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 do Python
  • Azure Resource Manager/API REST
  • Portal da Web do estúdio do Azure Machine Learning
  • Portal do Azure (TI/administrador)
  • Suporte para pipelines de CI/CD do MLOps usando a interface da CLI do Azure e as interfaces REST/ARM