Integrar um modelo
Você deve planejar como integrar o modelo, pois isso afeta a forma como você treina o modelo ou quais dados de treinamento você usa. Para integrar o modelo, você precisa implantar o 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
Ao treinar um modelo, a meta geralmente é integrar o modelo a um aplicativo.
Para facilitar a integração de um modelo a um aplicativo, você pode usar pontos de extremidade. Simplificando, um ponto de extremidade pode ser um endereço 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:
- Obter previsões em tempo real
- Obter previsões em lote
Obter previsões em tempo real
Se você quiser que o modelo pontue os novos dados conforme forem fornecidos, você precisará de previsões em tempo real.
Previsões em tempo real geralmente são necessárias quando um modelo é usado por um aplicativo, como um aplicativo móvel ou um site.
Imagine que o seu site contém o 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 imediatamente recomenda outros itens do catálogo de produtos. O site exibe as recomendações do modelo.
O cliente pode selecionar um produto na loja online a qualquer momento. Você deseja que o modelo encontre as recomendações quase imediatamente. O tempo que a página precisa para carregar e exibir os detalhes da camisa é o tempo necessário para obter as recomendações ou previsões. Em seguida, 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á das previsões em lote.
Por exemplo, você pode treinar um modelo que prevê as vendas de suco de laranja para cada semana futura. Com a previsão das 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 de históricos de vendas em um relatório. Você desejará incluir as previsões de vendas no mesmo relatório.
Embora o suco de laranja seja vendido ao longo do dia, você quer calcular a previsão somente uma vez por semana. Você pode coletar os dados de vendas ao longo da semana e chamar o modelo somente quando tiver os dados de vendas de uma semana inteira. Uma coleção de pontos de dados é conhecida como lote.
Decidir entre implantação em tempo real ou em lote
Para decidir se você deseja criar uma solução de implantação em tempo real ou em lote, é necessário considerar as seguintes perguntas:
- Com que frequência as previsões devem ser geradas?
- Em quanto tempo os resultados são necessários?
- 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.
Há várias maneiras de gerar ou coletar dados. Também é possível coletar novos dados em intervalos de tempo diferentes.
Por exemplo, você pode coletar dados de temperatura de um dispositivo IoT (Internet das Coisas) a cada minuto. Você pode obter dados transacionais sempre que um cliente compra um produto em sua loja online. Ou você pode extrair dados financeiros de um banco de dados a cada três meses.
Em geral, há dois tipos de casos de uso:
- Você precisa do modelo para pontuar os novos dados assim que forem fornecidos.
- Você pode agendar ou disparar o modelo para pontuar os novos dados coletados ao longo do tempo.
Quer você queira previsões em tempo real ou em lotes, isso não depende necessariamente da frequência da coleta de novos dados. Em vez disso, depende da frequência e da rapidez com que você precisa gerar as previsões.
Se você quiser as previsões do modelo imediatamente quando os 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 definição importante é 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 lotes é imaginar uma tabela. Suponha que você tenha uma tabela de dados do cliente em que cada linha representa um cliente. Para cada cliente, você tem alguns dados demográficos e dados comportamentais, como quantos produtos eles compraram de sua loja online e quando foi a última compra.
Com base nesses dados, você pode prever a rotatividade do cliente: se um cliente comprará novamente na sua loja online 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á novamente ou não.
- Lote: o modelo recebe várias linhas de dados em uma tabela e retorna se cada cliente comprará novamente ou não. Os resultados são agrupados em uma tabela com todas as previsões.
Você também pode gerar previsões individuais ou em lotes ao trabalhar com arquivos. Por exemplo, ao trabalhar com um modelo de pesquisa visual computacional, talvez seja necessário pontuar uma imagem individualmente ou uma coleção de imagens em um lote.
Considere o custo da computação
Além de usar a computação ao treinar um modelo, você também precisa de computação ao implantar um modelo. Dependendo se o modelo será implantado 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ê necessitar de previsões em tempo real, precisará de computação sempre disponível e capaz de retornar os resultados (quase) imediatamente. Tecnologias de contêiner como a ACI (Instância de Contêiner do Azure) e o AKS (Serviço de Kubernetes do Azure) são ideais para esses cenários, pois fornecem uma infraestrutura leve para o 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 estará sempre ativada. Depois que um modelo é implantado, você pagará continuamente pela computação, que não pode ser pausada ou parar, pois o modelo deve estar sempre disponível para previsões imediatas.
Como alternativa, se você precisar de previsões em lotes, precisará de computação que possa lidar com uma carga de trabalho grande. O ideal é usar um cluster de computação que possa 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, o cálculo é provisionado pelo espaço de trabalho quando a pontuação do lote é acionada e reduzido para 0 nós quando não há novos dados para processar. Ao permitir que o workspace reduza horizontalmente um cluster de computação ocioso, você pode economizar custos significativos.