Hoje em dia, muitos modelos de machine learning não chegam à produção e acabam ficando presos nos laboratórios de dados. Como em qualquer área emergente, o conjunto de boas práticas, ferramentas, técnicas e funções que os times de dados modernos precisam adotar ainda está amadurecendo e se padronizando. Isso cria dores tanto para os negócios, que querem extrair valor de machine learning em escala, quanto para os cientistas de dados, que buscam ir além dos experimentos no notebook. O MLOps (Machine Learning Operations) surgiu nos últimos anos justamente para resolver os desafios de implantação que os times de dados enfrentam.
Como o nome já indica: assim como o DevOps moldou o desenvolvimento ágil e rápido de aplicações com foco nas necessidades do negócio, o MLOps tem o mesmo objetivo ao encurtar a distância entre a complexidade e a implantação de modelos de machine learning.
Mas como, exatamente, o MLOps endereça esses desafios? Neste artigo, vamos desmistificar alguns conceitos do MLOps como disciplina emergente e responder a perguntas essenciais como
- O que é MLOps e quais são os componentes-chave de uma prática de MLOps bem-sucedida?
- Em que o MLOps é diferente do DevOps?
- Como o MLOps repensa o fluxo de trabalho de machine learning?
- Como você pode começar com MLOps hoje?
O que é MLOps?
Alessya Visnjic, CEO da WhyLabs, uma startup de MLOps focada em monitoramento de modelos, definiu muito bem MLOps como um “conjunto de ferramentas, práticas, técnicas, cultura e mindset que garantem a implantação confiável e escalável de sistemas de machine learning”.
Em perspectiva, o MLOps se apoia na disciplina já estabelecida do DevOps, a prática moderna de escrever, implantar e operar aplicações corporativas com eficiência. É um processo colaborativo, multifuncional e iterativo que operacionaliza a ciência de dados. O MLOps trata machine learning como uma disciplina de engenharia, em que os modelos são vistos como artefatos de software reutilizáveis que podem ser implantados por meio de um processo repetível.
MLOps também envolve o monitoramento contínuo e o re-treinamento de modelos em produção para garantir desempenho ideal à medida que os dados mudam ao longo do tempo, fenômeno conhecido como data drift.
Em poucas palavras, o MLOps permite que os times de dados escalem o valor que entregam ao possibilitar:
- Implantação mais rápida de mais modelos por meio de processos automatizados
- Ganho de produtividade com colaboração e reutilização de modelos
- Redução de risco e custo com modelos que nunca chegam à produção
- Monitoramento e atualização contínuos dos modelos conforme ocorre data drift
Conectando com a definição de Visnjic, isso exige tanto inovação em ferramentas para times de dados modernos quanto uma mudança de mentalidade para muitos cientistas de dados.
Por que o MLOps é importante?
Já falamos como o MLOps busca resolver os desafios de implantação para muitos times de dados. Mas o que torna o machine learning tão singular a ponto de exigir uma função operacional especializada como o MLOps?
Aplicações de machine learning são fundamentalmente diferentes de software tradicional. Veja alguns dos principais desafios que as organizações enfrentam ao colocar sistemas de machine learning em produção.
- Responsabilidade e colaboração: Tradicionalmente, cientistas de dados criam e desenvolvem modelos de machine learning, e os times de TI assumem a tarefa de implantá-los e gerenciá-los. Porém, a colaboração entre esses dois times nem sempre é eficiente e costuma gerar atritos. Por exemplo, times de ciência de dados são cada vez mais demandados por diferentes áreas do negócio para resolver uma lista crescente de problemas. Dada a complexidade dos sistemas de TI modernos, cientistas de dados costumam dar pouca atenção ao ambiente de produção e à infraestrutura existente — porque isso seria responsabilidade de TI. Da mesma forma, times de TI tendem a não se aprofundar no funcionamento interno das soluções produzidas por ciência de dados — o que leva a expectativas equivocadas sobre a “implantabilidade” de muitos modelos. Essa dinâmica gera fricção e antipadrões que precisam ser evitados a todo custo — quando os times de dados acabam no raciocínio de "vamos construir um modelo, mandar para o TI e eles tocam daqui".
- Dados são o fator definidor do software com machine learning: os dados são o combustível de sistemas de machine learning. Diferente do software tradicional, em que engenheiros projetam um processo bem definido que recebe um conjunto de entradas e gera saídas, sistemas de machine learning dependem de métodos estatísticos que usam dados do mundo real — muitas vezes “bagunçados” — como entrada e entregam previsões como saída. Isso significa que o comportamento desses sistemas muda conforme os dados mudam. Também significa que avaliar o desempenho dos modelos requer observação e análise. Por fim, o fluxo de trabalho de machine learning é confuso, experimental por natureza e naturalmente demanda um conjunto de habilidades diferente do da engenharia de software tradicional.
- Complexidade de implantação: Os sistemas de modelos de machine learning estão cada vez mais complexos. Ao contrário do software tradicional, implantar modelos envolve orquestrar várias etapas interconectadas com ferramentas diversas: coleta, armazenamento, transformação, engenharia de atributos e mais. Além disso, reprodutibilidade e versionamento são desafios grandes para times de dados. Pela natureza experimental do machine learning, equipes constroem muitas versões de um modelo usando diferentes versões do mesmo dataset. Assim, o controle de versão tradicional precisa ser bem mais robusto.
MLOps vs DevOps — qual é a diferença?
Na seção anterior, detalhamos por que machine learning precisa de uma função operacional especializada. Mas, na prática, como o MLOps difere do DevOps?
DevOps é a junção de Development (Dev) e Operations (Ops). Ele combina duas funções essenciais do departamento de TI: desenvolvimento de aplicações e engenharia de sistemas. O DevOps busca encurtar ciclos de desenvolvimento — e acelerar a velocidade de entrega dos times de engenharia de software. Faz isso ao introduzir automação, processos atualizados e formas de trabalho para equipes de desenvolvimento. De forma ampla, o DevOps traz dois princípios ao processo de desenvolvimento de software:
- Integração contínua (CI) — processo de fazer iterações pequenas e frequentes nos repositórios de versionamento. Isso reduz problemas de implantação porque o código é colocado em produção com frequência.
- Entrega contínua (CD) — processo de automatizar as etapas necessárias para entregar aplicações e software em ambientes de produção.
Dadas as particularidades do machine learning, veja algumas formas práticas de como o MLOps difere do DevOps:
- Integração contínua é ampliada: além de testar e validar código, passa a incluir testes e validação de modelos e dados
- Entrega contínua é ampliada: além de automatizar passos para levar aplicações à produção, passa a entregar pipelines de dados que disparam previsões de machine learning automaticamente
- Treinamento contínuo é introduzido — algo próprio do machine learning — em que modelos são re-treinados automaticamente para implantação
- Monitoramento contínuo é introduzido — acompanhando quebras na qualidade dos dados de produção, desempenho do modelo e métricas de negócio atreladas ao modelo
O workflow de MLOps
Reimaginando o fluxo de ciência de dados para MLOps
Dada a complexidade extra de levar modelos de machine learning para produção — como os times de dados podem começar a adotar MLOps em seus fluxos de trabalho? Nesta seção, apresentamos um passo a passo simplificado de um processo de MLOps:
- Construção: depois que os modelos são criados, eles geralmente são colocados em um repositório auditável sob controle de versão para permitir a reutilização em toda a empresa.
- Avaliação: a qualidade das previsões do modelo é quantificada nesta etapa, medindo o desempenho do novo modelo treinado em um conjunto de dados novo e independente.
- Colocação em produção: exporte, implante e integre o modelo ou pipeline nos sistemas e aplicações de produção.
- Testes: testes contínuos são essenciais em aplicações baseadas em ML, preocupando-se com re-treinar e servir modelos automaticamente.
- Implantação: é necessário monitoramento contínuo para garantir desempenho ideal. O modelo pode ser re-treinado ou substituído por um novo à medida que os dados mudam.
- Monitoramento e observabilidade: muitas empresas enfrentam desafios para levar modelos de machine learning para ambientes de produção.
Reimaginando os papéis de dados para MLOps
Em times menores de ciência de dados, uma pessoa pode acumular funções e “usar vários chapéus”. Já em times maiores e mais estruturados, você encontra uma variedade de papéis e competências responsáveis por diferentes etapas do workflow de MLOps. Esses papéis podem ser vistos assim:
- Cientista de dados: frequentemente visto como o protagonista em qualquer time de MLOps, é quem usa os dados da empresa para gerar valor. Seu papel é entender, estruturar e interpretar esses dados para extrair insights na forma de modelos preditivos. Cria, testa e avalia modelos de machine learning. Em algumas empresas, também implanta e monitora o desempenho dos modelos em produção.
- Engenheiro de dados: responsável por criar e manter o ambiente que permite que quase todas as outras funções do time de dados operem. Desenvolve, constrói, mantém e testa arquiteturas como bancos de dados e sistemas de processamento. Em termos simples, viabiliza o fluxo de dados da extração à transformação e entrega.
- Engenheiro de software: no processo de MLOps, integra os modelos de machine learning às aplicações e sistemas da empresa. Também garante que os modelos funcionem sem atrito com aplicações que não usam machine learning.
- Engenheiro de machine learning: atua na interseção entre ciência de dados e engenharia de dados. Seu papel é otimizar e colocar em produção os modelos desenvolvidos pelo cientista de dados dentro da infraestrutura preparada pelo engenheiro de dados.
Começando com MLOps
Como discutido neste artigo, MLOps ainda é um campo nascente, com muitas ferramentas, boas práticas e metodologias em evolução. Esta seção reúne diferentes maneiras de você começar com MLOps, com ferramentas para experimentar e recursos de aprendizado para hoje mesmo.
Ferramentas para considerar em MLOps
-
Kubeflow: o Kubeflow é um conjunto de ferramentas para executar workflows de Machine Learning em clusters Kubernetes. O objetivo é permitir que as melhores soluções open source de machine learning rodem em um cluster Kubernetes de forma simples, portátil e escalável. Originalmente, o Kubeflow era a implementação open source do TensorFlow Extended (TFX), uma plataforma de ponta a ponta para implantar pipelines de machine learning em produção. Assim, o Kubeflow simplificou a execução de jobs TensorFlow no KubernetesMLFlow: o MLflow é uma ferramenta para industrializar o desenvolvimento de ponta a ponta de projetos de Machine Learning. Sua ambição é facilitar o desenvolvimento desses projetos nas empresas, simplificando o monitoramento, a reprodução, o gerenciamento e a implantação de modelos.
-
Data Version Control (DVC): o DVC (Data Version Control) é um pacote Python que facilita o gerenciamento de projetos de ciência de dados. É uma extensão do Git para Machine Learning, como afirmou seu principal contribuidor Dmitry Petrov nesta apresentação. O DVC é ao mesmo tempo comparável e complementar ao Git.
-
Pachyderm: o Pachyderm é uma ferramenta de controle de versão para machine learning e ciência de dados, como o DVC. Além disso, é baseado em Docker e Kubernetes, o que ajuda a executar e implantar projetos de Machine Learning em qualquer nuvem. Também garante que todos os dados ingeridos em um modelo de machine learning sejam versionados e rastreáveis.
Recursos de aprendizado sobre MLOps
Fundamentos de machine learning
- Machine Learning For Absolute Beginners: A Plain English Introduction (Second Edition), de Oliver Theobald. Como o título indica, este livro oferece aos iniciantes uma introdução completa ao machine learning. E quando falamos em iniciantes, é nível zero mesmo. Não é necessário conhecimento básico de matemática nem experiência em programação. É uma introdução essencial para quem tem interesse no tema. A linguagem é simples, sem jargões indecifráveis. Os diferentes algoritmos vêm acompanhados de explicações claras, fáceis de seguir, e exemplos visuais. O livro também apresenta noções simples de programação para contextualizar melhor o machine learning.
- Machine Learning For Dummies, de John Paul Mueller e Luca Massaron. Para novatos, a série “for dummies” também é um bom ponto de partida. Este livro apresenta conceitos e teorias básicas de machine learning e explica como aplicá-los no mundo real. Introduz linguagens e ferramentas essenciais e mostra como transformar um conceito relativamente abstrato em um instrumento prático. Ele aborda as linguagens Python e R, usadas para ensinar máquinas a identificar padrões e analisar resultados.
- Fundamentals of Machine Learning for Predictive Data Analytics: Algorithms, Worked Examples, and Case Studies, de John D. Kelleher, Brian Mac Namee e Aoife D'Arcy. Cobre todas as noções fundamentais de machine learning, apresentando tanto o aspecto teórico quanto aplicações práticas. Oferece exemplos concretos e estudos de caso para facilitar a assimilação. Recomenda-se conhecimento básico de analytics para melhor compreensão. O livro apresenta diferentes abordagens de machine learning e ilustra cada conceito com algoritmos, modelos e exemplos práticos.
- Machine Learning for Hackers, de Drew Conway e John Myles White. Aqui, “hackers” se refere a programadores que criam código para propósitos específicos e projetos práticos. É voltado a leitores sem base forte em matemática, mas que sabem programar. Em vez de focar em teorias matemáticas, o livro apresenta aplicações reais baseadas em estudos práticos. Aborda problemas clássicos de machine learning e explica como resolvê-los usando a linguagem R — de comparar senadores pelos votos recebidos a criar recomendações no Twitter ou detectar spam pelo conteúdo.
- Trilha de aprendizado Machine Learning Scientist da DataCamp com Python ou R. Seja você usuário de R ou Python, essas duas trilhas cobrem o essencial do machine learning e temas avançados como deep learning e engenharia de atributos.
Fundamentos de engenharia de dados
- Data Engineering Cookbook, de Andreas Kretz. Há muita dúvida sobre como se tornar engenheiro de dados. Este eBook do Andreas Kretz traz estudos de caso detalhados, código, podcasts, entrevistas e muito mais. É um pacote completo para quem quer seguir esse caminho. E a cereja do bolo? É gratuito! Você pode começar agora mesmo.
- DW 2.0 - The Architecture for the Next Generation of Data Warehousing, do “pai do Data Warehousing” W. H. Inmon. Descreve o futuro do data warehousing que já é tecnologicamente possível hoje, tanto arquitetural quanto tecnologicamente. Bem estruturado, cobre a maioria dos tópicos de arquitetura de dados e seus desafios. Mostra como aproveitar o sistema existente, construir um data warehouse em torno dele e as melhores práticas para justificar o investimento de forma prática.
- Agile data warehouse design: collaborative dimensional modeling, from blackboard to star schema, de Laurent Corr. Livro excelente. Lawrence Corr apresenta um guia passo a passo para capturar requisitos de BI e data warehousing e transformá-los em modelos de alta performance usando a técnica chamada model storming. Você também encontrará o BEAM, uma abordagem ágil de modelagem dimensional que melhora a comunicação entre designers de data warehouse e stakeholders de BI.
- Trilha de carreira Data Engineering with Python da DataCamp. Esta trilha traz dezenas de cursos cobrindo arquitetura de dados, ingestão, construção de pipelines e muito mais.
Aprofunde-se em MLOps
- MLOps Fundamentals Skill Track. Esta trilha cobre o ciclo de vida completo de uma aplicação de machine learning, desde a coleta de requisitos de negócio até as fases de design, desenvolvimento, implantação, operação e manutenção
- MLOps: Operationalizing Data Science, de David Sweenor, Dev Kannabiran, Thomas Hill, Steven Hillion, Dan Rope e Michael O'Connell. Seis especialistas em analytics apresentam um caminho de quatro etapas para criar aplicações de machine learning que chegam à produção.
- Building Machine Learning Powered Applications, de Emmanuel Ameisen. Neste livro, Emmanuel Ameisen ensina a construir uma aplicação movida por machine learning da ideia inicial ao produto implantado.
- Building Machine Learning Pipelines, de Hannes Hapke e Catherine Nelson. Os autores mostram, ao longo do livro, as etapas para automatizar um pipeline de machine learning usando o ecossistema do TensorFlow.
- Practical MLOps, de Noah Gift e Alfredo Deza. Destacando as diferenças entre DevOps e MLOps, o livro mostra o que é MLOps e como operacionalizar seus modelos. Apresenta ferramentas e métodos para implementar projetos de MLOps na AWS, Microsoft Azure e Google Cloud. E não deixe de conferir o treinamento ao vivo do Noah sobre Practical MLOps na DataCamp.
- Introducing MLOps, de Mark Treveil & equipe Dataiku. Os autores oferecem uma compreensão profunda dos conceitos-chave de MLOps para que times de ciência de dados consigam operacionalizar modelos de machine learning, acelerar mudanças de negócio e melhorar os modelos ao longo do tempo.
- Google Cloud disponibiliza artigos, posts e papers com boas práticas e processos para construir modelos eficientes de machine learning. No artigo selecionado, você aprende processos de MLOps e como migrar do manual para o automatizado.
- Nvidia traz em seu blog conteúdos sobre o ciclo de vida de MLOps e casos de sucesso na área.
- Ml-ops.org foi criado por Dr. Larysa Visengeriyeva, Anja Kammer, Isabel Bär, Alexander Kniesz e Michael Plöd. O site reúne informações essenciais sobre MLOps e apresenta cada etapa do processo de ponta a ponta.
Esperamos que este conjunto de recursos ajude você a dar os primeiros passos na sua jornada de aprendizado em MLOps. Para mais artigos e materiais sobre MLOps, confira também:



