Integrar um modelo
Você deve planejar como integrar o modelo, pois isso afeta como você treina o modelo ou quais dados de treinamento você usa. Para integrar o modelo, você precisa implantar um modelo em um ponto de extremidade. Você pode implantar um modelo em um ponto de extremidade para previsões em tempo real ou em lote.
Implantar um modelo em um ponto de extremidade
Quando você treina um modelo, o objetivo geralmente é integrar o modelo em um aplicativo.
Para integrar facilmente um modelo em um aplicativo, você pode usar pontos de extremidade. Simplificando, um ponto de extremidade pode ser um endereço da Web que um aplicativo pode chamar para receber uma mensagem de volta.
Ao implantar um modelo em um ponto de extremidade, você tem duas opções:
- Obtenha previsões em tempo real
- Obter previsões em lote
Obtenha previsões em tempo real
Se você quiser que o modelo marque quaisquer novos dados à medida que chegam, você precisa de previsões em tempo real.
As previsões em tempo real são frequentemente necessárias quando um modelo é utilizado por uma aplicação, como uma aplicação móvel ou um website.
Imagine que você tem um site que contém seu catálogo de produtos:
- Um cliente seleciona um produto em seu site, como uma camisa.
- Com base na seleção do cliente, o modelo recomenda outros itens do catálogo de produtos imediatamente. O site exibe as recomendações do modelo.
Um cliente pode selecionar um produto na loja online a qualquer momento. Você quer que o modelo encontre as recomendações quase imediatamente. O tempo que a página web leva para carregar e exibir os detalhes da camisa é o tempo que deve levar para obter as recomendações ou previsões. Então, quando a camisa é exibida, as recomendações também podem ser exibidas.
Obter previsões em lote
Se você quiser que o modelo marque novos dados em lotes e salve os resultados como um arquivo ou em um banco de dados, precisará de previsões em lote.
Por exemplo, você pode treinar um modelo que prevê as vendas de suco de laranja para cada semana futura. Ao prever as vendas de suco de laranja, você pode garantir que a oferta seja suficiente para atender à demanda esperada.
Imagine que você está visualizando todos os dados históricos de vendas em um relatório. Convém incluir as vendas previstas no mesmo relatório.
Embora o suco de laranja seja vendido ao longo do dia, você só quer calcular a previsão uma vez por semana. Você pode coletar os dados de vendas ao longo da semana e ligar para o modelo somente quando tiver os dados de vendas de uma semana inteira. Uma coleção de pontos de dados é chamada de lote.
Decida entre implantação em tempo real ou em lote
Para decidir se deseja projetar uma solução de implantação em tempo real ou em lote, você precisa considerar as seguintes perguntas:
- Com que frequência devem ser geradas previsões?
- Em quanto tempo são necessários os resultados?
- As previsões devem ser geradas individualmente ou em lotes?
- Quanto poder de computação é necessário para executar o modelo?
Identificar a frequência necessária de pontuação
Um cenário comum é que você está usando um modelo para pontuar novos dados. Antes de obter previsões em tempo real ou em lote, você deve primeiro coletar os novos dados.
Existem várias formas de gerar ou recolher dados. Novos dados também podem ser coletados em diferentes intervalos de tempo.
Por exemplo, você pode coletar dados de temperatura de um dispositivo de Internet das Coisas (IoT) a cada minuto. Pode obter dados transacionais sempre que um cliente compra um produto na sua loja online. Ou você pode extrair dados financeiros de um banco de dados a cada três meses.
Geralmente, existem dois tipos de casos de uso:
- Você precisa do modelo para pontuar os novos dados assim que eles chegam.
- Você pode agendar ou acionar o modelo para pontuar os novos dados coletados ao longo do tempo.
Se você deseja previsões em tempo real ou em lote, não depende necessariamente da frequência com que novos dados são coletados. Em vez disso, depende de quantas vezes e com que rapidez você precisa que as previsões sejam geradas.
Se você precisar das previsões do modelo imediatamente quando novos dados forem coletados, precisará de previsões em tempo real. Se as previsões do modelo forem consumidas apenas em determinados momentos, você precisará de previsões em lote.
Decida o número de previsões
Outra questão importante a se fazer é se você precisa que as previsões sejam geradas individualmente ou em lotes.
Uma maneira simples de ilustrar a diferença entre previsões individuais e em lote é imaginar uma tabela. Suponha que você tenha uma tabela de dados do cliente onde cada linha representa um cliente. Para cada cliente, você tem alguns dados demográficos e comportamentais, como quantos produtos eles compraram na sua loja virtual e quando foi a última compra.
Com base nesses dados, você pode prever a rotatividade de clientes: se um cliente comprará em sua loja virtual novamente ou não.
Depois de treinar o modelo, você pode decidir se deseja gerar previsões:
- Individualmente: o modelo recebe uma única linha de dados e retorna se esse cliente individual comprará ou não novamente.
- Lote: O modelo recebe várias linhas de dados em uma tabela e retorna se cada cliente comprará ou não novamente. Os resultados são agrupados em uma tabela que contém todas as previsões.
Você também pode gerar previsões individuais ou em lote ao trabalhar com arquivos. Por exemplo, ao trabalhar com um modelo de visão computacional, pode ser necessário pontuar uma única imagem individualmente ou uma coleção de imagens em um lote.
Considere o custo da computação
Além de usar computação ao treinar um modelo, você também precisa de computação ao implantar um modelo. Dependendo se você implantar o modelo em um ponto de extremidade em tempo real ou em lote, você usará diferentes tipos de computação. Para decidir se deseja implantar seu modelo em um ponto de extremidade em tempo real ou em lote, você deve considerar o custo de cada tipo de computação.
Se você precisa de previsões em tempo real, você precisa de computação que esteja sempre disponível e capaz de retornar os resultados (quase) imediatamente. Tecnologias de contêiner como a Instância de Contêiner do Azure (ACI) e o Serviço Kubernetes do Azure (AKS) são ideais para esses cenários, pois fornecem uma infraestrutura leve para seu modelo implantado.
No entanto, quando você implanta um modelo em um ponto de extremidade em tempo real e usa essa tecnologia de contêiner, a computação está sempre ativada. Depois que um modelo é implantado, você paga continuamente pela computação, pois não pode pausar, ou interrompe a computação, pois o modelo deve estar sempre disponível para previsões imediatas.
Como alternativa, se você precisar de previsões em lote, precisará de computação que possa lidar com uma grande carga de trabalho. Idealmente, você usaria um cluster de computação que pudesse pontuar os dados em lotes paralelos usando vários nós.
Ao trabalhar com clusters de computação que podem processar dados em lotes paralelos, a computação é provisionada pelo espaço de trabalho quando a pontuação em lote é acionada e reduzida para 0 nós quando não há novos dados para processar. Ao permitir que o espaço de trabalho reduza a escala de um cluster de computação ocioso, você pode economizar custos significativos.