Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos...
Transcript of Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos...
![Page 1: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/1.jpg)
Como fazer controle de
versões de dados e modelos de Machine Learning usando
o DVC?Alexandre Ray, Data Scientist
28/11/2019
![Page 3: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/3.jpg)
O que é
● Ferramenta para versionar artefatos (datasets e modelos)
● Baseada no Git
● Reprodutibilidade
![Page 4: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/4.jpg)
Exemplo...
![Page 5: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/5.jpg)
Instalação
![Page 6: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/6.jpg)
Exemplo
#1 - Dataset
#2 - Pré-processamento#3 - Treinamento do modelo
#4 - Modelo
Vamos supor que temos a estrutura de pastas de um projeto conforme a figura abaixo
Os arquivos da pasta src serão versionados pelo git e os arquivos da pasta artifacts serão versionados pelo DVC
![Page 7: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/7.jpg)
Exemplo
Para inicializar o DVC no repositório, basta digitar o comando git init
![Page 8: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/8.jpg)
ExemploPara realizar o tracking da pasta artifacts, usamos o comando dvc add artifacts
Perceba que foi criado um arquivo artifacts.dvcEsse arquivo é um metafile e é versionado pelo git
Automaticamente foi criado um .gitignore para que a pasta artifacts não seja mais versionada pelo git
![Page 9: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/9.jpg)
Exemplo
![Page 10: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/10.jpg)
Exemplo
No término de um experimento, nós usamos a tag do git para “travar” todo o código que foi produzido até aquele momento
![Page 11: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/11.jpg)
Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados para a versão 1. A figura abaixo mostra o conteúdo de todos os arquivos
![Page 12: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/12.jpg)
Exemplo
Usando o dvc status, podemos ver que o conteúdo da pasta artifacts foi alterado
Usamos novamente o comando dvc add para adicionar as novas mudanças. Em seguida, podemos ver que o metafile artifacts.dvc foi modificado
![Page 13: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/13.jpg)
Exemplo
Vamos criar uma tag para o primeiro experimento
![Page 14: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/14.jpg)
Exemplo Vamos supor que já acabamos o experimento 1 e fizemos um segundo experimento. Para simular esse comportamento, vamos apenas trocar o conteúdo dos arquivos por version 2
![Page 15: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/15.jpg)
Exemplo
![Page 16: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/16.jpg)
Exemplo
![Page 17: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/17.jpg)
Exemplo Vamos supor que queremos voltar no experimento 01. Basta ir até a tag correspondente
![Page 18: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/18.jpg)
Exemplo Vemos que os arquivos da pasta src (versionados pelo git) já foram trocados. Entretanto, os arquivos versionados pelo dvc ainda não foram trocados.
![Page 19: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/19.jpg)
Exemplo Basta usar o comando dvc checkout para trazer os arquivos versionados pelo DVC
![Page 20: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/20.jpg)
Comandos usados neste exemplo:
● dvc init
● dvc status
● dvc add <FOLDER_NAME>
Lista completa de comandos:
![Page 21: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/21.jpg)
Outros comandos
● dvc remote add -d s3remote s3://<BUCKET_URL> (https://dvc.org/doc/command-reference/remote)
● dvc push (https://dvc.org/doc/command-reference/push)
● dvc pull (https://dvc.org/doc/command-reference/pull)
● dvc run (https://dvc.org/doc/get-started/pipeline)
![Page 22: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/22.jpg)
Referências
● https://dvc.org/
● https://github.com/iterative/dvc
● https://www.kdnuggets.com/2019/09/version-control-data-science-tracking-machine-learning-models-datasets.html
![Page 23: Como fazer controle de versões de dados e … › thedevconf › ...2019/12/03 · Exemplo Vamos supor que fizemos uma iteração do projeto e todos os arquivos foram alterados](https://reader033.fdocumentos.tips/reader033/viewer/2022053012/5f0fb4027e708231d44577db/html5/thumbnails/23.jpg)
vagas.creditas.com.br
Conheça nossas vagas e canais de Product Technology e Agile
Nosso Twitter @CreditasTech
Blog sobre Product Technology medium.com/creditas-tech
Comunidade no Meetupmeetups Creditas
Linkedin e InstagramCreditas Br
about.me/alexandreray