Então sua empresa decidiu investir em aprendizado de máquina (Machine Learning).

A área de RH conseguiu recrutar uma talentosa equipe de Cientistas de Dados produzindo modelos para resolver problemas importantes que estavam fora de alcance apenas alguns anos atrás. Todas as métricas de desempenho estão ótimas, as provas de conceito mostram o que os modelos de Machine Learning são capazes de fazer e os executivos perguntam em quanto tempo a empresa pode ter um modelo em produção.

Deve ser bem rápido, cada diretor pensa. Afinal, a equipe de Cientistas de Dados, muito bem remunerados, já resolveu todos os problemas avançados de ciência, matemática e programação, então tudo o que resta é um trabalho rotineiro de TI e fazer o deploy do modelo em produção. Quão difícil isso pode ser?

Normalmente quem não faz, tende achar que o trabalho de quem faz é fácil….rsrsrs. Mas não é!

Estamos falando talvez de uma das etapas mais complicadas pois vários elementos são necessários para que um modelo de Machine Learning possa ser colocado em produção, seja mantido e monitorado, atualizado e entregue resultados de forma consistente. Por isso a disciplina de MLOps vem ganhando cada vez mais destaque.

Nesta série de artigos aqui no Blog da DSA vamos conhecer os desafios e oportunidades do MLOps e como as empresas estão aplicando Machine Learning no dia a dia. Boa leitura.

Definindo MLOps

No mundo do desenvolvimento tradicional de software, um conjunto de práticas conhecidas como DevOps tornou possível enviar software para produção em minutos e mantê-lo funcionando de maneira confiável.

O DevOps conta com ferramentas, automação e fluxos de trabalho para abstrair a complexidade e permitir que os desenvolvedores se concentrem nos problemas reais que precisam ser resolvidos. Essa abordagem tem sido tão bem-sucedida que muitas empresas já são adeptas dela; então, por que não podemos simplesmente continuar fazendo a mesma coisa com Machine Learning?

A questão principal é que há uma diferença fundamental entre Machine Learning e o software tradicional: Machine Learning não é apenas código, é código mais dados.

Um modelo de Machine Learning, o artefato que você acaba colocando em produção, é criado aplicando um algoritmo a uma massa de dados de treinamento, o que afetará o comportamento do modelo em produção. Fundamentalmente, o comportamento do modelo também depende dos dados de entrada que ele receberá no momento da previsão, que você não pode conhecer antecipadamente.

Embora o código seja cuidadosamente criado em um ambiente de desenvolvimento controlado, os dados vêm dessa fonte interminável de entropia conhecida como “o mundo real”. Ele nunca para de mudar e você não pode controlar como isso vai mudar. Uma maneira útil de pensar em seu relacionamento é como se o código e os dados vivessem em planos separados, que compartilham a dimensão do tempo, mas são independentes em todos os outros. O desafio de um processo de Machine Learning é criar uma ponte entre esses dois planos de maneira controlada.

Essa desconexão fundamental causa vários desafios importantes que precisam ser resolvidos por qualquer pessoa que tente colocar um modelo de Machine Learning em produção com sucesso, por exemplo:

  • Implantação lenta, quebradiça e inconsistente
  • Falta de reprodutibilidade
  • Redução de desempenho

Como a palavra “dados” já foi usada várias vezes até aqui, você pode estar pensando em outra disciplina que poderia vir em nosso socorro: Engenharia de Dados. E você estaria certo: a Engenharia de Dados fornece ferramentas e conceitos importantes que são indispensáveis para resolver o quebra-cabeça de Machine Learning em produção. Para decifrá-lo, precisamos combinar práticas de DevOps e Engenharia de Dados, adicionando algumas que são exclusivas em Machine Learning.

Assim, MLOps pode ser definido por esta interseção:

mlops-image

Podemos definir MLOps da seguinte maneira:

MLOps é um conjunto de práticas que combina aprendizado de máquina, DevOps e engenharia de dados, que visa implantar e manter sistemas de Machine Learning em produção de maneira confiável e eficiente.

Vamos agora ver o que isso realmente significa com mais detalhes, examinando as práticas individuais que podem ser usadas para atingir os objetivos de MLOps. Continuamos na Parte 2.

Equipe DSA

Referências:

Formação Engenheiro de Machine Learning

ML Ops: Machine Learning as an Engineering Discipline

MLOps Best Practices on Google Cloud