Parâmetros de avaliação para inferência na produção

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

Depois de treinar modelos ou pipelines de aprendizado de máquina, 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 ou pipeline de aprendizado de máquina para gerar saídas. Embora essas saídas sejam normalmente 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 inferências usando pontos de extremidade e implantações. Pontos de extremidade e implantações permitem que você desacople a interface de sua carga de trabalho de produção da implementação que a atende.

Intuição

Suponha que você esteja trabalhando em um aplicativo que prevê o tipo e a cor de um carro, dada sua foto. Para este aplicativo, um usuário com certas 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.

A diagram showing the concept of an endpoint.

Além disso, digamos que uma cientista de dados, Alice, está 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, necessários para executar o modelo compõem uma implantação sob o ponto de extremidade.

A diagram showing the concept of a deployment.

Finalmente, 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. Bob, outro cientista de dados, sabe muito sobre técnicas de aumento de dados que ajudam um modelo a construir robustez sobre esse fator. No entanto, Bob se sente mais confortável usando Torch para implementar o modelo e treina um novo modelo com Torch. Bob quer experimentar este modelo em produção gradualmente até que a organização esteja pronta para aposentar 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 Bob e os recursos, como o código e a computação, necessários para executar o modelo compõem outra implantação sob o 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 pode 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:

  • um 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 cálculos necessários para hospedar o modelo ou componente que faz a inferência real. Um único ponto de extremidade pode conter várias implantações. Essas implantações podem hospedar ativos independentes e consumir diferentes recursos 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. Pontos de extremidade e implantações são recursos independentes do Azure Resource Manager que aparecem no portal do Azure.

Pontos finais 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 de lote, por outro lado, são projetados para inferência em lote de longa duração. Cada vez que você invoca um ponto de extremidade em lote, você gera um trabalho em lote que executa o trabalho real.

Quando usar o ponto de extremidade online vs batch para o seu caso de uso

Use pontos de extremidade on-line 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.
  • O seu modelo pode responder ao pedido num período de tempo relativamente curto.
  • As entradas do seu modelo cabem na carga HTTP da solicitação.
  • Você precisa aumentar a escala 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 para serem executados.
  • Você deseja operacionalizar pipelines de aprendizado de máquina e reutilizar componentes.
  • Você precisa executar inferência sobre 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 seu modelo são armazenadas em uma conta de armazenamento ou em um ativo de dados do Azure Machine Learning.
  • Você pode tirar proveito da paralelização.

Comparação de endpoints on-line e em lote

Tanto os endpoints online quanto os em lote são baseados na ideia de endpoints e implantações, que ajudam você a fazer a transição facilmente de um para o outro. No entanto, ao passar de um para outro, existem algumas diferenças que é importante ter em conta. Algumas destas diferenças devem-se à natureza do trabalho:

Pontos finais

A tabela a seguir mostra um resumo dos diferentes recursos disponíveis para endpoints online e em lote.

Funcionalidade Pontos finais online Pontos finais de lote
URL de invocação estável Sim Sim
Suporte para várias implantações Sim Sim
Roteamento da implantação Divisão de tráfego Mudar para o padrão
Tráfego espelhado para uma implementação segura Sim No
Suporte Swagger Sim No
Autenticação Chave e token Microsoft Entra ID
Suporte de rede privada Sim Sim
Isolamento de rede gerenciado Sim Sim (consulte a configuração adicional necessária)
Chaves geridas pelo cliente Sim Sim
Base de custos None None

Implementações

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

Funcionalidade Pontos finais online Pontos finais de lote
Tipos de implementação Modelos Modelos e componentes de pipeline
Implantação do modelo MLflow Sim Sim
Implantação de modelo personalizado Sim, com roteiro de pontuação Sim, com roteiro de pontuação
Implantação do pacote de modelo 1 Sim (pré-visualização) Não
Servidor de inferência 2 - Servidor de Inferência do Azure Machine Learning
- Tritão
- Personalizado (usando BYOC)
Inferência em lote
Recursos de computação consumidos 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
Dimensionamento da computação para zero Não Sim
Computaçãode dimensionamento automático 3 Sim, com base na carga de recursos Sim, com base na contagem de empregos
Gestão da capacidade excedentária Limitação Filas de espera
Base de custos4 Por implantação: instâncias de computação em execução Por trabalho: instância de computação consumida no trabalho (limitada ao número máximo de instâncias do cluster).
Testes locais de implantações Sim No

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

2 Servidor 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 dita o formato da entrada e as saídas esperadas.

3 O dimensionamento automático é a capacidade de aumentar ou reduzir dinamicamente os recursos alocados da implantação com base em sua carga. As implantações on-line e em lote usam diferentes estratégias para dimensionamento automático. Enquanto as implantações on-line aumentam e diminuem a escala com base na utilização de recursos (como CPU, memória, solicitações, etc.), os pontos de extremidade em lote aumentam ou diminuem com base no número de trabalhos criados.

4 Tanto as implantações on-line quanto as implantações 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á custo associado à implantação em si. Observe que os trabalhos enfileirados também não consomem recursos.

Interfaces de desenvolvimento

Os pontos de extremidade são projetados para ajudar as organizações a operacionalizar cargas de trabalho no nível de produção no Aprendizado de Máquina do Azure. Os endpoints são recursos robustos e escaláveis e fornecem o melhor dos recursos para implementar fluxos de trabalho MLOps.

Você pode criar e gerenciar endpoints em lote e online com várias ferramentas de desenvolvedor:

  • A CLI do Azure e o SDK do Python
  • Azure Resource Manager/API REST
  • Portal Web do estúdio do Azure Machine Learning
  • Portal do Azure (IT/Admin)
  • Suporte para pipelines de CI/CD MLOps usando a interface CLI do Azure & interfaces REST/ARM

Próximos passos