Skip to content
Latchkey

O Que É DVC? Data Version Control Explicado

DVC (Data Version Control) é uma ferramenta open-source que versiona grandes datasets e modelos junto ao Git e define pipelines de dados reprodutíveis.

O DVC é uma das ferramentas mais populares para trazer controle de versão ao machine learning. Ele funciona com o Git em vez de substituí-lo: o Git rastreia seu código e pequenos arquivos de ponteiro, enquanto o DVC armazena os grandes dados e modelos em object storage remoto.

O que é o DVC

O DVC é uma ferramenta de linha de comando, usada como o Git, que versiona dados e modelos grandes demais para viver em um repositório Git. Quando você adiciona um dataset com "dvc add", o DVC armazena os dados em um cache e remoto, e faz commit de um pequeno arquivo de ponteiro .dvc no Git para que a versão viaje junto com seu código.

Pipelines e reprodutibilidade

Além do versionamento, o DVC pode definir um pipeline em um arquivo dvc.yaml com stages, dependências e outputs. Executar "dvc repro" reexecuta apenas os stages cujas entradas mudaram, muito como um sistema de build, o que torna os pipelines de ML reprodutíveis e incrementais.

Remotes e armazenamento

O DVC faz push dos dados para um remoto - S3, GCS, Azure Blob ou um servidor SSH. Colegas de equipe e jobs de CI executam "dvc pull" para buscar as versões exatas dos dados que um commit referencia, mantendo os bytes pesados fora do Git enquanto preservam a reprodutibilidade.

DVC no CI

Um job de CI faz checkout do repositório, faz pull dos dados fixados e reproduz o pipeline, de modo que toda execução treina exatamente com os dados pretendidos.

Using DVC in a CI job
steps:
  - uses: actions/checkout@v4
  - run: pip install dvc[s3]
  - run: dvc pull          # fetch pinned data + models
  - run: dvc repro         # rerun changed pipeline stages

Nota da Latchkey

Os pulls do DVC podem mover gigabytes do object storage a cada execução. Na Latchkey, fazer cache do diretório de cache do DVC entre execuções evita rebaixar dados inalterados, e o auto-retry em leituras instáveis de S3 ou GCS impede que um longo pipeline de treinamento falhe por causa de um único soluço transitório.

Principais conclusões

  • O DVC versiona grandes datasets e modelos junto ao Git, mantendo os bytes pesados em object storage remoto.
  • Seus pipelines dvc.yaml e o "dvc repro" tornam os workflows de ML reprodutíveis e incrementais.
  • No CI, o "dvc pull" mais um diretório DVC em cache restauram exatamente os dados que um commit referencia, de forma rápida.

Guias relacionados