PyImageSearch veröffentlicht ein Tutorial zum Aufbau einer reproduzierbaren Machine-Learning-Pipeline mit DVC, einem Tool zur Versionierung von Daten und Modellen, das mit Git funktioniert. Verfasst von Vikram Singh, zeigt diese Anleitung, wie mehrere Schritte – von der Datenvorverarbeitung bis zur Evaluation – verkettet werden, um sie mit einem einzigen Befehl neu auszuführen.
Das Beispiel basiert auf dem Iris-Datensatz, einem Klassiker in diesem Bereich. Die Rohdatei iris.csv wird zunächst in einen Trainings- und einen Testdatensatz aufgeteilt, gemäß einem 80/20-Verhältnis, das die Klassenverteilung beibehält. Anschließend folgt das Training eines logistischen Regressionsmodells und eine Evaluation, die die Genauigkeit berechnet und einen Klassifikationsbericht erstellt. Das Tutorial stellt klar, dass das gesamte Projekt nur drei Bibliotheken verwendet: DVC 3.48.4, pandas 2.1.4 und scikit-learn 1.3.2.
Drei Schritte, verbunden durch eine Konfigurationsdatei
Jeder Schritt wird in einer dvc.yaml-Datei beschrieben, die den auszuführenden Befehl, die von diesem Schritt abhängigen Dateien und die von ihm erzeugten Ergebnisse angibt. Die Ausgaben eines Schritts dienen als Eingaben für den nächsten. So löst eine Änderung des Datensatzes die gesamte Pipeline neu aus, während eine Änderung nur des Trainingsskripts nur das Training und die Evaluation neu startet.
Diese Abhängigkeiten werden in einer dvc.lock-Datei festgehalten, die den genauen Zustand der Pipeline bei ihrer Ausführung protokolliert. Laut Autor sollte diese Datei mit Git versioniert werden, sodass ein anderes Teammitglied oder ein Continuous-Integration-Server die Ergebnisse mit den Befehlen dvc pull und dann dvc repro reproduzieren kann. Wenn sich nichts geändert hat, zeigt DVC an, dass die Schritte aktuell sind, und führt keine Berechnungen durch.
Ausführungen inspizieren und vergleichen
Das Tutorial stellt mehrere Inspektionsbefehle vor. dvc dag zeigt den Schrittgraphen als Diagramm an, dvc status gibt an, welche Abhängigkeiten sich geändert haben, und dvc diff vergleicht die Ausgaben mit der letzten gespeicherten Version. Für das Performance-Tracking zeigt dvc metrics show die Metriken der letzten Ausführung an, und dvc metrics diff vergleicht sie von Commit zu Commit.
Im vorgestellten Beispiel ergibt die Evaluation auf 30 Testmustern eine Genauigkeit von 0,9333. Der Autor weist darauf hin, dass dieselbe Logik es ermöglicht, die Auswirkung einer Parameter- oder Datenänderung zu verfolgen und dabei sowohl Fortschritte als auch Rückschritte zu erkennen.
Das Tutorial erwähnt schließlich optionale Erweiterungen. Hyperparameter können in eine params.yaml-Datei ausgelagert werden, Diagramme können als Ausgaben verfolgt werden, und neue Schritte wie Feature-Engineering oder Hyperparameter-Suche können dem Graphen hinzugefügt werden, ohne andere Schritte zu ändern. DVC kümmert sich dann darum, nur die betroffenen Teile neu zu berechnen.





