Há uma crise silenciosa acontecendo dentro de laboratórios de inteligência artificial e equipes de ciência de dados ao redor do mundo. Não se trata de falta de poder computacional, nem de escassez de dados. A crise é mais sutil e, por isso mesmo, muito mais perigosa: a incapacidade de reproduzir resultados.
Imagine passar semanas treinando um modelo que atinge um desempenho extraordinário em seus testes. Você apresenta os resultados, a equipe de negócios comemora, a liderança aprova o investimento. Semanas depois, quando chega a hora de colocar o modelo em produção, ninguém consegue replicar aquele resultado. O dataset mudou imperceptivelmente. Os hiperparâmetros foram sobrescritos. A versão da biblioteca foi atualizada. E o modelo milagroso se foi, como fumaça.
Esse cenário, infelizmente, não é exceção. É a regra. Pesquisadores da área estimam que a vasta maioria dos projetos de machine learning nunca chega a produção, e uma parcela significativa dessas falhas está diretamente ligada à ausência de práticas rigorosas de versionamento. É aqui que entram duas das ferramentas mais poderosas do ecossistema moderno de MLOps: o MLflow e o DVC.
Este artigo é um convite para entender por que o versionamento estruturado não é burocracia, mas sim a espinha dorsal de qualquer operação de machine learning que pretenda ser confiável, colaborativa e escalável. Vamos mergulhar fundo nas boas práticas, nas filosofias por trás de cada ferramenta e no caminho que leva do caos à clareza.
O problema que ninguém quer admitir
Durante anos, o campo do machine learning funcionou como uma espécie de cozinha experimental: cientistas brilhantes testavam ingredientes, ajustavam receitas e, quando algo saía bem, tentavam se lembrar depois de quanto sal haviam usado. Os notebooks Jupyter se tornaram o símbolo dessa cultura: maravilhosamente flexíveis para exploração, mas terrivelmente inadequados para rastreabilidade.
O problema se aprofunda porque o machine learning tem uma natureza fundamentalmente diferente do desenvolvimento de software tradicional. Em um sistema de software convencional, o comportamento do programa é determinado quase que exclusivamente pelo código. Em um modelo de machine learning, o comportamento emerge da combinação de pelo menos quatro elementos: o código, os dados de treinamento, os hiperparâmetros e o ambiente de execução. Altere qualquer um desses elementos e você tem, na prática, um produto diferente.
Um artigo científico publicado na revista AI Magazine em 2025 por Semmelrock e colaboradores documenta essa realidade de forma detalhada. Os pesquisadores identificam que os artefatos criados ao longo do ciclo de vida de um modelo, incluindo datasets, rótulos, logs, dependências de ambiente e sementes aleatórias, influenciam diretamente os resultados finais. A conclusão é inequívoca: a reprodutibilidade confiável em machine learning exige que todos esses artefatos sejam rastreados, armazenados e gerenciados de forma sistemática.
O setor começa a acordar para esse fato. A governança de modelos deixou de ser um assunto reservado a equipes de compliance em bancos e passou a ser uma preocupação central em qualquer empresa que dependa de inteligência artificial para tomar decisões. Auditorias regulatórias, responsabilidade algorítmica e rastreabilidade de decisões automatizadas criaram uma demanda urgente por ferramentas que transformem o caos experimental em histórico auditável.
O que é versionamento em machine learning, realmente
Antes de falar sobre ferramentas, é preciso entender o que estamos versionando. Quando a maioria das pessoas pensa em controle de versão, pensa no Git: um sistema para rastrear mudanças em arquivos de texto, especialmente código. Essa imagem é parcialmente correta para machine learning, mas profundamente incompleta.
Versionar um projeto de machine learning significa manter um registro auditável e recuperável de pelo menos cinco dimensões. A primeira é o código: os scripts de treinamento, as funções de pré-processamento, as arquiteturas de rede. A segunda são os dados: os datasets brutos, os dados processados, os conjuntos de validação e teste. A terceira são os parâmetros: hiperparâmetros, configurações de pipeline, pesos de regularização. A quarta são as métricas: acurácia, perda, F1-score e quaisquer indicadores de desempenho relevantes para o negócio. A quinta é o ambiente: as versões de bibliotecas, o sistema operacional, a versão do interpretador Python.
Observe que apenas a primeira dessas dimensões é adequadamente atendida pelo Git em sua forma pura. As demais exigem soluções complementares. Datasets podem ter gigabytes ou terabytes. Pesos de modelos são arquivos binários enormes. Métricas precisam ser comparadas visualmente entre dezenas de experimentos. É exatamente essa lacuna que o MLflow e o DVC foram projetados para preencher, cada um com uma filosofia e um foco distintos.
DVC: o Git dos dados
O Data Version Control, conhecido universalmente pela sigla DVC, surgiu de uma premissa elegante: o que o Git faz pelo código, o DVC faz pelos dados e pelos modelos. A ferramenta é de código aberto e foi projetada para funcionar em camadas sobre o Git, sem substituí-lo, mas estendendo suas capacidades para lidar com arquivos grandes de maneira eficiente.
A mecânica central do DVC é inteligente. Em vez de armazenar os próprios arquivos de dados no repositório Git, o que seria inviável dado o tamanho típico de um dataset de machine learning, a ferramenta cria arquivos de metadados leves, com a extensão .dvc, que descrevem o conteúdo do arquivo por meio de um hash criptográfico. Esses arquivos de metadados são pequenos o suficiente para viver confortavelmente dentro do Git, enquanto os dados reais são armazenados em um repositório remoto, que pode ser um bucket na Amazon S3, no Google Cloud Storage, no Azure Blob Storage ou em qualquer outro sistema compatível.
O resultado prático é extraordinário. Uma equipe pode trocar de branch no Git e, com um único comando, sincronizar automaticamente o conjunto de dados correspondente àquela versão do projeto. Isso significa que o histórico de dados, o histórico de código e o histórico de modelos compartilham uma linha do tempo unificada. Qualquer membro da equipe pode navegar até um commit específico de seis meses atrás e reconstituir o estado exato do projeto naquele momento, incluindo os dados que estavam sendo usados.
O DVC também permite construir pipelines declarativos. Em vez de um script monolítico que faz tudo do pré-processamento ao treinamento, é possível definir um grafo acíclico direcionado de etapas, onde cada etapa declara suas dependências de entrada e seus artefatos de saída. O DVC detecta automaticamente quais etapas precisam ser reexecutadas quando algo muda. Se apenas os hiperparâmetros foram alterados, somente o treinamento precisa rodar novamente; a etapa de pré-processamento é pulada porque seus dados de entrada não mudaram.
Em novembro de 2025, a empresa lakeFS adquiriu o DVC, e a integração resultante trouxe novas capacidades para o versionamento de grandes repositórios de dados estruturados e não estruturados em escala de data lake. A aquisição representa um passo significativo na maturidade do ecossistema de versionamento de dados para machine learning.
MLflow: a plataforma do ciclo de vida do modelo
Enquanto o DVC é cirúrgico no que faz, focado essencialmente no versionamento de dados e na construção de pipelines reproduzíveis, o MLflow abraça uma visão muito mais abrangente. A plataforma, criada originalmente pelo Databricks e lançada em 2018, se posiciona como um sistema completo para gerenciar o ciclo de vida de modelos de machine learning, da experimentação à produção.
O componente mais conhecido do MLflow é o Tracking Server, uma API e interface gráfica para registrar parâmetros, métricas, versões de código e artefatos durante experimentos. Com algumas linhas de código, é possível fazer com que cada execução de treinamento registre automaticamente tudo o que precisa ser rastreado. Ao final de uma semana intensa de experimentos, o cientista de dados pode abrir a interface do MLflow e ver todas as execuções lado a lado, comparar gráficos de convergência, filtrar por métricas e identificar qual combinação de parâmetros produziu o melhor resultado.
O segundo pilar central do MLflow é o Model Registry, um repositório centralizado onde modelos são catalogados, versionados e promovidos entre estágios de ciclo de vida. Um modelo passa pela fase de candidato, depois por staging, onde é submetido a validações mais rigorosas, e finalmente por produção, onde serve previsões reais. Essa progressão cria uma trilha de auditoria clara e permite que times de engenharia e negócios tenham visibilidade completa sobre o que está rodando em produção e por quê.
Em junho de 2025, o lançamento do MLflow 3.0 marcou uma virada importante. A plataforma, que originalmente atendia apenas modelos de machine learning clássico e deep learning, passou a suportar nativamente aplicações de inteligência artificial generativa e agentes de IA. A nova entidade central, chamada LoggedModel, conecta modelos a versões exatas de código, configurações de prompts, resultados de avaliação e metadados de implantação, garantindo rastreabilidade e reprodutibilidade completas mesmo no contexto de sistemas de linguagem de grande escala.
Outra novidade marcante do MLflow 3.0 foi o Prompt Registry. Pequenas mudanças na formulação de um prompt podem alterar drasticamente o comportamento de um modelo de linguagem, e o MLflow passou a tratar esses prompts com o mesmo rigor aplicado a pesos de modelos: versionamento com histórico completo, comparações visuais entre versões e integração com otimizadores automáticos de prompts. Isso representa um reconhecimento importante de que, no mundo da IA generativa, o prompt é tão crítico quanto a arquitetura do modelo.
A crise da reprodutibilidade e por que ela importa para o seu negócio
A reprodutibilidade em machine learning não é apenas um ideal acadêmico. Ela tem implicações diretas na capacidade de uma organização de operar com confiança, atender regulamentações e escalar seus sistemas de IA com segurança.
Considere o seguinte cenário empresarial: um modelo de crédito é treinado e implantado. Seis meses depois, reguladores exigem que a empresa explique como aquela decisão específica foi tomada para um cliente específico. Sem versionamento adequado, a empresa simplesmente não consegue responder. Ela não sabe qual versão do modelo estava ativa naquele dia, quais dados foram usados no treinamento, nem qual lógica de pré-processamento foi aplicada. Isso não é apenas embaraçoso; em setores regulados, pode resultar em multas severas.
Mas o problema vai além da conformidade regulatória. Sem reprodutibilidade, equipes perdem semanas tentando recriar resultados obtidos meses antes. Sem rastreabilidade, investigar por que um modelo que funcionava bem em produção começou a se degradar se torna uma caça ao tesouro sem mapa. Sem versionamento de dados, é impossível determinar se uma queda de performance foi causada por uma mudança no código ou por uma alteração nos dados de entrada.
A pesquisa de Semmelrock e colaboradores, publicada na revista científica AI Magazine em 2025, articula com precisão essa questão ao afirmar que a confiabilidade da inteligência artificial depende fundamentalmente da reprodutibilidade. Quando experimentos não podem ser reproduzidos, a integridade dos resultados fica comprometida, e com ela a confiança depositada nos sistemas que deles derivam.
A filosofia do armazenamento endereçável por conteúdo
Uma das ideias mais elegantes por trás do DVC é o que os engenheiros chamam de armazenamento endereçável por conteúdo. Em vez de identificar um arquivo pelo seu nome ou localização, o sistema o identifica por um hash criptográfico de seu conteúdo. Isso tem uma consequência poderosa: qualquer mudança, por menor que seja, em um dataset produz um hash completamente diferente. Isso não é apenas uma questão técnica; é uma garantia filosófica de integridade.
Quando um experimento no MLflow está vinculado a um identificador de dados do DVC, e esse identificador é baseado no conteúdo real dos dados, temos uma cadeia de custódia que não pode ser adulterada acidentalmente. Se alguém modificar o dataset e não registrar a mudança, o hash muda, a inconsistência fica visível e o problema é detectado antes que cause danos maiores.
Essa abordagem também resolve um problema de storage elegantemente. O DVC mantém um cache de versões anteriores de dados, evitando duplicação desnecessária. Se dois experimentos usam 95% do mesmo conjunto de dados com apenas 5% de diferença, somente os blocos diferentes precisam ser armazenados novamente. A eficiência de armazenamento resultante é significativa em projetos que evoluem com datasets de grande volume ao longo de meses ou anos.
Integração entre DVC e MLflow: o melhor dos dois mundos
Uma pergunta comum entre equipes que começam a adotar práticas de MLOps é: preciso escolher entre DVC e MLflow, ou posso usar os dois? A resposta não apenas é que é possível usar as duas ferramentas juntas; é que essa combinação representa o estado da arte em rastreabilidade de ponta a ponta.
O padrão de integração mais recomendado é o seguinte: o DVC gerencia o versionamento dos dados brutos, dos dados processados e dos artefatos de modelo, criando ponteiros versionados que vivem no repositório Git. O MLflow gerencia os experimentos, registrando quais parâmetros foram usados, quais métricas foram alcançadas e qual versão dos dados, identificada pelo hash ou pela tag do DVC, foi empregada em cada execução. Ao final, cada experimento no MLflow carrega um identificador preciso que permite reconstituir o estado exato dos dados usados por meio do DVC.
Essa separação de responsabilidades é deliberada e saudável. O DVC é agnóstico em relação a frameworks de machine learning e funciona muito bem como uma camada de dados que pode servir a múltiplas ferramentas. O MLflow, por sua vez, é agnóstico em relação ao formato dos dados e não precisa gerenciar diretamente arquivos de terabytes. Cada ferramenta faz aquilo que faz melhor, e a integração entre elas cria algo maior do que a soma das partes.
Equipes que adotam essa arquitetura relatam ganhos consideráveis em produtividade. Quando um cientista de dados novo entra na equipe, ele pode clonar o repositório, instalar as dependências e, com dois ou três comandos, ter o ambiente completo de um projeto em execução, com os dados corretos e a capacidade de reproduzir qualquer experimento já realizado. O tempo de onboarding cai dramaticamente, e o risco de perda de conhecimento institucional diminui.
Boas práticas de versionamento: o que separa equipes amadoras de equipes profissionais
Ferramentas são necessárias, mas não suficientes. Uma equipe pode ter o MLflow e o DVC instalados e ainda assim operar de forma desorganizada se não seguir um conjunto de práticas disciplinadas. A seguir estão as boas práticas que definem a diferença entre equipes que usam versionamento e equipes que realmente se beneficiam dele.
Versionamento semântico para modelos e datasets
Adotar um esquema de versionamento semântico para modelos e datasets é uma das primeiras decisões de governança que uma equipe deve tomar. O padrão amplamente adotado usa três números separados por pontos: o número maior indica mudanças que quebram compatibilidade retroativa, como uma reformulação completa da arquitetura; o número do meio indica melhorias significativas, como novo conjunto de features ou retreinamento com dados substancialmente diferentes; o número menor indica correções menores ou ajustes incrementais.
Aplicar esse esquema a datasets exige uma reflexão cuidadosa sobre o que constitui uma mudança breaking. A adição de novas colunas geralmente não quebra um modelo treinado anteriormente, mas a remoção de colunas, a mudança de escala de variáveis ou a correção de erros sistemáticos de rotulagem são mudanças que certamente afetarão o comportamento de modelos downstream. Documentar essas mudanças com precisão no changelog do dataset é tão importante quanto o versionamento em si.
Imutabilidade como princípio fundamental
Uma das regras de ouro em versionamento de modelos é tratar versões publicadas como imutáveis. Uma vez que um modelo é registrado no Model Registry do MLflow ou que um dataset é commitado no DVC com uma tag de versão, aquele artefato não deve ser modificado. Se melhorias são necessárias, uma nova versão deve ser criada.
Esse princípio pode parecer rígido demais para equipes acostumadas a atualizar arquivos diretamente. Mas ele resolve um problema sutil e devastador: o da dependência implícita. Se um modelo em produção foi avaliado com base em uma versão de artefato que depois foi silenciosamente modificada, todas as avaliações de performance se tornam inválidas. A versão que passou nas validações não é mais a versão que está rodando. A imutabilidade garante que o que foi testado é exatamente o que foi implantado.
Rastreamento automático versus manual
O MLflow oferece capacidades de rastreamento automático para os principais frameworks de machine learning, incluindo PyTorch, TensorFlow, Scikit-learn e XGBoost. Com uma única chamada de função no início do script, parâmetros e métricas são registrados sem nenhum código adicional. Essa automação é poderosa porque remove a dependência da disciplina individual: os experimentos são registrados mesmo quando o cientista está com pressa ou esquece de fazê-lo manualmente.
No entanto, o rastreamento automático não dispensa o rastreamento manual para informações específicas do negócio. Métricas de negócio, como taxas de conversão esperadas ou impacto financeiro projetado, precisam ser explicitamente registradas. Tags descritivas que contextualizam o propósito do experimento, como um identificador de sprint ou o nome do projeto, também devem ser adicionadas manualmente. A combinação de automação para métricas técnicas e registro manual para contexto de negócio cria um histórico completo e actionable.
Integração com pipelines de CI/CD
Projetos de machine learning maduros tratam modelos como software e aplicam a eles os mesmos princípios de integração contínua e entrega contínua que regem o desenvolvimento de aplicações. Isso significa que cada mudança no código de treinamento ou nos dados dispara automaticamente um pipeline que retreina o modelo, avalia suas métricas e compara com a versão em produção.
O MLflow suporta nativamente esse fluxo por meio de webhooks no Model Registry, disponíveis a partir da versão 3.3, lançada em agosto de 2025. Quando um novo candidato é registrado, um webhook pode acionar automaticamente um pipeline de validação que executa testes de performance, verifica conformidade com requisitos mínimos de qualidade e, se tudo estiver bem, promove o modelo para staging. A aprovação para produção pode ser automática para sistemas de baixo risco ou requerer revisão humana para sistemas críticos.
Gestão do cache e controle de custos de armazenamento
Um aspecto prático frequentemente negligenciado é a gestão do cache do DVC. Como a ferramenta cria cópias de cada versão dos dados, o diretório de cache cresce indefinidamente se não for gerenciado. Equipes que trabalham com datasets grandes precisam de políticas explícitas de retenção: quantas versões históricas manter, quando fazer limpeza de versões obsoletas e como escalar o armazenamento remoto de forma econômica.
Uma solução comum é estabelecer políticas de tempo de vida baseadas no estágio do ciclo de vida. Datasets usados em experimentos ativos são mantidos por completo. Datasets de experimentos arquivados têm apenas os metadados preservados, com os dados reais podendo ser restaurados sob demanda. Datasets de versões de produção são mantidos indefinidamente por razões regulatórias e de auditoria.
Versionamento para a era dos grandes modelos de linguagem
O advento dos modelos de linguagem de grande escala trouxe desafios inéditos para o versionamento. Um modelo como o GPT ou o Llama pode ter centenas de gigabytes de parâmetros, tornando inviável armazená-lo da mesma forma que um modelo de regressão logística de alguns kilobytes. Além disso, o comportamento desses modelos é fortemente determinado pelos prompts utilizados, criando uma dimensão adicional de versionamento que não existia antes.
O MLflow 3.0 responde a esses desafios de forma direta. O Prompt Registry trata prompts como artefatos de primeira classe, com versionamento, histórico de mudanças e comparações visuais entre versões. O sistema de rastreamento foi estendido para capturar não apenas pesos e parâmetros, mas também configurações de retrieval, lógica de reranking e todos os componentes de uma aplicação RAG, sigla para Retrieval-Augmented Generation.
Para os adaptadores de fine-tuning, que são muito menores que os modelos base e mudam com frequência, o DVC oferece uma solução elegante: em vez de versionar o modelo completo a cada iteração, versiona-se apenas o adaptador, que pode ter megabytes em vez de gigabytes. O modelo base, imutável e compartilhado por múltiplos projetos, é referenciado por seu hash e mantido em armazenamento central. Essa abordagem modular reduz drasticamente os custos de armazenamento sem sacrificar a rastreabilidade.
Governança, auditoria e conformidade regulatória
Em setores regulados como saúde, finanças e seguros, a governança de modelos de IA deixou de ser uma boa prática opcional para se tornar uma exigência legal em várias jurisdições. Regulamentações como o AI Act europeu e diretrizes setoriais em diversas partes do mundo exigem que organizações demonstrem que seus sistemas de IA são rastreáveis, auditáveis e passíveis de explicação.
A combinação de MLflow e DVC cria, quando bem implementada, uma cadeia de custódia completa. Para qualquer decisão tomada por um modelo em produção, é possível identificar qual versão do modelo estava ativa, qual dataset foi usado no treinamento, quais parâmetros foram aplicados e quais métricas de validação foram avaliadas antes da aprovação para produção. Esse nível de rastreabilidade não apenas satisfaz requisitos regulatórios; ele constrói a confiança organizacional necessária para escalar o uso de IA com responsabilidade.
O MLflow, em sua versão gerenciada na plataforma Databricks, oferece integração com o Unity Catalog, que adiciona controles de acesso granulares e trilhas de auditoria a nível empresarial. Mas mesmo a versão open source, auto-hospedada, oferece capacidades de rastreamento suficientes para atender os requisitos de muitos frameworks regulatórios quando combinada com boas práticas organizacionais.
Self-hosted versus serviços gerenciados: a escolha certa para cada contexto
Uma decisão importante que equipes enfrentam ao adotar MLflow e DVC é onde hospedar a infraestrutura. A escolha entre auto-hospedagem e serviços gerenciados envolve trade-offs entre controle, custo e complexidade operacional.
A auto-hospedagem, com o MLflow rodando em um cluster Kubernetes interno e o DVC apontando para storage privado, oferece controle total sobre a residência dos dados e as políticas de acesso. Isso é essencial para organizações com dados altamente sensíveis ou que operam em setores com restrições estritas de soberania de dados. O custo pode ser menor em escala, mas exige uma equipe de DevOps dedicada para manter a infraestrutura funcionando.
Os serviços gerenciados, como o Databricks com MLflow integrado ou o DAGsHub para uma solução mais leve, reduzem drasticamente a carga operacional. Atualizações de segurança, escalabilidade e disponibilidade passam a ser responsabilidade do provedor. O trade-off é a dependência de fornecedor e, em alguns casos, custos maiores em escala. Para startups e equipes pequenas que precisam começar rápido sem investir em infraestrutura própria, os serviços gerenciados costumam ser a escolha mais racional.
Uma recomendação que se consolidou na comunidade de MLOps é começar com a versão open source do MLflow para explorar e validar os fluxos de trabalho, usar DVC com armazenamento em nuvem pública para versionar dados desde o início, e então migrar para soluções gerenciadas conforme o volume de projetos e equipes crescer. Essa progressão escalonada evita tanto o excesso de infraestrutura no início quanto as limitações de escala mais tarde.
O fator humano: cultura e disciplina organizacional
Seria ingênuo terminar um artigo sobre versionamento de modelos falando apenas de ferramentas. A realidade é que a maioria dos fracassos em iniciativas de MLOps não é de origem técnica. Eles são de origem cultural.
Introduzir DVC e MLflow em uma equipe que não tem o hábito de documentar experimentos é como instalar um sistema de arquivamento sofisticado em um escritório onde as pessoas estão acostumadas a deixar papéis em qualquer lugar. As ferramentas ficam lá, disponíveis, mas subutilizadas. Os dados continuam sendo referenciados como “dataset_final_v3_revisado.csv”. Os modelos continuam sendo sobrescritos sem registro.
A adoção bem-sucedida de práticas de versionamento exige que a liderança técnica crie incentivos claros e remova fricções. Isso significa integrar o rastreamento de experimentos ao fluxo de trabalho normal da equipe, não como uma etapa adicional opcional, mas como parte do processo padrão que precede qualquer commit de código. Significa celebrar a reprodutibilidade tanto quanto se celebram as melhorias de métricas. E significa criar um ambiente onde é seguro para os cientistas de dados admitirem que não sabem reproduzir um resultado, porque o problema será resolvido sistemicamente, não por meio de horas extras individuais.
As equipes mais maduras em MLOps tratam experimentos não rastreados da mesma forma que código sem testes unitários: como uma dívida técnica que precisa ser quitada, não como uma prática aceitável em circunstâncias normais. Chegar a esse nível de maturidade cultural leva tempo, mas o ponto de partida é sempre o mesmo: começar a versionar, mesmo imperfeitamente, e melhorar iterativamente.
O futuro do versionamento: rumo à automação total
A trajetória das ferramentas de MLOps aponta claramente para um futuro de automação progressiva. O MLflow já caminha nessa direção com o lançamento, em 2025, de capacidades de avaliação contínua que permitem que sistemas monitorem automaticamente modelos em produção e disparem retreinamentos quando a performance se degrada além de um limiar definido. O Prompt Registry agora inclui otimização automatizada de prompts baseada em dados de avaliação.
No lado do DVC, a integração com o lakeFS abre portas para padrões de ramificação e fusão de datasets que espelham os workflows de desenvolvimento de software. Assim como desenvolvedores criam branches para trabalhar em features independentes sem afetar o código principal, cientistas de dados poderão criar branches de dados para experimentar transformações ou aumentações sem comprometer o dataset de produção.
A convergência que se desenha no horizonte é a de pipelines que são ao mesmo tempo reproduzíveis, auditáveis e adaptativos. Sistemas que aprendem continuamente com novos dados, mas que mantêm um registro completo de cada mudança e que podem ser revertidos para qualquer estado anterior em minutos. Essa visão está deixando de ser ficção científica e se tornando realidade operacional para as equipes mais avançadas do setor.
Por onde começar: um roteiro pragmático
Para quem está lendo este artigo e reconhece os problemas descritos em sua própria equipe, a boa notícia é que o primeiro passo não precisa ser um grande projeto de transformação. Versionamento é uma jornada incremental, e cada passo, por menor que seja, reduz imediatamente o risco e melhora a rastreabilidade.
O primeiro passo recomendado é instalar o MLflow e começar a rastrear experimentos. Mesmo sem mudanças nos processos de dados ou de implantação, ter um registro dos parâmetros e métricas de cada execução de treinamento já é uma transformação enorme. Dentro de poucas semanas, a equipe terá uma visão comparativa de todos os experimentos realizados que simplesmente não existia antes.
O segundo passo é introduzir o DVC para versionar os datasets mais críticos. Começar pelos dados de treinamento e validação do modelo mais importante em produção é uma escolha sensata. Isso cria imediatamente uma âncora de rastreabilidade para o sistema mais crítico, sem sobrecarregar a equipe com uma mudança de processo generalizada.
O terceiro passo é conectar os dois sistemas, fazendo com que cada experimento no MLflow registre o identificador de versão dos dados correspondente no DVC. Esse vínculo é o que transforma dois sistemas de versionamento independentes em uma plataforma de rastreabilidade de ponta a ponta.
A partir daí, o caminho é de aprimoramento contínuo: automatizar o registro de experimentos, integrar com pipelines de CI/CD, estabelecer políticas de promoção de modelos, adotar versionamento semântico e, gradualmente, expandir as práticas de governança conforme a maturidade da equipe e as exigências do negócio evoluem.
Reprodutibilidade como ato de responsabilidade
Versionar modelos e datasets não é uma tarefa técnica periférica. É um ato de responsabilidade profissional e organizacional. É a diferença entre uma equipe que produz resultados e uma equipe que produz resultados que podem ser confiados, auditados, explicados e melhorados.
O MLflow e o DVC, juntos, oferecem o ecossistema necessário para que equipes de todos os tamanhos implementem práticas de versionamento de nível empresarial sem precisar construir infraestrutura proprietária do zero. São ferramentas maduras, com comunidades ativas, documentação abrangente e um histórico comprovado em ambientes de produção ao redor do mundo.
Mas as ferramentas são apenas o veículo. O destino é uma cultura de ciência de dados onde a reprodutibilidade é um valor, não um afterthought. Onde cada experimento deixa um rastro rastreável. Onde o conhecimento acumulado por uma equipe não se perde quando um cientista de dados muda de emprego. Onde um modelo em produção pode sempre ser rastreado até os dados, o código e as decisões que o criaram.
Esse é o padrão que equipes de excelência estabelecem. E com as ferramentas certas e a disciplina necessária, está ao alcance de qualquer organização que decida dar o primeiro passo.
Fontes e referências
- Semmelrock et al. (2025). Reproducibility in machine-learning-based research: Overview, barriers, and drivers. AI Magazine, Wiley Online Library.
- Semmelrock et al. (2024). Reproducibility in Machine Learning-based Research: Overview, Barriers and Drivers. arXiv preprint.
- MLflow (2025). MLflow 3 release notes. mlflow.org.
- Databricks (2025). MLflow 3.0: Build, Evaluate, and Deploy Generative AI with Confidence. Databricks Blog.
- DVC Documentation (2025). Versioning Data and Models. dvc.org.
- Atlan (2025). AI Model Versioning Best Practices: MLOps Guide for Enterprises. atlan.com.
- lakeFS (2025). Machine Learning Model Versioning: Top Tools and Best Practices. lakefs.io.
- Introl (2025). Model Versioning Infrastructure: Managing ML Artifacts at Scale. introl.com.
- Kharche, A. (2025). ML Versioning with MLflow, DVC, GitHub: Why It Matters for Delivery Leaders. Medium.
- AWS Builders (2025). ML Done Right: Versioning Datasets and Models with DVC and MLflow. DEV Community.
- Towards Data Science (2025). Use MLflow and DVC for open-source reproducible Machine Learning.
- Label Your Data (2025). Data Versioning: ML Best Practices Checklist 2026. labelyourdata.com.
- Collabnix (2025). LLM Model Versioning: Best Practices and Tools for Production MLOps.
- Sparity (2025). MLflow in 2025: The New Backbone of Enterprise MLOps. sparity.com.
- Walmart Global Tech Blog (2023). Model and Data Versioning: An Introduction to mlflow and DVC. Medium.
- Johal (2026). Refactoring Machine Learning Code for Reproducibility with MLflow and DVC. johal.in.





