Decida sobre a implantação em tempo real ou em lote
Ao implantar um modelo em um ponto de extremidade para integração com um aplicativo, você pode optar por projetá-lo para previsões em tempo real ou em lote.
O tipo de previsões de que você precisa depende de como você deseja usar as previsões do modelo
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.
Decida sobre a implantação em tempo real ou em lote
Escolher uma estratégia de implantação para seus modelos de aprendizado de máquina pode ser um desafio, pois diferentes fatores podem influenciar sua decisão.
Em geral, se você precisar de previsões individuais imediatamente quando novos dados forem coletados, precisará de previsões em tempo real.
Se você precisar que o modelo marque novos dados quando um lote de dados estiver disponível, você deverá obter previsões em lote.
Há cenários em que você espera precisar de previsões em tempo real quando as previsões em lote podem ser mais econômicas. Lembre-se de que você está pagando continuamente pela computação com implantações em tempo real, mesmo quando nenhuma nova previsão é gerada.
Se você puder permitir um atraso de 5 a 10 minutos ao precisar de previsões imediatas, poderá optar por implantar seu modelo em um ponto de extremidade em lote. O atraso é causado no tempo necessário para iniciar o cluster de computação depois que o ponto de extremidade é acionado. No entanto, o cluster de computação também irá parar depois que a previsão for gerada, minimizando custos e potencialmente sendo uma solução mais econômica.
Finalmente, você também tem que considerar o cálculo necessário para o seu modelo para pontuar novos dados. Modelos mais simples exigem menos custo e tempo para gerar previsões. Modelos mais complexos podem exigir mais poder de computação e tempo de processamento para gerar previsões. Portanto, você deve considerar como implantará seu modelo antes de decidir como treiná-lo.