PyImageSearch pubblica un tutorial dedicato alla costruzione di una pipeline di apprendimento automatico riproducibile con DVC, uno strumento di versioning di dati e modelli che funziona con Git. Firmato da Vikram Singh, questa guida mostra come concatenare più fasi, dalla pre-elaborazione dei dati alla valutazione, per rieseguirle con un unico comando.
- Il tutorial di PyImageSearch mostra come costruire una pipeline di machine learning riproducibile con DVC.
- La pipeline collega pre-elaborazione, addestramento e valutazione di un modello sul dataset Iris.
- Il file dvc.lock, versionato con Git, permette di riprodurre i risultati con dvc pull e dvc repro.
- Comandi come dvc metrics diff confrontano le prestazioni tra un commit e l’altro.
L’esempio si basa sul dataset Iris, un classico del settore. Il file grezzo iris.csv viene prima separato in un insieme di addestramento e uno di test, secondo una proporzione 80/20 che conserva le proporzioni delle classi. Segue l’addestramento di un modello di regressione logistica, quindi una valutazione che calcola l’accuratezza e produce un report di classificazione. Il tutorial precisa che l’intero progetto utilizza solo tre librerie: DVC 3.48.4, pandas 2.1.4 e scikit-learn 1.3.2.
Tre fasi collegate da un file di configurazione
Ogni fase è descritta in un file dvc.yaml, che specifica il comando da eseguire, i file da cui dipende la fase e i risultati che produce. Le uscite di una fase servono come ingressi alla successiva. Così, una modifica del dataset fa rieseguire l’intera pipeline, mentre una modifica del solo script di addestramento fa rieseguire solo l’addestramento e la valutazione.
Queste dipendenze sono registrate in un file dvc.lock, che memorizza lo stato esatto della pipeline durante la sua esecuzione. Secondo l’autore, questo file deve essere versionato con Git, permettendo a un altro membro del team, o a un server di integrazione continua, di riprodurre i risultati con i comandi dvc pull e poi dvc repro. Quando nulla è cambiato, DVC indica che le fasi sono aggiornate e non effettua alcun calcolo.
Ispezionare e confrontare le esecuzioni
Il tutorial presenta diversi comandi di ispezione. dvc dag mostra il grafo delle fasi sotto forma di schema, dvc status indica quali dipendenze sono cambiate, e dvc diff confronta le uscite con l’ultima versione registrata. Per il monitoraggio delle prestazioni, dvc metrics show visualizza le metriche dell’ultima esecuzione, e dvc metrics diff le confronta da un commit all’altro.
Nell’esempio presentato, la valutazione su 30 campioni di test dà un’accuratezza di 0,9333. L’autore indica che la stessa logica permette di monitorare l’effetto di un cambiamento di parametri o dati, individuando sia i progressi che le regressioni.
Il tutorial accenna infine a estensioni opzionali. Gli iperparametri possono essere spostati in un file params.yaml, i grafici possono essere monitorati come output, e nuove fasi, come l’ingegneria delle caratteristiche o la ricerca degli iperparametri, possono essere aggiunte al grafo senza modificare le altre fasi. DVC si occupa quindi di ricalcolare solo le parti interessate.





