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

APLICA-SE A:Extensão de ML da CLI do Azure v2 (atual)SDK do Python azure-ai-ml v2 (atual)

Depois de você treinar modelos ou pipelines de machine learning, você precisa implantá-los na produção para que outras pessoas possam usá-los para inferência. Inferência é o processo de aplicação de novos dados de entrada ao modelo de machine learning ou pipeline para gerar saídas. Embora essas saídas normalmente sejam chamadas de "previsões", a inferência pode ser usada para gerar saídas para outras tarefas de aprendizado de máquina, como classificação e clustering. No Azure Machine Learning, você executa a inferência usando pontos de extremidade e implantações. Pontos de extremidade e implantações permitem que você desacople a interface da carga de trabalho de produção da implementação que a atende.

Intuição

Suponhamos que você está trabalhando em um aplicativo que precisa prever o tipo e a cor de um carro a partir da sua 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 obtém 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.

A diagram showing the concept of an endpoint.

Além disso, digamos que uma cientista de dados, Alice, esteja trabalhando na implementação do aplicativo. Alice sabe muito sobre o TensorFlow e decide implementar o modelo usando um classificador sequencial Keras com uma arquitetura RestNet do TensorFlow Hub. Depois de testar o modelo, Alice fica feliz com seus resultados e decide usar o modelo para resolver o problema de previsão do carro. O modelo é grande em tamanho 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.

A diagram showing the concept of a deployment.

Por fim, vamos imaginar que, depois de alguns meses, a organização descobre que o aplicativo tem um desempenho ruim em imagens com condições de iluminação abaixo do ideal. Paulo, outro cientista de dados, tem muito conhecimento sobre técnicas de argumentação de dados que ajudam um modelo a criar robustez nesse fator. No entanto, Paulo se sente mais confortável usando Torch para implementar o modelo e treina um novo modelo com Torch. Paulo deseja experimentar esse modelo em produção gradualmente até que a organização esteja pronta para desativar o modelo antigo. O novo modelo também mostra melhor desempenho quando implantado na GPU, portanto, a implantação precisa incluir uma GPU. Nesse cenário, o modelo de Paulo 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.

A diagram showing the concept of an endpoint with multiple deployments.

Pontos de extremidade e implantações

Um ponto de extremidade é uma URL estável e durável que poder ser usada para solicitar ou invocar um modelo. Você fornece as entradas necessárias para o ponto de extremidade e obtém as saídas de volta. 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 e
  • 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 pode conter várias implantações. Essas implantações podem hospedar ativos independentes e consumir recursos diferentes com base nas necessidades dos ativos. Os pontos de extremidade têm um mecanismo de roteamento que pode direcionar solicitações para implantações específicas no ponto de extremidade.

Para funcionar corretamente, cada ponto de extremidade deve ter pelo menos uma implantação. Os pontos de extremidade e as implantações são recursos do Azure Resource Manager independentes que aparecem no portal do Azure.

Pontos de extremidade online e em lote

O Azure Machine Learning permite implementar pontos de extremidade online e pontos de extremidade em lote. Os 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. Os pontos de extremidade do lote, por outro lado, são projetados para inferência de lote de longa execução. Cada vez que você invoca um ponto de extremidade em lote, gera um trabalho em lotes que executa o trabalho real.

Quando usar o ponto de extremidade online versus em lote para seu caso de uso

Use os 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:

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

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 de pontos de extremidade online e em lotes

Os pontos de extremidade online e em lote são baseados na ideia de pontos de extremidade e implantações, que ajudam você a fazer a transição facilmente de um para o outro. No entanto, ao mudar de um para outro, há algumas diferenças que são importantes levar em conta. Algumas dessas diferenças se devem à natureza do trabalho:

Pontos de extremidade

A tabela a seguir mostra um resumo dos diferentes recursos nos pontos de extremidade online e em lote.

Recurso Pontos de Extremidade online Pontos de extremidade em lotes
URL de invocação estável Sim Yes
Suporte para várias implantações Yes Sim
Roteamento da implantação Divisão de tráfego Alternar para o padrão
Tráfego de espelhamento para uma distribuição segura Sim Não
Suporte para o Swagger Sim No
Autenticação Chave e token ID do Microsoft Entra
Suporte à rede privada Sim Yes
Isolamento de rede gerenciada Sim Sim (confira a configuração adicional necessária)
Chaves gerenciadas pelo cliente Sim Yes
Base de custo Nenhum Nenhum

Implantações

A tabela a seguir mostra um resumo dos diferentes recursos disponíveis para os pontos de extremidade online e do lote no nível de implantação. Esses conceitos se aplicam para cada implantação no ponto de extremidade.

Recurso Pontos de Extremidade online Pontos de extremidade em lotes
Tipos de implantação Modelos Modelos e componentes do Pipeline
Implantação de modelo do MLflow Sim Yes
Implantação do modelo personalizado Sim, com script de pontuação Sim, com script de pontuação
Implantação de pacote do modelo 1 Sim (versão prévia) Não
Servidor de inferência 2 - Servidor de Inferência do Azure Machine Learning
- Triton
- Personalizado (por meio do BYOC)
Inferência de lote
Recurso de computação consumido Instâncias ou recursos granulares Instâncias de cluster
Tipo de computação Computação gerenciada e Kubernetes Computação gerenciada e Kubernetes
Computação de baixa prioridade Não Sim
Dimensionar a computação para zero No Sim
Computação de dimensionamento automático3 Sim, com base na carga dos recursos Sim, com base na contagem de trabalhos
Gerenciamento de excesso de capacidade Limitação Colocando na fila
Base de custo4 Por implantação: instâncias de computação em execução Por trabalho: computação em instância consumida no trabalho (limitado ao número máximo de instâncias do cluster).
Teste local de implantações Yes Não

1 A implantação de modelos MLflow em pontos de extremidade sem conectividade de saída com a Internet ou redes privadas requer empacotamento do modelo primeiro.

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

3Dimensionamento automático é a capacidade de escalar ou reduzir verticalmente 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. No entanto, na implantação em lote, nenhum recurso é consumido no momento da implantação, mas quando o trabalho é executado. Portanto, não há nenhum custo associado à implantação em si. Observe que os trabalhos enfileirados também não consomem recursos.

Interfaces do desenvolvedor

Os pontos de extremidade foram projetados para ajudar a organização a operacionalizar 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 o melhor dos recursos para implementar fluxos de trabalho de MLOps.

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

  • A CLI do Azure e o 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

Próximas etapas