Cientistas de Dados e os profissionais de aprendizado de máquina lidam com um número significativo de dados de vários tipos em um projeto típico de ciência de dados. Vários modelos foram desenvolvidos com várias configurações e recursos, bem como várias iterações de ajuste de parâmetros para obter o desempenho ideal.
Nesse cenário, todas as modificações de dados e ajustes no processo de construção de modelos devem ser monitorados e medidos para determinar o que funcionou e o que não funcionou. Também é vital poder voltar a uma edição anterior e analisar os resultados anteriores.
O Data Version Control (DVC), que auxilia no gerenciamento dos dados, no modelo subjacente e na execução de resultados reproduzíveis, é uma dessas tecnologias que nos permite monitorar tudo isso.
Neste post, examinaremos de perto o Controle de Versão de Dados e as melhores ferramentas a serem usadas. Vamos começar.
O que é o Controle de Versão de Dados?
O controle de versão é necessário para todos os sistemas de produção. Um único ponto de acesso aos dados mais atualizados. Qualquer recurso frequentemente modificado, principalmente por vários usuários ao mesmo tempo, precisa da criação de uma trilha de auditoria para acompanhar todas as alterações.
O sistema de controle de versão é responsável por garantir que todos na equipe estejam na mesma página. Ele garante que todos na equipe estejam trabalhando na versão mais recente do arquivo e, mais importante, que todos estejam colaborando no mesmo projeto ao mesmo tempo.
Se você tiver o equipamento adequado, poderá fazer isso com o mínimo de esforço!
Você terá conjuntos de dados consistentes e um arquivo completo de todas as suas pesquisas se usar uma estratégia de gerenciamento de versão de dados confiável. As ferramentas de controle de versão de dados são essenciais para seu fluxo de trabalho se você se preocupa com a reprodutibilidade, a rastreabilidade e o histórico do modelo de ML.
Eles ajudam você a adquirir uma versão de um item, como um hash de um conjunto de dados ou modelo, que você pode usar para identificar e comparar. Essa versão de dados geralmente é inserida em sua solução de gerenciamento de metadados para garantir que seu treinamento de modelo seja versionado e repetível.
Melhores ferramentas de controle de versão de dados
Agora é hora de olhar para as melhores soluções de controle de versão de dados disponíveis, que você pode usar para acompanhar cada parte do seu código.
1. git-lfs
O projeto Git LFS é de uso gratuito. No Git, arquivos grandes como amostras de áudio, vídeos, bancos de dados e fotos são substituídos por ponteiros de texto e o conteúdo do arquivo é salvo em um servidor remoto como GitHub.com ou GitHub Enterprise.
Ele permite que você use o Git para criar versões de arquivos enormes—até vários GB de tamanho—hospedar mais em seus repositórios Git utilizando armazenamento externo e clonar e recuperar repositórios de arquivos grandes mais rapidamente. Quando se trata de gerenciamento de dados, esta é uma solução bastante leve. Para trabalhar com o Git, você não precisa de comandos extras, sistemas de armazenamento ou kits de ferramentas.
Limita a quantidade de informações que você baixa. Isso implica que clonar e recuperar arquivos grandes de repositórios será mais rápido. Os ponteiros são feitos de um material mais leve e apontam para o LFS.
Como resultado, quando você envia seu repositório para o repositório principal, ele é atualizado rapidamente e ocupa menos espaço.
Prós
- Integra-se facilmente aos fluxos de trabalho de desenvolvimento da maioria das empresas.
- Não há necessidade de lidar com direitos extras porque usa as mesmas permissões do repositório Git.
Desvantagens
- O Git LFS requer o uso de servidores dedicados para armazenar seus dados. Como resultado, suas equipes de ciência de dados ficarão bloqueadas e sua carga de trabalho de engenharia aumentará.
- Muito especializado e pode exigir o uso de uma variedade de ferramentas diferentes para fases subsequentes no fluxo de trabalho de ciência de dados.
Preços
É de uso gratuito para todos.
2. LagoFS
O LakeFS é uma solução de versão de dados de código aberto que armazena dados no S3 ou GCS e tem um paradigma de ramificação e confirmação semelhante ao Git que é dimensionado para petabytes.
Essa estratégia de ramificação torna seu data lake compatível com ACID, permitindo que as alterações ocorram em ramificações distintas que podem ser construídas, mescladas e revertidas atômica e instantaneamente.
O LakeFS permite que as equipes criem atividades de data lake que podem ser repetidas, atômicas e com versão. É um novato na cena, mas é uma força a ser reconhecida.
Ele usa uma abordagem de ramificação e controle de versão semelhante ao Git para interagir com seu lago de dados, escalável até Petabytes de dados. Em uma escala de exabytes, você pode verificar o controle de versão.
Prós
- As operações do tipo Git incluem ramificação, confirmação, mesclagem e reversão.
- Ganchos de pré-commit/merge são usados para verificações de CI/CD de dados.
- Fornece recursos complexos, como transações ACID para armazenamento em nuvem simples, como S3 e GCS, mantendo o formato neutro.
- Reverta as alterações nos dados em tempo real.
- Escalável prontamente, permitindo acomodar lagos de dados muito grandes. O controle de versão pode ser fornecido para configurações de desenvolvimento e produção.
Desvantagens
- O LakeFS é um produto novo, portanto, a funcionalidade e a documentação podem mudar mais rapidamente do que nas soluções anteriores.
- Como ele é focado no controle de versão de dados, você precisará utilizar uma variedade de ferramentas adicionais para várias partes do fluxo de trabalho de ciência de dados.
Preços
É de uso gratuito para todos.
3. DVC
O Data Version Control é uma solução de versão de dados gratuita projetada para aplicativos de ciência de dados e aprendizado de máquina. É um programa que permite definir seu pipeline em qualquer idioma.
Ao gerenciar arquivos grandes, conjuntos de dados, modelos de aprendizado de máquina, código e assim por diante, a ferramenta torna os modelos de aprendizado de máquina compartilháveis e reproduzíveis. O programa segue o exemplo do Git ao fornecer uma linha de comando simples que pode ser configurada em apenas alguns passos.
Como o próprio nome indica, DVC não é apenas sobre versionamento de dados. Também facilita o gerenciamento de pipelines e modelos de aprendizado de máquina para equipes.
Finalmente, o DVC ajudará a melhorar a consistência dos modelos de sua equipe e sua repetibilidade. Em vez de usar sufixos de arquivo e comentários complicados no código, aproveite Ramificações do Git para experimentar novas ideias. Para viajar, empregue rastreamento métrico automatizado em vez de papel e lápis.
Para transmitir pacotes consistentes de aprendizado de máquina modelos, dados e código em produção, computadores distantes ou na área de trabalho de um colega, você pode utilizar comandos push/pull em vez de scripts ad-hoc.
Prós
- É leve, de código aberto e funciona com todas as principais plataformas de nuvem e tipos de armazenamento.
- Flexível, independente de formato e estrutura e simples de implementar.
- Toda a evolução de cada modelo de ML pode ser rastreada até seu código-fonte e dados.
Desvantagens
- O gerenciamento de pipeline e o controle de versão DVC estão inextricavelmente ligados. Haverá redundância se sua equipe já estiver utilizando outro produto de pipeline de dados.
- Como o DVC é leve, sua equipe pode precisar projetar recursos adicionais manualmente para torná-lo mais fácil de usar.
Preços
É de uso gratuito para todos.
4. Lago Delta
DeltaLake é uma camada de armazenamento de código aberto que aumenta a confiabilidade do data lake. O Delta Lake oferece suporte a transações ACID e gerenciamento de metadados escalável, além de streaming e processamento de dados em lote.
Ele funciona com as APIs do Apache Spark e fica em seu data lake existente. O Delta Sharing é o primeiro protocolo aberto do mundo para compartilhamento seguro de dados nas empresas, simplificando a troca de dados com outras empresas, independentemente de seus sistemas de computador.
Os Delta Lakes são capazes de lidar com petabytes de dados com facilidade. Os metadados são armazenados da mesma maneira que os dados e os usuários podem obtê-los usando o método Descrever detalhes. A Delta Lakes tem uma arquitetura única que pode ler dados de fluxo e lote.
Upserts são simples de fazer usando Delta. Esses upserts ou mesclagens na tabela Delta são comparáveis a SQL Merges. Você pode usá-lo para integrar dados de outro quadro de dados em sua tabela e realizar atualizações, inserções e exclusões.
Prós
- Muitos recursos, como transações ACID e gerenciamento robusto de metadados, podem estar disponíveis em sua solução de armazenamento de dados atual.
- O Delta Lake agora pode gerenciar facilmente tabelas com bilhões de partições e arquivos em uma escala de petabytes.
- Reduz a necessidade de controle manual de versão de dados e outras preocupações com dados, permitindo que os desenvolvedores se concentrem no desenvolvimento de produtos em seus data lakes.
Desvantagens
- Como foi projetado para trabalhar com Spark e dados enormes, o Delta Lake geralmente é sobrecarregado para a maioria das tarefas.
- Exige o uso de um formato de dados dedicado, o que limita sua flexibilidade e o torna incompatível com seus formulários atuais.
Preços
É de uso gratuito para todos.
5. Idiota
Dolt é um banco de dados SQL que faz bifurcação, clonagem, ramificação, mesclagem, push e pull da mesma maneira que um repositório git. Para melhorar a experiência do usuário de um banco de dados de controle de versão, o Dolt permite que os dados e a estrutura mudem em sincronia.
É uma excelente ferramenta para você e seus colegas de trabalho colaborarem. Você pode se conectar ao Dolt da mesma forma que faria com qualquer outro banco de dados MySQL e executar consultas ou fazer alterações nos dados usando comandos SQL.
Quando se trata de versionamento de dados, o Dolt é único. Dolt é um banco de dados, ao contrário de algumas das outras soluções que apenas versionam dados. Embora o software esteja atualmente em seus estágios iniciais, há esperanças de torná-lo totalmente compatível com Git e MySQL em um futuro próximo.
Todos os comandos com os quais você está familiarizado com o Git também funcionarão com o Dolt. Arquivos de versões Git, tabelas de versões Dolt Usando a interface de linha de comando, importe arquivos CSV, confirme suas alterações, publique-as em um controle remoto e mescle as alterações de seu colega de equipe.
Prós
- Leve e open source em parte.
- Em comparação com opções mais obscuras, ele possui uma interface SQL, tornando-o mais acessível aos analistas de dados.
Desvantagens
- Em comparação com outras alternativas de versionamento de banco de dados, o Dolt ainda é um produto em desenvolvimento.
- Como o Dolt é um banco de dados, você deve transferir seus dados para ele para obter os benefícios.
Preços
Todos são bem-vindos para usar a sessão da comunidade. A plataforma não oferece preços premium; em vez disso, você deve entrar em contato com o provedor.
6. Paquiderme
Pachyderm é um sistema de controle de versão de ciência de dados gratuito com muitos recursos. O Pachyderm Enterprise é uma poderosa plataforma de ciência de dados projetada para colaboração em larga escala em ambientes altamente seguros.
O Pachyderm é uma das poucas plataformas de ciência de dados da lista. O objetivo da Pachyderm é fornecer uma plataforma que gerencie o ciclo completo de dados e simplifique a duplicação das descobertas dos modelos de aprendizado de máquina. Pachyderm é conhecido como “o Docker of Data” neste contexto. O Pachyderm empacota seu ambiente de execução usando contêineres do Docker. Isso simplifica a duplicação dos mesmos resultados.
Os cientistas de dados e as equipes de DevOps podem implantar modelos com confiança graças à combinação de dados versionados com o Docker. Graças a um sistema de armazenamento eficiente, petabytes de dados estruturados e não estruturados podem ser mantidos enquanto os custos de armazenamento são reduzidos ao mínimo.
Ao longo das fases do pipeline, o controle de versão baseado em arquivo fornece um registro de auditoria completo para todos os dados e artefatos, incluindo saídas intermediárias. Muitos dos recursos da ferramenta são orientados por esses pilares, que ajudam as equipes a tirar o máximo proveito dela.
Prós
- Com base em contêineres, seus ambientes de dados serão portáteis e fáceis de transferir entre provedores de nuvem.
- Robusto, com capacidade de escalar de sistemas pequenos a extremamente grandes.
Desvantagens
- Como há tantos elementos móveis, como o servidor Kubernetes necessário para lidar com a edição gratuita do Pachyderm, há uma curva de aprendizado mais acentuada.
- O Pachyderm pode ser um desafio para incorporar à infraestrutura existente de uma empresa por causa de seus muitos componentes tecnológicos.
Preços
Você pode começar a usar a plataforma com a sessão da comunidade e, para a edição corporativa, é necessário entrar em contato com o fornecedor.
7. Netuno
Os metadados de construção de modelo são gerenciados pelo repositório de metadados de ML, que é um aspecto importante da pilha de MLOps. Para cada fluxo de trabalho de MLOps, o Neptune funciona como armazenamento de metadados centralizado.
Você pode acompanhar, visualizar e comparar milhares de modelos de aprendizado de máquina em um só lugar. Inclui recursos como rastreamento de experimentos, registro de modelos e monitoramento de modelos, além de uma interface colaborativa. Inclui mais de 25 ferramentas e bibliotecas diferentes integradas, incluindo várias ferramentas de treinamento de modelos e ajuste de hiperparâmetros.
Você pode se juntar ao Neptune sem usar seu cartão de crédito. Uma conta do Gmail será suficiente em seu lugar.
Prós
- A integração com qualquer pipeline, fluxo, base de código ou estrutura é simples.
- As visualizações em tempo real, a API fácil e o suporte rápido
- Com o Neptune, você pode fazer um “backup” de todos os dados de seus experimentos em um local, que pode ser recuperado posteriormente.
Desvantagens
- Embora não seja totalmente de código aberto, uma versão individual presumivelmente seria suficiente para uso privado, embora esse acesso seja limitado a um mês.
- Existem algumas pequenas falhas de design a serem encontradas.
Preços
Você pode começar a usar a plataforma com o plano Individual, que é gratuito para todos. A seção de preços começa a partir de $ 150/mês.
Conclusão
Neste post, discutimos as melhores ferramentas de versionamento de dados. Cada ferramenta, como vimos, tem seu próprio conjunto de recursos. Alguns eram gratuitos, enquanto outros exigiam pagamento. Alguns são bem adequados ao modelo de pequenas empresas, enquanto outros são mais adequados ao modelo de grandes negócios.
Como consequência, você deve selecionar o melhor software para seus propósitos depois de pesar as vantagens e desvantagens. Recomendamos que você teste a versão de avaliação gratuita antes de comprar um produto premium.
Deixe um comentário