Machine learning: como construir modelos como produtos usando MLOps?

4
min
Criado em:
22/7/2021
Atualizado em:
16/7/2024

Machine learning é uma inteligência artificial (IA) que o mercado descobriu, mas ainda não sabe bem como usar nem para que serve. A Indicium sabe e vai ensinar.

As possibilidades que surgem nesse ramo são incontáveis, e saber como utilizar os dados e a ciência de dados para gerar valor é uma tarefa complexa.

De fato, machine learning já está em diversas aplicações do dia a dia: nas redes sociais que checamos diariamente, no varejo digital, nas operações bancárias, na ciência e até na indústria.

Vamos contextualizar isso tudo até chegarmos à prática durante esta série sobre machine learning e MLOps.

Boa leitura!

O que é machine learning?

Machine learning é uma inteligência artificial (IA) que o mercado descobriu, mas ainda não sabe bem como usar nem para que serve. A Indicium sabe e vai ensinar.

Em franca expansão, a área chama a atenção do mercado e de um número cada vez maior de profissionais.

O interesse por pessoas capacitadas e a demanda de cientistas de dados com qualificação têm levado a uma enxurrada de cursos rápidos, que ensinam o essencial para o desenvolvimento de modelos de machine learning normalmente utilizando pouco ou nenhum rigor na escrita da programação, e focando principalmente em estatística e aplicações de aprendizado de máquina.

A grande maioria dos cursos (principalmente aqueles que se baseiam em Python) utilizam, por exemplo, jupyter notebooks como interface de trabalho. Essa não é uma crítica aos notebooks, mas eles podem induzir más práticas.

Além disso, a ciência de dados é frequentemente povoada por profissionais com formação diferente de TI, como: engenharia, economia, administração, entre outros cursos com formação matemática. Há ainda profissionais de áreas completamente diferentes e até sem formação universitária. E tudo bem! Essa diversidade é uma das vantagens dessa área. Cada visão diferente sobre um mesmo tópico pode trazer novos insights.

Porém, ao entrar na área dos dados pelo “caminho mais rápido”, há a tendência de se criar um código desorganizado e mal escrito devido ao limitado conhecimento de arquitetura de software, e de passar pela dificuldade de colocar o projeto em produção.

Entretanto, as aplicações de machine learning são, por definição, aplicações de tecnologia da informação.

Portanto, para transformar o seu modelo em um produto, é necessário que ele esteja inserido em um framework robusto, que permita a criação de um ambiente de desenvolvimento e também um ambiente de produção, além da integração com aplicações, como web, aplicativos e todos os tipos de operações.

E é aí que entra o MLOps: o filho entre machine learning (ML) e DevOps.

O que é DevOps?

DevOps é uma cultura da engenharia de software que busca aproximar quem desenvolve o software de quem o opera. Sua estrutura permite uma maior automatização e o monitoramento durante o desenvolvimento dos projetos.

Essa cultura já é bem estabelecida na engenharia de software, incluindo até as metodologias ágeis de gerenciamento de projetos, largamente implementadas. Agora, é a vez do machine learning seguir o mesmo caminho.

Símbolo de infinito feito com setas do azul claro ao mais escuro, orientando o fluxo de DevOps que o machine learning deve seguir. As palavras Dev e Ops estão escritas cada um dos dois espaços vazados do símbolo de infinito. Cada seta que compõe o símbolo contém uma palavra escrita, quatro palavras estão em setas azul claro em torno da palavra Ops, são elas respectivamente: release; deploy; operate; monitor; as outras quatro estão em setas azul escuro em torno da palavra Dev, são elas: plan; code; build; test.
DevOps: o caminho para o machine learning seguir

O que é o MLOps?

MLOps é uma cultura que permite, em semelhança ao DevOps, o desenvolvimento e deploy de sistemas de machine learning de maneira escalável, sustentável e padronizada, para entregar modelos de alta performance em produção.

Analisando a frase anterior passo a passo, podemos concluir que o produto precisa ser:

  • escalável: o produto de machine learning deve poder expandir sua capacidade para operar com um número maior de usuários;
  • sustentável: que seja possível dar manutenção para, ao encontrar falhas, corrigi-las com rapidez;
  • padronizado: quanto mais as equipes de data science crescem, maior é a necessidade de que o código seja padronizado, permitindo a fácil leitura e interpretação dos códigos escritos por outros colaboradores;
  • robusto: devendo ser possível manter os modelos em produção e um ambiente de desenvolvimento para que novas ideias e/ou a correção de erros ocorra sem afetar a operação.

Tais soluções exigem cada vez mais das equipes de dados. A execução perfeita de um projeto utilizando os conceitos de MLOps envolve um time grande de profissionais, que pode incluir as áreas de desenvolvimento, engenharia de dados, engenharia de analytics, ciência de dados, engenharia de machine learning etc.

Cientistas de dados, como já falamos acima, precisam ter preparo para essa necessidade crescente de interação com equipes de desenvolvimento, e para criar os seus produtos de maneira que contemplem todas as características do MLOps citadas no parágrafo anterior.

Fluxograma com setas em tons de azul em sequência, formando círculos interligados cujos três espaços vazados são preenchidos pelas siglas, nesta ordem: ML; DEV; OPS. Cada seta possui uma palavra, são elas em sequência: data; model; verify; packge; release; configure; monitor; plan; create. O fluxo recomeça depois da palavra create.
A execução perfeita de um projeto com MLOps

Ferramentas para implementação de MLOps no seu projeto

Existem algumas ferramentas que padronizam e facilitam a implementação de MLOps nos projetos de ciência de dados. Para auxiliar a manter a padronização e a modularidade, esses frameworks já induzem a utilização de boas práticas de programação nos projetos. Utilizaremos apenas frameworks gratuitos de código aberto.

Nos próximos posts desta série, abordaremos cada um deles isoladamente. Os frameworks serão:

  • Kedro: essa ferramenta permite a criação de pipelines de data science padronizados, modulares e sustentáveis, e é escrito em Python.
  • MLFlow: utilizada para o acompanhamento de métricas e parâmetros de modelos.
  • Deploy do modelo em produção: ferramenta open-source para o deploy de modelos de machine learning (que você conhecerá somente no último artigo desta série!).

Projeto exemplo

Para nos acompanhar na implementação de todas essas ferramentas, utilizaremos um projeto exemplo, no qual implementaremos uma solução completa de MLOps passo a passo. O dataset utilizado será o completo de Pokémon, disponível neste link. Também utilizaremos o dataset de imagens dos pokémons, disponível neste link.

O repositório do projeto está disponível no Github, neste link.

Ilustração do desenho animado Pokémon com os personagens principais em primeiro plano.
Conjunto de dados completo do Pokémon

Na próxima parte, vamos iniciar o projeto utilizando Kedro.

Até lá!

Tags:
Ferramentas
Todos

Daniel Avancini

Chief Data Officer

Fique por dentro do que acontece na Indicium, siga nossas redes:

Abra caminho para que sua organização lidere o mercado por décadas. Entre em contato.

Clique no botão, preencha o formulário e nossa equipe vai entrar em contato com você em breve.

Queremos ajudar colaborando em suas iniciativas de dados.