Usando Notebooks de Ciência de Dados para Treino e Implantação de Modelos de Machine Learning

Usando Notebooks de Ciência de Dados para Treino e Implantação de Modelos de Machine Learning
22

No artigo anterior, nós mostramos como os modelos de machine learning podem ser treinados para e executados em produção usando a Tail Refinaria.

Notebooks de Ciência de Dados, como Jupyter e Zeppelin, se tornaram uma das ferramentas mais usados em Ciência de Dados. Elas permitem experimentar métodos e ao mesmo tempo documentar o processo usado para obter os resultados.

Muitas vezes, no entanto, essas ferramentas falham em prover um ambiente para treinar e implantar em produção os modelos de forma escalável. Seja porque elas não estão integradas com o Data Lake da empresa, e por isso não é fácil para Cientistas de Dados encontrarem e acessarem os dados que precisam, ou porque eles não estão já conectados com um cluster que permite processamento de grandes conjuntos de dados.

Um cenário muito comum é realizar experimentações usando um notebook de Ciência de Dados e então re-programar o experimento usando outras ferramentas para implantar o pipeline em produção. Mais recentemente, estratégias como executar notebooks Juputer com Ferramentas como o Papermill emergiram para tentar resolver este problema.

Nós acreditamos que quando os pipelines de dados são criados, o mesmo código produzido durante a experimentação deveria ser usado em produção, eliminando assim o retrabalho e diminuindo o número de erros. A mesma abordagem deveria ser usada para treino e implantação de modelos de machine learning.

Faz parte da Tail Refinaria uma ferramenta de notebook de Ciência de Dados que pode ser usada para criar pipelines durante a experimentação. Se a experimentação tem sucesso, é possível agendar o mesmo pipeline para ser executado em produção.

O código produzido pelos nossos notebooks é um código Apache Spark SQL, o que permite executar os pipelines criados em um cluster Apache Spark, suportando assim grandes volumes de dados.

Como você viu nos artigos anteriores, quando treinamos e experimentamos com o nosso modelo, nós estávamos criando células como faríamos em um notebook típico e nós executamos interativamente as células para simular os resultados. Quando ficamos satisfeitos com os resultados, nós agendamos o mesmo pipeline para ser executado em produção. Isto elimina a necessidade de reprogramar pipelines para serem executados em produção.

Os notebooks da Tail Refinaria suportam uma variedade de tipos de célula, e não somente células de texto e de código, como a maioria das ferramentas de notebooks disponíveis. Com células mais especializadas, nós podemos:

 

1 – Usar Células de Leitura para acessar nosso Catálogo de Dados e selecionar datastores para ler do Data Lake, assim tornando nosso processo de encontrar dados para treino muito mais rápido. Além disso, quando se lê de um datastore, a equipe de Ciência de Dados pode escolher se quer ler de uma amostra do datastore ou o conjunto de dados inteiro, assim permitindo experimentações mais rápidas:

 

2 – Usar Células Spark SQL para fazer transformações avançadas nos dados:

3- Usar Células de Visualização para criar gráficos:

4- Usar Células de Escrita para escrever resultados em outro datastore. Células de escrita resolvem todo o processo de lock, versionamento e o trabalho de escrever e atualizar dados do Data Lake:

5- Usar uma Célula de Exportação para exportar os dados para um sistema externo, em diferentes formatos:

6- Usar células de texto para explicar o que foi feito no notebook:

 

 

7- Usar Células de Projeção, Transformação, Agregação e Mesclagem para tirar proveito uma interface Wizard para produzir o código Spark SQL:

 

8 – Usar uma Célula de Machine Learning para treinar e executar um modelo:

 

Quando editamos um notebook na Tail Refinaria, é possível conectá-lo a um cluster Spark simplesmente clicando em um botão e aí simular a execução do notebook célula por célula, testando assim a hipótese antes de implantar em produção.

Ter uma plataforma que permite criar pipelines complexos que podem ser usados para executar experimentos e produzir código de produção se provou uma solução que traz muito valor para nossos clientes, diminuindo o tempo que demora para criar novos modelos e implantá-los.

No próximo artigo, nós vamos mostrar outro aspecto muito importante na construção e manutenção de modelos: o Model Lineage, ou História do Modelo.

 

Esse post faz parte de uma série de conteúdos sobre Refinaria de Dados.

Confira todos os conteúdos:

Post 1: Tail Refinaria – Resolvendo os problemas da Engenharia de Dados

Post 2: Machine Learning com a Tail Refinaria

Post 3: Acesso fácil a dados de treino para construção de modelos de Machine Learning com a Tail Refinaria

Post 4: Simplificando a utilização de algoritmos de Feature Engineering com a Tail Refinaria

Post 5: Treinando e implantando um modelo de Machine Learning com a Tail Refinaria

Post 6: Usando Notebooks de Ciência de Dados para Treino e Implantação de Modelos de Machine Learning

Post 7: Precisamos falar sobre Model Lineage

 

Post escrito por Fabiane Bizinella Nardon (@fabianenardon), Cientista Chefe da Tail. Com mestrado em Ciência da Computação e Doutorado em Engenharia Elétrica, é especialista em Engenharia de Dados e Engenharia de Machine Learning. É também responsável pelo conteúdo editorial da trilha de Engenharia de Machine Learning do QCon São Paulo, palestrante frequente sobre o tema e autora de diversos artigos. Fabiane também foi escolhida Java Champion pela Sun Microsystems, como reconhecimento de sua contribuição para o ecossistema Java.