Accueil
/
Blog
/
MLOps: Por que o rastreamento de dados e modelos de experimentos é importante? Como ferramentas como DVC e MLflow podem resolver esse desafio?
Artigos
02.05.2022
7 minutos

MLOps: Por que o rastreamento de dados e modelos de experimentos é importante? Como ferramentas como DVC e MLflow podem resolver esse desafio?

Com o aumento do interesse e o número de projetos de aprendizado de máquina (carro autônomo, reconhecimento facial, sistemas de recomendação), o desenvolvimento tradicional de software passou de regras codificadas para regras estimadas por dados, também conhecidas como modelos baseados em dados (veja a figura 1). Surgiu um conjunto de novos desafios para a construção de sistemas de informação confiáveis e estáveis que dependem de modelos imperfeitos baseados em dados, como controle de versão, implantação, monitoramento, explicabilidade e reprodutibilidade de modelos.

Por Samson ZHANG, Cientista de dados na LittleBigCode

Figura 1. Aprendizado de máquina versus desenvolvimento de software tradicional. Fonte: http://datalya.com

Há um conjunto totalmente novo de melhores práticas de engenharia de software que vem com o uso de modelos baseados em dados para enfrentar esses desafios, chamados de MLOPs. Para ter uma visão mais ampla do que é MLOps, recomendo que você dê uma olhada no artigo de Jamila Rejeb: Por que é tão importante entender os MLOps? O objetivo principal do MLOps é tornar todo o ciclo de vida do seu projeto de ML automatizado e repetível. Neste artigo, nos concentraremos principalmente no experimento de rastreamento/controle de versões de dados e modelos. Os principais problemas que o rastreamento de experimentos de dados e modelos visa resolver são:

  • Reprodutibilidade do código
  • Reprodutibilidade do conjunto de dados
  • Registro de artefatos (pesos do modelo, hiperparâmetros)
  • Comparação dos resultados dos experimentos

Um modelo orientado por dados é, por definição, um modelo que aprende com os dados (veja a figura 2). Isso significa que falar sobre controle de versão do modelo não envolve apenas o controle de versão do código/algoritmo (redes neurais, árvores, etc...) e seus diferentes parâmetros (pesos, etc...). Também envolve o controle de versão dos dados usados para treinar estes últimos, pois, na prática, o conjunto de dados pode mudar, o que afeta o desempenho do modelo. O controle de versão do modelo torna o modelo reproduzível em diferentes ambientes e facilita a colaboração.

Ser capaz de reproduzir seus modelos não beneficia apenas você. Em alguns casos, isso também pode evitar problemas legais em que você precisaria provar a propriedade dos modelos, mostrando que você pode gerá-los de ponta a ponta.

Figura 2. O que é um modelo baseado em dados. Fonte: http://dvc.org

Por que precisamos rastrear nossos experimentos com modelos?

A engenharia de software tradicional acompanha a lógica e as regras dos sistemas por meio do controle de versões de seu código, o que é facilmente possível com ferramentas como o Git. À medida que os projetos de aprendizado de máquina integram modelos orientados por dados aos sistemas de informação tradicionais para substituir a lógica codificada, pode-se querer criar versões de modelos pelos mesmos motivos.

Para algumas empresas, os modelos baseados em dados se tornaram o núcleo de seus sistemas e estão inteiramente relacionados ao desempenho desses modelos. O sucesso das empresas pode depender de sua capacidade de melhorar seus modelos para crescer.

Quando os modelos baseados em dados são tão importantes para o sucesso de um projeto, eles também definem a capacidade e os limites do sistema. Para algoritmos/modelos complexos, pode-se querer explorar um novo caminho promissor com muitos experimentos para melhorar os modelos existentes, mas também pode ser necessário reverter se a exploração não der nada. Além disso, pode-se interessar em reutilizar uma parte de um experimento e combiná-la com outros novos recursos do algoritmo. Pode ser fácil perder o controle de seus experimentos anteriores se não forem bem gerenciados. Esses experimentos são caros e caros (modelos complexos como GANs podem levar semanas inteiras para serem treinados para um único conjunto de hiperparâmetros), então você gostaria de poder rastrear seus experimentos e reproduzir os modelos do zero, se necessário.

Apenas rastrear o modelo com melhor desempenho não é suficiente?

Como qualquer cientista experiente diria, a metodologia é importante e acompanhar os parâmetros e resultados dos experimentos é fundamental. Como cientista de dados, você não deve apenas explorar os dados, mas também manter o melhor modelo treinado. Você deve e precisa acompanhar todos os seus experimentos com modelos. Saber quais configurações de treinamento não produzem os melhores resultados é tão importante quanto manter o melhor modelo usado na produção. Como a engenharia de software tradicional, o histórico de experimentos ajuda os membros da sua equipe e você a se lembrarem do que foi feito, especialmente quando você tem muitas configurações de experimentos e tenta se lembrar delas 6 meses depois. Ele informa quais configurações você já tentou e permite que você não repita experimentos fracassados/pouco promissores, economizando tempo e dinheiro.

Recursos e ferramentas desejáveis

Experimentando treinar modelos de aprendizado de máquina, descobri que executar um ciclo de treinamento e salvar os pesos finais é a parte mais fácil ao fazer uma pesquisa de modelos, desde que você não precise analisar seu experimento e seu código, o que, francamente, nunca acontece. Ao analisar os experimentos com modelos, o que eu quero lembrar é como os modelos são criados e treinados, com quais dados e ambiente (dependências, hardware), ser capazes de comparar diferentes execuções e recuperar os modelos de melhor desempenho com base em métricas avaliadas em métricas avaliadas em um conjunto de dados remanescente, idealmente com uma interface de usuário intuitiva.

Para fazer isso, usaremos Git, mFlow e DVC.

Todas as três ferramentas são gratuitas, de código aberto e se complementam para fornecer uma experiência completa de rastreamento de experimentos com modelos.

Existem muitas ferramentas para rastreamento de experimentos de modelos, mas exploraremos duas delas, gratuitas e de código aberto, que complementam bem a ferramenta de controle de versão do Git:

Os outros assuntos do MLOPs serão abordados em artigos futuros.

Escolhemos o MLFlow e o DVC porque, quando se trata de rastreamento de experimentos de código aberto, o MLflow e o DVC estão entre as ferramentas mais populares, com respectivamente 167 milhões de downloads/11,2 mil estrelas/mais de 360 colaboradores e 9,2 mil estrelas/mais de 240 colaboradores e 9,2 mil estrelas/mais de 240 colaboradores. Eles foram adotados por muitas equipes que trabalham em empresas grandes e pequenas e suas comunidades são enormes. Ele fornece uma sensação de segurança de que o Mlflow e o DVC continuarão a se desenvolver e serem usados por muitos anos.

Figura 3. Os experimentos do Mlflow e os conjuntos de dados DVC estão todos vinculados aos commits do Git

O Mlflow e o DVC fornecem uma experiência completa de rastreamento de experimentos de modelos. Eles ajudam você a:

  1. Centralize seus dados
  2. Reduza seu custo de armazenamento de dados ao não duplicar o SATA
  3. Compartilhe seus experimentos com seus colaboradores

Tudo o que você precisa ver são os git commits. De qualquer hash do seu git commit, você pode encontrar Todos As informações sobre seu experimento modelo:

  1. O conjunto de dados usado é rastreado por arquivos*.dvc em seu commit
  2. Os parâmetros de treinamento, métricas e pesos do modelo registrados pelo Mlflow (o Mlflow também registra o hash de confirmação para pesquisa reversa)

Podemos usar a tag MLflow “tags.mlflow.source.git.commit” para pesquisar o experimento correspondente (por meio de mlflow ui ou qualquer outra API mlflow) (veja a figura 4)

Figura 4. Experimente, execute a pesquisa por git commit hash na interface do usuário do Mlfow

Normalmente, gostaríamos de examinar o conjunto de dados e o modelo usados que produziram um determinado resultado registrado pelo Mlflow. Nesse caso, o hash git commit pode ser encontrado nas tags da execução do experimento. A partir disso, você pode simplesmente verificar seu repositório git e conjuntos de dados rastreados por DVC.

Conclusão

Treinar modelos baseados em dados pode ser caro (tempo e dinheiro). O controle automático de versões de seus conjuntos de dados e experimentos de modelo ajuda você a:

• Centralize seus experimentos • Compartilhe os resultados de seus experimentos • Reproduza seus modelos • Evite repetir experimentos fracassados

Neste artigo, você tem uma explicação sobre a finalidade do rastreamento de modelos e dados para projetos de aprendizado de máquina e uma breve visão geral de como algumas ferramentas como DVC (para rastreamento de conjuntos de dados) e MLflow (rastreamento de experimentos de treinamento) podem ajudar a resolver esse desafio.

Este artigo pertence a uma série de artigos sobre ferramentas e práticas de MLOps para rastreamento de dados e experimentos com modelos. Quatro artigos são publicados:

PARTE 1 (este artigo): Introdução ao rastreamento de dados e modelos de experimentos

PARTE 2 (Clique aqui): MLOps: Como o DVC gerencia de forma inteligente seus conjuntos de dados para treinar seus modelos de aprendizado de máquina com base no Git?

PARTE 3 (disponível em breve): MLOps: Como o MLflow rastreia facilmente seus experimentos e ajuda você a compará-los?

PARTE 4 (disponível em breve): Caso de uso: acompanhe sem esforço seus experimentos de modelo com DVC e MLflow

Sinta-se à vontade para ler outros artigos se você já estiver familiarizado com os conceitos!

Autres articles

Voir tout
Vue aérienne d'un marais avec de petits cours d'eau sinueux traversant des zones de végétation brune et des berges sableuses.

contato

Vos données sont-elles prêtes pour l'IA ?

Un échange de 30 minutes avec l'un de nos experts pour évaluer votre maturité Data et identifier les premières actions.

Réserver un diagnostic