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.
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.
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.
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
- Como implantar pontos de extremidade online com a CLI do Azure e o SDK do Python
- Como implantar modelos com pontos de extremidade em lote
- Como implantar pipelines com pontos de extremidade em lote
- Como usar endpoints online com o estúdio
- Como monitorar endpoints online gerenciados
- Gerir e aumentar as quotas dos recursos com o Azure Machine Learning