Do curso: Como Usar o Aprendizado de Máquina para Agregar Valor à sua Empresa
Produção do modelo
Do curso: Como Usar o Aprendizado de Máquina para Agregar Valor à sua Empresa
Produção do modelo
Produzir um modelo de aprendizado de máquina significa lançá-lo, por exemplo, em serviços da web que permitam seu consumo. Muitos provedores de serviços em nuvem facilitam a disponibilidade e escalabilidade dos modelos, além de simplificar o acesso de diferentes plataformas. Neste ponto, também devem ser considerados aspectos como onde o modelo e os dados serão armazenados, a segurança e o controle de acesso aos recursos, sendo necessária a colaboração de outros profissionais de TI, como engenheiros de software. Por que a produção de modelos é um pouco mais complicada do que o lançamento de outros tipos de aplicativos? No início do curso, expliquei que o aprendizado de máquina mudou a forma de contemplar o desenvolvimento. Quando um software entra na fase de produção, surgem diferentes versões do código para que os usuários tenham acesso à atualização mais recente. Em um projeto de aprendizado de máquina também há diferentes versões de código, mas existe outro input que varia e tem versões. Adivinha qual é? Os dados. Lembre-se: um modelo é composto de um algoritmo, hiperparâmetros e dados. Novamente, simplificando, devemos levar em conta que haverá versões do código e, por sua vez, versões dos dados, originando diversas variantes aprimoradas do modelo graças ao retreinamento. Com que frequência precisaremos de diferentes versões do modelo? Mais uma vez, isso vai depender do tipo de negócio e suas necessidades e da velocidade de variação dos dados usados para treinar o modelo. Haverá casos em que os dados tenham padrões estáticos, ou seja, existe pouca variação ao longo do tempo e o aprendizado obtido com eles não muda ou difere ligeiramente. Por exemplo, na área da linguagem natural, diversos padrões permaneceram invariáveis por muitos anos, então a frequência de retreinamento e as versões nos preocupará menos do que quando há mais alterações e o histórico de dados é dinâmico. Se pensarmos no comportamento do consumidor e nas vendas, o modelo deve ser treinado com maior frequência, pois existem tendências que condicionam mais a sua conduta, e as previsões que um modelo fornece hoje podem não ser ideais em algumas semanas. Por outro lado, como os usuários aplicarão as previsões? Com que regularidade devem ser atualizadas? Há cenários em que basta atualizar os dados uma vez ao dia, processá-los, gerar o modelo e salvar as previsões para que possam ser consumidas nas próximas 24 horas. Não temos uma previsão imediata, mas isso seria válido para atualizar as tarifas dos diferentes quartos de um hotel, por exemplo. Esse tipo de publicação do modelo usando inferência assíncrona é conhecido como lote. Agora imagine um software que deve gerar previsões em milissegundos, quase em tempo real. Esse tipo de inferência online também é possível, embora seja mais complexa de manter. Além disso, devemos garantir a escalabilidade dos recursos, pois sempre que um usuário se conectar, haverá uma nova chamada ao modelo, que deve responder a picos de consumo elevados. Portanto, dependendo do negócio e da natureza do problema que vamos resolver com o aprendizado de máquina, precisamos retreinar e gerenciar corretamente o versionamento. O ciclo de desenvolvimento tem muitas etapas, que são amplamente automatizadas em pipelines. No entanto, os modelos em produção devem ser periodicamente monitorados, validados e interpretados pelos tomadores de decisões empresariais. Lembre-se: um projeto de aprendizado de máquina é de natureza viva e deve ser atualizado e monitorado com frequência para que as previsões continuem válidas e gerem lucros.