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

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