Configurando DVC Remotes

Introdução ao Controle de Versão de Dados com DVC

Ravi Bhadauria

Machine Learning Engineer

Recapitulando

  • Inicializando o repositório DVC
    • Execute dvc init
    • Repositório dentro do workspace (/path/to/my-project)
  • Configurando o cache do DVC
    • Área de staging temporária no diretório .dvc
      • /path/to/my-project/.dvc/cache
    • Faça staging de arquivos temporários com dvc add
  • Agora: DVC Remotes
    • Armazenamento externo
    • Rastrear e compartilhar assets
Introdução ao Controle de Versão de Dados com DVC

A necessidade de DVC Remotes

  • DVC Remotes: local para armazenar dados
  • Parecido com Git remotes, mas para dados em cache
  • Benefícios de usar remotes
    • Sincronizar arquivos e diretórios grandes
    • Centralizar ou distribuir o armazenamento
    • Economizar espaço local

Esquema do fluxo de dados do workspace DVC para cache e remote

Introdução ao Controle de Versão de Dados com DVC

Tipos de armazenamento compatíveis

Gráfico dos tipos de armazenamento compatíveis no DVC

Introdução ao Controle de Versão de Dados com DVC

Configurando remotes

  • Definindo remotes

    • dvc remote add <name> <location>
  • Bucket S3

$ dvc remote add s3_remote \
   s3://mys3bucket
  • Alterações no config do DVC
 ['remote "s3_remote"']
     url = s3://mys3bucket
  • Bucket GCP
$ dvc remote add gcp_remote \
   gs://myGCPbucket
  • Azure
$ dvc remote add azure_remote \
   azure://mycontainer/path
Introdução ao Controle de Versão de Dados com DVC

Remotes locais

  • Remotes locais são úteis para prototipagem rápida
  • Use diretórios do sistema ou NAS (Network Attached Storage)
$ dvc remote add mylocalremote /tmp/dvc
  • Defina o remote padrão com a flag -d
$ dvc remote add -d mylocalremote /tmp/dvc
  • Remote padrão definido na seção core de .dvc/config
[core]
remote = mylocalremote
Introdução ao Controle de Versão de Dados com DVC

Listando remotes

  • Listando remotes
$ dvc remote list
s3_remote    s3://mys3bucket
local_remote /tmp/dvcremote
  • Lê de .dvc/config
 ['remote "s3_remote"']
     url = s3://mys3bucket
 ['remote "local_remote"']
     url = /tmp/dvcremote
Introdução ao Controle de Versão de Dados com DVC

Modificando a configuração de remotes

  • Personalizações com dvc remote modify
$ dvc remote modify s3_remote connect_timeout 300
  • Alteração no arquivo de config do DVC
 ['remote "s3_remote"']
     url = s3://mys3bucket
     connect_timeout = 300
Introdução ao Controle de Versão de Dados com DVC

Resumo

  • DVC remotes servem para compartilhar dados e modelos de ML
  • Vários locais de armazenamento, locais e em nuvem, são compatíveis
  • Adicionar remotes: dvc remote add
    • Use a flag -d para definir o padrão
  • Listar remotes: dvc remote list
  • Modificar remotes: dvc remote modify
Introdução ao Controle de Versão de Dados com DVC

Vamos praticar!

Introdução ao Controle de Versão de Dados com DVC

Preparing Video For Download...