SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
Como fazer controle de
versões de dados e modelos
de Machine Learning usando
o DVC?
Alexandre Ray, Data Scientist
28/11/2019
O problema
O que é
● Ferramenta para versionar artefatos (datasets e modelos)
● Baseada no Git
● Reprodutibilidade
Exemplo...
Instalação
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
Exemplo
Para inicializar o
DVC no repositório,
basta digitar o
comando git init
Exemplo
Para realizar o tracking da pasta
artifacts, usamos o comando dvc
add artifacts
Perceba que foi criado um
arquivo artifacts.dvc
Esse arquivo é um metafile
e é versionado pelo git
Automaticamente foi criado um
.gitignore para que a pasta
artifacts não seja mais
versionada pelo git
Exemplo
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
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
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
Exemplo
Vamos criar uma tag para o primeiro
experimento
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
Exemplo
Exemplo
Exemplo Vamos supor que queremos voltar
no experimento 01. Basta ir até a tag
correspondente
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.
Exemplo Basta usar o comando dvc checkout para trazer os
arquivos versionados pelo DVC
Comandos usados neste exemplo:
● dvc init
● dvc status
● dvc add <FOLDER_NAME>
Lista completa de comandos:
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)
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
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 Meetup
meetups Creditas
Linkedin e Instagram
Creditas Br
about.me/alexandreray

Mais conteúdo relacionado

Mais procurados

Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting BasicsDr.Ravi
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기nexusz99
 
Roteiro prática 3 Cinzas
Roteiro prática 3   CinzasRoteiro prática 3   Cinzas
Roteiro prática 3 CinzasJúnior Santos
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
Git Tutorial I
Git Tutorial IGit Tutorial I
Git Tutorial IJim Yeh
 
Git & SourceTree
Git & SourceTreeGit & SourceTree
Git & SourceTreeTu Tran
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDevHélio Medeiros
 
Qb d na industria farmaceutica
Qb d na industria farmaceuticaQb d na industria farmaceutica
Qb d na industria farmaceuticaElezerLemes
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantesPaula Santana
 

Mais procurados (20)

Caldeiras
CaldeirasCaldeiras
Caldeiras
 
Unix Shell Scripting Basics
Unix Shell Scripting BasicsUnix Shell Scripting Basics
Unix Shell Scripting Basics
 
Git
GitGit
Git
 
Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기Github 으로 학교 팀 프로젝트 하기
Github 으로 학교 팀 프로젝트 하기
 
Python Orientação a Objeto
Python Orientação a ObjetoPython Orientação a Objeto
Python Orientação a Objeto
 
Maven Overview
Maven OverviewMaven Overview
Maven Overview
 
Gitops Hands On
Gitops Hands OnGitops Hands On
Gitops Hands On
 
Roteiro prática 3 Cinzas
Roteiro prática 3   CinzasRoteiro prática 3   Cinzas
Roteiro prática 3 Cinzas
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
Git Tutorial I
Git Tutorial IGit Tutorial I
Git Tutorial I
 
Git & SourceTree
Git & SourceTreeGit & SourceTree
Git & SourceTree
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Destilação
DestilaçãoDestilação
Destilação
 
Overview of github
Overview of githubOverview of github
Overview of github
 
Treinamento git - Papos RBSDev
Treinamento git - Papos RBSDevTreinamento git - Papos RBSDev
Treinamento git - Papos RBSDev
 
Qb d na industria farmaceutica
Qb d na industria farmaceuticaQb d na industria farmaceutica
Qb d na industria farmaceutica
 
Plano de Ensino - Bando de Dados
Plano de Ensino - Bando de DadosPlano de Ensino - Bando de Dados
Plano de Ensino - Bando de Dados
 
git and github
git and githubgit and github
git and github
 
Maven
MavenMaven
Maven
 
Workshop git para iniciantes
Workshop git para iniciantesWorkshop git para iniciantes
Workshop git para iniciantes
 

Semelhante a Como controlar versões de dados e ML com DVC

EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareAldson Diego
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com GitRaphael Cruzeiro
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogCesar Augusto Nogueira
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoFelipe
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesLeandro Cavalcante
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerRafael Gomes
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao dockerBenicio Ávila
 
SVN - Subversion: Guia de sobrevivência do usuário
SVN - Subversion: Guia de sobrevivência  do usuárioSVN - Subversion: Guia de sobrevivência  do usuário
SVN - Subversion: Guia de sobrevivência do usuárioFabrício Campos
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPSamuel Sampaio
 
Introdução ao Git e Github Desktop.
Introdução ao Git e Github Desktop.Introdução ao Git e Github Desktop.
Introdução ao Git e Github Desktop.Hugo Brilhante
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o DockerWebSix
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVNLuciano Lima
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Tchelinux
 

Semelhante a Como controlar versões de dados e ML com DVC (20)

EIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de SoftwareEIIFRO2014 - Desenvolvimento Colaborativo de Software
EIIFRO2014 - Desenvolvimento Colaborativo de Software
 
Controle de versionamento com Git
Controle de versionamento com GitControle de versionamento com Git
Controle de versionamento com Git
 
Node JS - Parte 1
Node JS - Parte 1Node JS - Parte 1
Node JS - Parte 1
 
Docker e suas tecnologias
Docker e suas tecnologiasDocker e suas tecnologias
Docker e suas tecnologias
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Olá docker
Olá dockerOlá docker
Olá docker
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
 
Git - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de VersõesGit - Sistema Descentralizado de Controle de Versões
Git - Sistema Descentralizado de Controle de Versões
 
TDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop dockerTDC 2016 Floripa - Workshop docker
TDC 2016 Floripa - Workshop docker
 
Introdução ao docker
Introdução ao dockerIntrodução ao docker
Introdução ao docker
 
Docker
DockerDocker
Docker
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
SVN - Subversion: Guia de sobrevivência do usuário
SVN - Subversion: Guia de sobrevivência  do usuárioSVN - Subversion: Guia de sobrevivência  do usuário
SVN - Subversion: Guia de sobrevivência do usuário
 
Introdução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySPIntrodução ao Git - fs2w - GrupySP
Introdução ao Git - fs2w - GrupySP
 
Introdução ao Git e Github Desktop.
Introdução ao Git e Github Desktop.Introdução ao Git e Github Desktop.
Introdução ao Git e Github Desktop.
 
Primeiros passos com o Docker
Primeiros passos com o DockerPrimeiros passos com o Docker
Primeiros passos com o Docker
 
Intervalo técnico Git/SVN
Intervalo técnico Git/SVNIntervalo técnico Git/SVN
Intervalo técnico Git/SVN
 
Freedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, dockerFreedomday2016 - Fique na caixinha, docker
Freedomday2016 - Fique na caixinha, docker
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
Git em pequenos projetos - Sandro Custódio - Tchelinux Livramento 2019
 

Como controlar versões de dados e ML com DVC

  • 1. Como fazer controle de versões de dados e modelos de Machine Learning usando o DVC? Alexandre Ray, Data Scientist 28/11/2019
  • 3. O que é ● Ferramenta para versionar artefatos (datasets e modelos) ● Baseada no Git ● Reprodutibilidade
  • 6. 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
  • 7. Exemplo Para inicializar o DVC no repositório, basta digitar o comando git init
  • 8. Exemplo Para realizar o tracking da pasta artifacts, usamos o comando dvc add artifacts Perceba que foi criado um arquivo artifacts.dvc Esse arquivo é um metafile e é versionado pelo git Automaticamente foi criado um .gitignore para que a pasta artifacts não seja mais versionada pelo git
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. Exemplo Vamos criar uma tag para o primeiro experimento
  • 14. 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
  • 17. Exemplo Vamos supor que queremos voltar no experimento 01. Basta ir até a tag correspondente
  • 18. 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.
  • 19. Exemplo Basta usar o comando dvc checkout para trazer os arquivos versionados pelo DVC
  • 20. Comandos usados neste exemplo: ● dvc init ● dvc status ● dvc add <FOLDER_NAME> Lista completa de comandos:
  • 21. 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)
  • 22. 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
  • 23. 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 Meetup meetups Creditas Linkedin e Instagram Creditas Br about.me/alexandreray