Inferência de aprendizagem automática durante a implantaçãoMachine learning inference during deployment

Ao implementar o seu modelo de IA durante a produção, tem de considerar como fará previsões.When deploying your AI model during production, you need to consider how it will make predictions. Os dois principais processos para os modelos de IA são:The two main processes for AI models are:

  • Inferência do lote: Um processo assíncronos que baseia as suas previsões num lote de observações.Batch inference: An asynchronous process that bases its predictions on a batch of observations. As previsões são armazenadas como ficheiros ou numa base de dados para utilizadores finais ou aplicações empresariais.The predictions are stored as files or in a database for end users or business applications.

  • Inferência em tempo real (ou interativa): Liberta o modelo para fazer previsões a qualquer momento e desencadear uma resposta imediata.Real-time (or interactive) inference: Frees the model to make predictions at any time and trigger an immediate response. Este padrão pode ser usado para analisar dados de streaming e aplicações interativas.This pattern can be used to analyze streaming and interactive application data.

Considere as seguintes questões para avaliar o seu modelo, comparar os dois processos e selecionar o que se adequa ao seu modelo:Consider the following questions to evaluate your model, compare the two processes, and select the one that suits your model:

  • Com que frequência devem ser geradas previsões?How often should predictions be generated?
  • Quando serão necessários os resultados?How soon are the results needed?
  • As previsões devem ser geradas individualmente, em pequenos lotes ou em grandes lotes?Should predictions be generated individually, in small batches, or in large batches?
  • Espera-se latência do modelo?Is latency to be expected from the model?
  • Quanto poder de computação é necessário para executar o modelo?How much compute power is needed to execute the model?
  • Existem implicações operacionais e custos para manter o modelo?Are there operational implications and costs to maintain the model?

A árvore de decisão que se segue pode ajudá-lo a determinar qual o modelo de implantação que melhor se adequa ao seu caso de utilização:The following decision tree can help you to determine which deployment model best fits your use case:

Um diagrama da árvore de decisão de inferência em tempo real ou lote.A diagram of the real-time or batch inference decision tree.

Inferência do loteBatch inference

A inferência do lote, por vezes chamada de inferência offline, é um processo de inferência mais simples que ajuda os modelos a executar em intervalos cronometrado e aplicações de negócio para armazenar previsões.Batch inference, sometimes called offline inference, is a simpler inference process that helps models to run in timed intervals and business applications to store predictions.

Considere as seguintes boas práticas para inferência do lote:Consider the following best practices for batch inference:

  • Pontuação do lote do gatilho: Utilize os oleodutos Azure Machine Learning e a ParallelRunStep funcionalidade no Azure Machine Learning para configurar uma programação ou automatização baseada em eventos.Trigger batch scoring: Use Azure Machine Learning pipelines and the ParallelRunStep feature in Azure Machine Learning to set up a schedule or event-based automation. Navegue no show de IA para realizar inferência ParallelRunStep de lote usando Azure Machine Learning e saiba mais sobre o processo.Navigate to the AI show to perform batch inference using Azure Machine Learning ParallelRunStep and learn more about the process.

  • Opções de cálculo para inferência do lote: Uma vez que os processos de inferência do lote não funcionam continuamente, é aconselhável iniciar, parar e escalar automaticamente os aglomerados reutilizáveis que podem lidar com uma série de cargas de trabalho.Compute options for batch inference: Since batch inference processes don't run continuously, it's recommended to automatically start, stop, and scale reusable clusters that can handle a range of workloads. Diferentes modelos requerem diferentes ambientes, e a sua solução precisa de ser capaz de implementar um ambiente específico e removê-lo quando a inferência terminar para que o cálculo esteja disponível para o próximo modelo.Different models require different environments, and your solution needs to be able to deploy a specific environment and remove it when inference is over for the compute to be available for the next model. Consulte a seguinte árvore de decisão para identificar a instância de computação certa para o seu modelo:See the following decision tree to identify the right compute instance for your model:

    Um diagrama da árvore de decisão do cálculo.A diagram of the compute decision tree.

  • Implementar inferência de lote: O Azure suporta múltiplas funcionalidades para a inferência do lote.Implement batch inference: Azure supports multiple features for batch inference. Uma das ParallelRunStep funcionalidades encontra-se no Azure Machine Learning, que permite aos clientes obter insights de terabytes de dados estruturados ou não estruturados armazenados em Azure.One feature is ParallelRunStep in Azure Machine Learning, which allows customers to gain insights from terabytes of structured or unstructured data stored in Azure. ParallelRunStep fornece paralelismo fora da caixa e trabalha dentro dos oleodutos Azure Machine Learning.ParallelRunStep provides out-of-the-box parallelism and works within Azure Machine Learning pipelines.

  • Desafios de inferência do lote: Embora a inferência do lote seja uma forma mais simples de utilizar e implementar o seu modelo na produção, apresenta desafios selecionados:Batch inference challenges: While batch inference is a simpler way to use and deploy your model in production, it does present select challenges:

    • Dependendo da frequência com que a inferência é executado, os dados produzidos podem ser irrelevantes no momento em que são acedidos.Depending on the frequency at which inference runs, the data produced could be irrelevant by the time it's accessed.

    • Uma variação do problema do arranque a frio; os resultados podem não estar disponíveis para novos dados.A variation of the cold-start problem; results might not be available for new data. Por exemplo, se um novo utilizador criar e contar e começar a fazer compras com um sistema de recomendação de retalho, as recomendações do produto só estarão disponíveis após a execução da próxima inferência do lote.For example, if a new user creates and account and starts shopping with a retail recommendation system, product recommendations won't be available until after the next batch inference run. Se este é um obstáculo para o seu caso de uso, considere inferência em tempo real.If this is an obstacle for your use case, consider real-time inference.

    • Implantar em muitas regiões e alta disponibilidade não são preocupações críticas num cenário de inferência de lote.Deploying to many regions and high availability aren't critical concerns in a batch inference scenario. O modelo não precisa de ser implementado regionalmente, e a loja de dados pode precisar de ser implementada com uma estratégia de alta disponibilidade em muitos locais.The model doesn't need to be deployed regionally, and the data store might need to be deployed with a high-availability strategy in many locations. Isto seguirá normalmente o design e estratégia da aplicação HA.This will normally follow the application HA design and strategy.

Inferência em tempo realReal-time inference

Inferência em tempo real, ou interativa, é a arquitetura onde a inferência do modelo pode ser desencadeada a qualquer momento, e espera-se uma resposta imediata.Real-time, or interactive, inference is architecture where model inference can be triggered at any time, and an immediate response is expected. Este padrão pode ser usado para analisar dados de streaming, dados de aplicações interativas, e muito mais.This pattern can be used to analyze streaming data, interactive application data, and more. Este modo permite-lhe tirar partido do seu modelo de aprendizagem automática em tempo real e resolve o problema de arranque a frio acima descrito na inferência do lote.This mode allows you to take advantage of your machine learning model in real time and resolves the cold-start problem outlined above in batch inference.

As seguintes considerações e boas práticas estão disponíveis se a inferência em tempo real for certa para o seu modelo:The following considerations and best practices are available if real-time inference is right for your model:

  • Os desafios da inferência em tempo real: Os requisitos de latência e desempenho tornam a arquitetura de inferência em tempo real mais complexa para o seu modelo.The challenges of real-time inference: Latency and performance requirements make real-time inference architecture more complex for your model. Um sistema poderá ter de responder em 100 milissegundos ou menos, durante os quais necessita de recuperar os dados, realizar inferência, validar e armazenar os resultados do modelo, executar qualquer lógica de negócio necessária e devolver os resultados ao sistema ou aplicação.A system might need to respond in 100 milliseconds or less, during which it needs to retrieve the data, perform inference, validate and store the model results, run any required business logic, and return the results to the system or application.

  • Opções de cálculo para inferência em tempo real: A melhor forma de implementar inferência em tempo real é implantar o modelo em forma de recipiente para o aglomerado Docker ou AKS e expô-lo como um serviço web com REST API.Compute options for real-time inference: The best way to implement real-time inference is to deploy the model in a container form to Docker or AKS cluster and expose it as a web-service with REST API. Desta forma, o modelo executa em seu próprio ambiente isolado e pode ser gerido como qualquer outro serviço web lá.This way, the model executes in its own isolated environment and can be managed like any other web service there. As capacidades do Docker/AKS podem então ser usadas para gestão, monitorização, escala e muito mais.Docker/AKS capabilities can then be used for management, monitoring, scaling, and more. O modelo pode ser implantado no local, na nuvem ou na borda.The model can be deployed on-premises, in the cloud, or on the edge. A decisão computacional anterior descreve a inferência em tempo real.The preceding compute decision outlines real-time inference.

  • Implantação multi-regional e elevada disponibilidade: A implantação regional e as arquiteturas de elevada disponibilidade devem ser consideradas em cenários de inferência em tempo real, uma vez que a latência e o desempenho do modelo serão cruciais para resolver.Multiregional deployment and high availability: Regional deployment and high availability architectures need to be considered in real-time inference scenarios, as latency and the model's performance will be critical to resolve. Para reduzir a latência em implementações multi-regionais, recomenda-se localizar o modelo o mais próximo possível do ponto de consumo.To reduce latency in multiregional deployments, it's recommended to locate the model as close as possible to the consumption point. O modelo e a infraestrutura de apoio devem seguir a elevada disponibilidade do negócio e os princípios e estratégias dr.The model and supporting infrastructure should follow the business' high availability and DR principles and strategy.

Cenário de muitos modelosMany-models scenario

Um modelo singular pode não ser capaz de capturar a natureza complexa dos problemas do mundo real, como prever vendas para um supermercado onde a demografia, a marca, os SKUs e outras funcionalidades podem fazer com que o comportamento do cliente varie significativamente.A singular model might not be able to capture the complex nature of real-world problems, such as predicting sales for a supermarket where demographics, brand, SKUs, and other features could cause customer behavior to vary significantly. As regiões podem fazer com que o desenvolvimento da manutenção preditiva para os contadores inteligentes também varie significativamente.Regions could cause developing predictive maintenance for smart meters to also vary significantly. Ter muitos modelos para estes cenários para capturar dados regionais ou relações ao nível da loja poderia produzir uma maior precisão do que um único modelo.Having many models for these scenarios to capture regional data or store-level relationships could produce higher accuracy than a single model. Esta abordagem pressupõe que existem dados suficientes para este nível de granularidade.This approach assumes that enough data is available for this level of granularity.

A um nível elevado, um cenário de muitos modelos ocorre em três fases: fonte de dados, ciência de dados e muitos modelos.At a high level, a many-models scenario occurs in three stages: data source, data science, and many models.

Um diagrama de um cenário de muitos modelos.A diagram of a many-models scenario.

Fonte de dados: É importante segmentar dados sem muitos cardeais na fase de origem de dados.Data source: It's important to segment data without too many cardinalities in the data source stage. O ID ou código de barras do produto não deve ser contabilizado na divisória principal, pois isso produzirá demasiados segmentos e poderá inibir modelos significativos.The product ID or barcode shouldn't be factored into the main partition, as this will produce too many segments and could inhibit meaningful models. A marca, SKU ou localidade poderia ser mais adequado.The brand, SKU, or locality could be more fitting features. Também é importante homogeneizar os dados removendo anomalias que distorceriam a distribuição de dados.It's also important to homogenize the data by removing anomalies that would skew data distribution.

Ciência dos dados: Várias experiências são paralelas a cada partição de dados na fase da ciência dos dados.Data science: Several experiments run parallel to each data partition in the data science stage. Este é um processo tipicamente iterativo onde os modelos das experiências são avaliados para determinar o melhor.This is a typically iterative process where models from the experiments are evaluated to determine the best one.

Muitos modelos: Os melhores modelos para cada segmento ou categoria estão registados no registo de modelos.Many models: The best models for each segment or category are registered in the model registry. Atribua nomes significativos aos modelos, o que os tornará mais detetáveis para inferência.Assign meaningful names to the models, which will make them more discoverable for inference. Utilize a marcação sempre que necessário para agrupar o modelo em categorias específicas.Use tagging where necessary to group the model into specific categories.

Inferência de lote para muitos modelosBatch inference for many models

Durante a inferência do lote para muitos modelos, as previsões são tipicamente programadas, recorrentes, e podem lidar com grandes volumes de dados em execução ao mesmo tempo.During batch inference for many models, predictions are typically scheduled, recurring, and they can handle large volumes of data running at the same time. Ao contrário de um cenário de modelo único, muitos modelos inferência ao mesmo tempo, e é importante selecionar os corretos.Unlike in a single-model scenario, many models inference at the same time, and it's important to select the correct ones. O diagrama a seguir mostra o padrão de referência para a inferência do lote de muitos modelos:The following diagram shows the reference pattern for many-models batch inference:

Um diagrama do padrão de referência para inferência de lote de muitos modelos.A diagram of the reference pattern for many-models batch inference.

O objetivo principal deste padrão é observar o modelo e executar vários modelos simultaneamente para alcançar uma solução de inferência altamente escalável que possa lidar com grandes volumes de dados.The core purpose of this pattern is to observe the model and run multiple models simultaneously to achieve a highly scalable inference solution that can handle large data volumes. Para alcançar a inferência do modelo hierárquico, muitos modelos podem ser divididos em categorias.To achieve hierarchical model inference, many models can be split into categories. Cada categoria pode ter o seu próprio armazenamento de inferências, como um lago de dados Azure.Each category can have its own inference storage, like an Azure data lake. Ao implementar este padrão, é necessário equilibrar a escala dos modelos de forma horizontal e vertical, uma vez que isso teria impacto no custo e no desempenho.When implementing this pattern, one needs to balance scaling the models horizontally and vertically, as this would impact the cost and performance. Executar muitas instâncias de modelo pode aumentar o desempenho, mas impactar o custo.Running too many model instances might increase performance but impact the cost. Muito poucos casos com nódoas altas especificações podem ser mais eficazes em termos de custos, mas podem causar problemas com a escala.Too few instances with high spec nodes might be more cost effective but could cause issues with scaling.

Inferência em tempo real para muitos modelosReal-time inference for many models

A inferência de muitos modelos em tempo real requer baixa latência e pedidos a pedido, tipicamente através de um ponto final REST.Real-time many-models inference requires low latency and on-demand requests, typically via a REST endpoint. Isto é útil quando aplicações ou serviços externos requerem uma interface padrão para interagir com o modelo, tipicamente através de uma interface REST com uma carga útil JSON.This is useful when external applications or services require a standard interface to interact with the model, typically via a REST interface with a JSON payload.

Um diagrama de inferência em tempo real de muitos modelos.A diagram of many-models real-time inference.

O objetivo principal deste padrão é usar o serviço de descoberta para identificar uma lista de serviços e seus metadados.The core purpose of this pattern is to use the discovery service to identify a list of services and their metadata. Isto pode ser implementado como uma função Azure e permite que os clientes obtenham detalhes de serviço relevantes de serviço, que podem ser invocados com um REST URI seguro.This can be implemented as an Azure function and enables clients to obtain relevant service details of service, that can be invoked with a secure REST URI. Uma carga JSON será enviada para o serviço, que convocaria o modelo relevante e forneceria uma resposta JSON de volta ao cliente.A JSON payload be sent to the service, which would summon the relevant model and provide a JSON response back to the client.

Cada serviço é um microserviço apátrida que pode lidar com vários pedidos simultaneamente e está limitado ao recurso de máquina virtual física.Each service is stateless microservice that can handle multiple requests simultaneously and is limited to the physical virtual machine resource. O serviço pode implementar vários modelos se vários grupos forem selecionados; agrupamentos homogéneos como a categoria, SKU, e muito mais são recomendados para isso.The service can deploy multiple models if multiple groups are selected; homogeneous groupings like the category, SKU, and more are recommended for this. O mapeamento entre o pedido de serviço e o modelo selecionado para um determinado serviço tem de ser assado na lógica da inferência, tipicamente através do script de pontuação.The mapping between the service request and model selected for a given service needs to be baked into the inference logic, typically via the score script. Se o tamanho dos modelos for relativamente pequeno (alguns megabytes), recomenda-se carregá-los na memória por razões de desempenho; caso contrário, cada modelo pode ser carregado dinamicamente por pedido.If the size of models is relatively small (a few megabytes), it's recommended to load them in memory for performance reasons; otherwise, each model can be loaded dynamically per request.

Passos seguintesNext steps

Explore os seguintes recursos para saber mais sobre a inferencing com a Azure Machine Learning:Explore the following resources to learn more about inferencing with Azure Machine Learning: