No cenário atual, impulsionado por dados, o MLOps (operações de machine learning) tornou-se uma prática crucial para empresas que desejam implantar modelos de aprendizado de máquina confiáveis, sustentáveis e escaláveis. Com a crescente presença da ciência de dados em diversos setores, a necessidade de MLOps aumentou exponencialmente. MLOps garante que os modelos de machine learning não sejam apenas implantados de forma eficiente, mas também mantidos ao longo do tempo para continuar gerando valor.
Por que tanto é falado sobre MLOps atualmente?
O MLOps é essencial para enfrentar os desafios operacionais que surgem da implantação de modelos de machine learning em larga escala. Esses desafios incluem o gerenciamento de versões de modelos, a garantia de reprodutibilidade, o monitoramento do desempenho dos modelos e a manutenção da qualidade dos dados.
Há uma variedade de ferramentas e plataformas disponíveis que podem facilitar a adoção do MLOps. Uma que temos utilizado em vários projetos com clientes é o Databricks. Um dos benefícios do Databricks que observamos é que ele pode simplificar o processo de integração das práticas de MLOps, reunindo uma ampla gama de recursos e capacidades.
Enfrentando os principais desafios do MLOps
1. Organização e gestão de código
Garantir que o código seja limpo, sustentável e bem organizado é um grande desafio no MLOps. Um código mal organizado pode dificultar a colaboração, a escalabilidade e a manutenção de produtos de dados.
Em um projeto de ciência de dados de ponta a ponta, geralmente há etapas comuns como extração de dados, treinamento de modelo e criação de previsões. Assim, é recomendável dividir os processos em arquivos separados, de acordo com seus respectivos contextos. Concentrar tudo em um único arquivo pode dificultar a compreensão, a colaboração e a integração de novas funcionalidades.
Nós enfrentamos esse desafio usando arquivos separados no Databricks, o que facilita a orquestração e o monitoramento. Essa separação melhora a legibilidade e a manutenção do código. Outro benefício que encontramos ao usar o Databricks é a integração nativa com o Git para controle de versão, o que facilita a colaboração e a gestão de código.
2. Desenvolvimento Orientado a Testes (TDD)
Implementar testes desde o início do ciclo de desenvolvimento é crucial para manter a qualidade do código e reduzir bugs. No entanto, muitas equipes têm dificuldade em integrar o TDD em seus fluxos de trabalho.
Frameworks de teste como o Pytest podem ser usados no Databricks para verificar suas funções, o que, por sua vez, melhora a confiabilidade do código e reduz o custo de correção de bugs.
3. Automação de fluxos de trabalho
Gerenciar pipelines complexos de machine learning com várias tarefas interdependentes pode ser difícil e propenso a erros.
Uma das maneiras de enfrentar esse desafio é automatizar a execução dos fluxos de trabalho. O Databricks Workflows nos permite definir e gerenciar a lógica necessária para executar diferentes tarefas. Embora existam, claro, abordagens alternativas para esse problema, gostamos também do fato de que a plataforma suporta a execução automatizada por meio de agendamentos, execução contínua e acionamentos a partir de eventos, o que otimiza o uso de recursos e reduz a necessidade de intervenção manual.
4. Rastreamento de experimentos e versionamento
Ao criar um modelo de machine learning, é importante registrar diferentes experimentos e versionar seus modelos para que você possa comparar e decidir qual é o melhor a ser utilizado.
O MLflow, integrado ao Databricks, é útil para rastrear experimentos e implementar o versionamento e a gestão de modelos. Também é útil para registrar os hiperparâmetros dos modelos, métricas de desempenho e estatísticas das previsões.
5. Feature Store
Criar features pode ser computacionalmente caro e demorado, por isso ter um repositório centralizado para armazenar e compartilhar essas features entre cientistas de dados é uma boa prática no desenvolvimento de modelos de machine learning.
No Databricks, o Feature Store nos ajuda a enfrentar esse desafio, oferecendo um repositório centralizado que permite verificar facilmente a linhagem das features, rastreando sua origem, transformações e dependências, desde seus dados de origem até os dados de saída.
6. Monitoramento
Uma vez que um modelo foi implantado, é importante monitorar as métricas de desempenho, os dados de entrada e suas previsões. Esse tipo de monitoramento ajudará a identificar facilmente qualquer sinal de drift (desvio) de dados ou conceito.
O Databricks Lakehouse Monitoring pode ser integrado para acompanhar as métricas usando suas tabelas de entrada e previsão. Para criar um dashboard de monitoramento robusto, você pode integrá-lo aos dashboards do Databricks SQL ou alertas do Databricks.
Conclusão
O MLOps pode ser um método valioso para aumentar a velocidade com que os modelos de machine learning são implantados em produção. À medida que a demanda por produtos e recursos impulsionados por IA aumenta, será cada vez mais importante que as equipes adotem essa abordagem.
É importante notar que o MLOps não pode ser realizado com uma única ferramenta ou plataforma: é uma prática e, portanto, exige uma mentalidade e um conjunto de habilidades específicas entre as equipes relevantes. No entanto, fornecedores de produtos de MLOps podem ajudar significativamente as equipes que buscam avançar nessa prática. A ferramenta certa será, em última análise, determinada pelas suas necessidades específicas e pelo contexto organizacional, mas nossa experiência com o Databricks demonstrou como as plataformas de MLOps podem desempenhar um papel valioso na integração dessas técnicas dentro das ferramentas existentes.
Aviso: As afirmações e opiniões expressas neste artigo são de responsabilidade de quem o assina, e não necessariamente refletem as posições da Thoughtworks.