Image for post
Image for post
Guilherme Alves Lima | Lead Engineer | everis Brasil

Noronha: Construindo uma plataforma Open-Source para MLOps

Estamos vivendo um crescente aumento da utilização de inteligência artificial para resolver problemas tanto da sociedade quanto empresas. Graças a diminuição de infraestrutura necessária para treinar e utilizar modelos de machine learning, vivemos um “boom” de desenvolvimento de softwares que possuem como peça central a inteligência artificial.

Com esse aumento, é de se esperar que empresas procurem meios de reduzir risco e “time to market” de projetos que envolvem Machine Learning (ML), além disso, sabemos que desenvolvimentos desse tipo requerem métodos iterativos, ágeis, com ciclos de manutenção e melhoria. Soluções que possuem características como essas são comumente atribuídas ao contexto de DevOps, mas como estamos falando de machine learning alguns requisitos são diferentes dos tradicionais. A necessidade de atender cenários de desenvolvimento que envolvem manipulação de dados deu origem ao termo DataOps, que quando ampliado considera também práticas de MLOps.

Antes de aplicarmos esses conceitos, vivíamos um dilema dentro de nossa equipe de Data Science causado pelo fato de seus principais desenvolvedores não serem profissionais de TI, enquanto seus entregáveis compõem parte “da produção”. Desta forma é necessário oferecer meios aos cientistas de dados de seguirem as melhores práticas, mantendo seu foco nos casos de uso, nos requisitos de negócio, na análise de dados e modelagem. Com essa filosofia surgiu o framework Noronha, cujo principal objetivo é facilitar a adesão de práticas MLOps (e parte de DataOps) em equipes de inteligência artificial, através de uma arquitetura genérica o suficiente para garantir liberdade de inovação com o surgimento de novas tecnologias.

Image for post
Image for post
Fonte: autoria everis Brasil

A proposta do Noronha é auxiliar na gestão do ciclo de vida de aplicações ML durante suas etapas de treinamento e inferência. Ao utilizá-lo, você estará seguindo boas práticas de desenvolvimento mesmo sem ter amplo conhecimento sobre elas. Um dos principais meios usados para conseguir isso é obrigar seus usuários a trabalharem containerizados, provendo uma imagem base do Docker que por sua vez possui (além de ferramentas do próprio framework), o ecossistema de um cientista: Python, Conda e Jupyter. Através dela, os usuários podem instalar suas dependências, criar seus notebooks e então utilizar o framework para rodar os processos de ML. Para atender o maior número de casos de uso possíveis, o Noronha se baseia em definições feitas pelo usuário a respeito dos modelos que serão utilizados, como seus arquivos de input e output. Por meio destas, é possível acompanhar o modelo de ponta a ponta, começando pelo cadastro de dataset e treinamentos, até o momento em que ele se torna um endpoint que recebe algum estímulo e gera uma predição.

Quando percebemos que essa é uma área altamente demandada por nossos clientes e do interesse que MLOps tem, decidimos nos desafiar a compartilhar o projeto Noronha como open-source, para que tanto cientistas quanto engenheiros e arquitetos possam dar suas opiniões e contribuições. Entretanto, era necessário reestruturar o código, de forma que fosse possível evoluí-lo de acordo com funcionalidades que a comunidade venha a entender como necessárias ou relevantes. Com isso, decidimos adotar a utilização de plugins para delegar funções que não fazem parte do objetivo principal do framework. Internamente estes plugins são chamados de ilhas, pois ajudam a compor toda a baía de Noronha. A temática marítima é inspirada em outras tecnologias de containers que possuem código aberto, como Docker e Kubernetes.

As tarefas delegadas aos plugins são basicamente de gerenciamento dos artefatos envolvidos no ciclo de vida de ML. O MongoDB armazena todos os metadados e associações entre estes arquivos, enquanto o Artifactory (ou Nexus) serve como storage. É comum para um cientista de dados trabalhar repetidas vezes no processo de versionamento de dataset e modelo até que se tenha um bom resultado, para que então essa versão seja oferecida como produto. Nesse sentido, o framework possui uma extensa biblioteca de comandos Linux e Python que auxiliam o usuário em tarefas de cadastro, treinamento, e publicação.

Desenvolver e refatorar o Noronha para finalmente poder lançá-lo como um framework foi uma tarefa árdua, mas que gerou muitos aprendizados dentro de nossa equipe. Por isso, os convido para darem uma olhada e se aventurarem a usá-lo. Estaremos sempre presentes na comunidade e nos fóruns, procurando sanar dúvidas, corrigir bugs, promover discussões e principalmente evoluir a ferramenta para que possa se tornar de fato um curinga no universo MLOps (com um braço em DataOps), pois é assim que a usamos hoje.

Exponential intelligence for exponential companies

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store