Princípios de Engenharia de Software Aplicados ao MLOps
Tempo de Leitura 3 mins
Por Nossa Redação | Automação e RPA, Ciência de Dados e IA, Desenvolvimento de Software
Como sabemos, MLOps é a combinação de machine learning com operações. Focando na primeira parte, a criação de um modelo de machine learning (ML) nada mais é, em última análise, do que o desenvolvimento de um software.
A diferença está na presença de um cientista de dados como o “idealizador” do modelo e na necessidade de que ele possa ser integrado à infraestrutura organizacional, além de ser testado de maneira adequada para ser rapidamente implantado e monitorado, garantindo seu funcionamento correto.
O uso de práticas de engenharia de software em todo esse processo, portanto, desempenha um papel essencial na eliminação de obstáculos. Esses obstáculos podem surgir tanto no trabalho do cientista quanto em todas as etapas subsequentes, quando o modelo sai do âmbito de pesquisa e precisa se transformar em uma aplicação útil para outros perfis.
De fato, os conceitos de engenharia de software retiram do modelo de ML sua característica “artesanal”. Tornam-no repetível e escalável, facilitando sua entrada em produção e criando padrões para que qualquer cientista de dados possa desenvolver novos modelos seguindo os mesmos princípios.
MLOps é apenas o começo
MLOps é fundamental para alinhar equipes tão diferentes como as que são formadas para criar modelos de ML. Esses times incluem, de um lado, cientistas de dados — que podem ser físicos teóricos, biólogos ou geólogos, nem sempre vindos da área de TI — e, do outro, especialistas em operações. Essa disciplina também é importante para evitar que os modelos fiquem presos na fase de prova de conceito (PoC).
Mas, se cercado por princípios de engenharia de software, os resultados são ainda melhores. Um exemplo é o uso de repositórios centralizados para evitar que o código-fonte permaneça na máquina do cientista e que várias versões se espalhem a ponto de não se saber qual está em produção. Além disso, caso uma biblioteca utilizada originalmente não esteja mais disponível, isso pode impactar o funcionamento normal da aplicação.
Da mesma forma, será necessário padronizar a arquitetura, a infraestrutura e as ferramentas utilizadas. Um problema comum enfrentado pelos modelos de ML é que a forma de implementação varia de projeto para projeto, com a configuração de ambientes sendo feita de forma improvisada. Isso leva a maiores custos e riscos.
Dos testes ao registro de atividades
No desenvolvimento de modelos, costuma-se apenas verificar se ele prevê o que é solicitado, mas muitas vezes os processos de teste, formais e informais, são ignorados. Além disso, raramente se estabelece um registro dessas atividades.
Como aplicar essas práticas de engenharia de software nos projetos? Por meio de treinamentos e nivelamento, abrangendo desde o uso de ferramentas específicas até boas práticas de programação para cientistas de dados.
É fundamental promover a comunicação entre todos os membros da equipe, para que ninguém tente “reinventar a roda”. Um modelo de ML no notebook do cientista de dados é apenas um experimento. Implementado segundo os padrões e necessidades da empresa, torna-se uma fonte de valor agregado potencial para o negócio.
Quão fluida é a integração entre as equipes de ciência de dados e operações em sua organização? Para saber como podemos ajudar, entre em contato clicando aqui e conheça mais sobre nós em nossas redes LinkedIn e Instagram.