O PyImageSearch publica um tutorial dedicado à construção de um pipeline de aprendizagem automática reproduzível com DVC, uma ferramenta de versionamento de dados e modelos que funciona com Git. Assinado por Vikram Singh, este guia mostra como encadear várias etapas, desde o pré-processamento dos dados até à avaliação, para as executar novamente com um único comando.
O exemplo baseia-se no conjunto de dados Iris, um clássico da área. O ficheiro bruto iris.csv é primeiro separado num conjunto de treino e num conjunto de teste, segundo uma proporção de 80/20 que preserva as proporções das classes. Segue-se o treino de um modelo de regressão logística, e depois uma avaliação que calcula a precisão e produz um relatório de classificação. O tutorial especifica que todo o projeto usa apenas três bibliotecas: DVC 3.48.4, pandas 2.1.4 e scikit-learn 1.3.2.
Três etapas ligadas por um ficheiro de configuração
Cada etapa é descrita num ficheiro dvc.yaml, que especifica o comando a executar, os ficheiros dos quais a etapa depende e os resultados que produz. As saídas de uma etapa servem de entradas para a seguinte. Assim, uma modificação do conjunto de dados relança todo o pipeline, enquanto uma modificação apenas do script de treino relança apenas o treino e a avaliação.
Estas dependências são registadas num ficheiro dvc.lock, que regista o estado exato do pipeline durante a sua execução. Segundo o autor, este ficheiro deve ser versionado com Git, o que permite a outro membro da equipa, ou a um servidor de integração contínua, reproduzir os resultados com os comandos dvc pull e depois dvc repro. Quando nada mudou, o DVC indica que as etapas estão atualizadas e não efetua nenhum cálculo.
Inspecionar e comparar as execuções
O tutorial apresenta vários comandos de inspeção. dvc dag exibe o grafo das etapas sob a forma de esquema, dvc status indica quais as dependências que mudaram, e dvc diff compara as saídas com a última versão registada. Para o acompanhamento do desempenho, dvc metrics show exibe as métricas da última execução, e dvc metrics diff compara-as de um commit para outro.
No exemplo apresentado, a avaliação em 30 amostras de teste dá uma precisão de 0,9333. O autor indica que a mesma lógica permite acompanhar o efeito de uma alteração de parâmetros ou de dados, detetando tanto os progressos como as regressões.
O tutorial menciona ainda extensões opcionais. Os hiperparâmetros podem ser movidos para um ficheiro params.yaml, os gráficos podem ser acompanhados como saídas, e novas etapas, como a engenharia de características ou a procura de hiperparâmetros, podem ser adicionadas ao grafo sem modificar as outras etapas. O DVC encarrega-se então de recalcular apenas as partes envolvidas.





