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 ou encontrar modelos do catálogo de modelos que atendam às suas necessidades, você precisa implantá-los na produção para que outros possam usá-los para inferência. Inferência é o processo de aplicação de novos dados de entrada a um 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.

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. O Azure Machine Learning permite implementar pontos de extremidade de API sem servidor, pontos de extremidade online e pontos de extremidade em lote. 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 ponto de extremidade contém uma implantação e, 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. Além disso, um ponto de extremidade tem um mecanismo de roteamento que pode direcionar solicitações para qualquer uma de suas implantações.

Por um lado, 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 uma cota de computação em sua assinatura do Azure. Por outro lado, alguns modelos suportam uma implantação sem servidor, permitindo que eles não consumam nenhuma cota da sua assinatura. Para implantação sem servidor, você é cobrado com base no uso.

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.

Um diagrama mostrando o conceito de 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.

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

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.

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

Pontos de extremidade: API sem servidor, online e em lote

O Azure Machine Learning permite implementar pontos de extremidade de API sem servidor, pontos de extremidade online e pontos de extremidade em lote.

Os pontos de extremidade de API sem servidor e os pontos de extremidade on-line são projetados para inferência em tempo real. Sempre que você invoca o ponto de extremidade, os resultados são retornados na resposta do ponto de extremidade. Os pontos de extremidade de API sem servidor não consomem cota da sua assinatura; em vez disso, eles são cobrados com faturamento pré-pago.

Os pontos de extremidade de lote são projetados para inferência em lote de longa duração. Sempre que você invoca um ponto de extremidade em lote, gera um trabalho em lote que executa o trabalho real.

Quando usar API sem servidor, pontos de extremidade online e em lote

Pontos de extremidade de API sem servidor:

Use pontos de extremidade de API sem servidor para consumir grandes modelos fundamentais para inferência em tempo real pronta para uso ou para ajustar esses modelos. Nem todos os modelos estão disponíveis para implantação em pontos de extremidade de API sem servidor. Recomendamos o uso desse 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 de API sem servidor.
  • Você pode se beneficiar de uma implantação sem cota.
  • Não é necessário personalizar a pilha de inferência usada para executar o modelo.

Pontos finais online:

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:

  • Seu modelo é um modelo fundamental ou uma versão ajustada de um modelo fundamental, mas não é suportado em pontos de extremidade de API sem servidor.
  • 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.

Pontos finais de 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 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 API sem servidor, on-line e pontos de extremidade em lote

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

Pontos finais

A tabela a seguir mostra um resumo dos diferentes recursos disponíveis para API sem servidor, online e pontos de extremidade em lote no nível do ponto de extremidade.

Caraterística Pontos de extremidade de API sem servidor Pontos finais online Pontos finais de lote
URL de invocação estável Sim Sim Sim
Suporte para várias implantações Não Sim Sim
Roteamento da implantação Nenhuma Divisão de tráfego Mudar para o padrão
Tráfego espelhado para uma implementação segura Não Sim No
Suporte Swagger Sim Sim No
Autenticação Chave Chave e ID do Microsoft Entra (pré-visualização) Microsoft Entra ID
Suporte de rede privada (legado) Não Sim Sim
Isolamento de rede gerenciado Sim Sim Sim (consulte a configuração adicional necessária)
Chaves geridas pelo cliente ND Sim Sim
Base de custos Por parâmetro de avaliação, por minuto1 Nenhuma Nenhuma

1 Uma pequena fração é cobrada por pontos de extremidade de API sem servidor por minuto. Consulte a seção de implantações para obter os encargos relacionados ao consumo, que são cobrados por token.

Implementações

A tabela a seguir mostra um resumo dos diferentes recursos disponíveis para API sem servidor, online e pontos de extremidade em lote no nível de implantação. Esses conceitos se aplicam a cada implantação sob o ponto de extremidade (para pontos de extremidade online e em lote) e se aplicam a pontos de extremidade de API sem servidor (onde o conceito de implantação é incorporado ao ponto de extremidade).

Caraterística Pontos de extremidade de API sem servidor Pontos finais online Pontos finais de lote
Tipos de implementação Modelos Modelos Modelos e componentes de pipeline
Implantação do modelo 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 roteiro de pontuação Sim, com roteiro de pontuação
Implantação do pacote de modelo 2 Incorporada Sim (pré-visualização) Não
Servidor de inferência 3 API de Inferência de Modelos do Azure AI - Servidor de Inferência do Azure Machine Learning
- Tritão
- Personalizado (usando BYOC)
Inferência em lote
Recursos de computação consumidos 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 ND Não Sim
Dimensionamento da computação para zero Incorporada Não Sim
Computaçãode dimensionamento automático 4 Incorporada Sim, com base na utilização de recursos Sim, com base na contagem de empregos
Gestão da capacidade excedentária Limitação Limitação Filas de espera
Base de custos5 Por token 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 Não Sim No

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

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

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

5 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. Na implantação em lote, os recursos não são consumidos no momento da implantação, mas no momento em que o trabalho é executado. Portanto, não há custo associado à implantação em lote em si. Da mesma forma, os trabalhos em fila 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 os melhores 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