DVC Pipelines : jak zbudować powtarzalny pipeline uczenia maszynowego

DVC Pipelines : jak zbudować powtarzalny pipeline uczenia maszynowego
2 min de lecture

PyImageSearch publikuje samouczek poświęcony budowaniu powtarzalnego pipeline’u uczenia maszynowego z DVC, narzędziem do wersjonowania danych i modeli współpracującym z Gitem. Podpisany przez Vikrama Singha przewodnik pokazuje, jak połączyć kilka etapów, od wstępnego przetwarzania danych po ewaluację, aby uruchamiać je jedną komendą.

Przykład opiera się na klasycznym zbiorze danych Iris. Surowe dane z pliku iris.csv są najpierw dzielone na zbiór treningowy i testowy w proporcji 80/20, zachowując rozkład klas. Następnie następuje trenowanie modelu regresji logistycznej, a potem ewaluacja, która oblicza dokładność i generuje raport klasyfikacji. Samouczek precyzuje, że cały projekt używa tylko trzech bibliotek: DVC 3.48.4, pandas 2.1.4 i scikit-learn 1.3.2.

Trzy etapy połączone plikiem konfiguracyjnym

Każdy etap jest opisany w pliku dvc.yaml, który określa komendę do wykonania, pliki, od których zależy etap, oraz wyniki, które produkuje. Dane wyjściowe jednego etapu służą jako dane wejściowe następnego. Zatem zmiana w zbiorze danych uruchamia cały pipeline od nowa, podczas gdy zmiana tylko w skrypcie trenowania ponownie uruchamia jedynie trenowanie i ewaluację.

Te zależności są zapisywane w pliku dvc.lock, który rejestruje dokładny stan pipeline’u podczas jego wykonania. Według autora plik ten powinien być wersjonowany z Gitem, co pozwala innemu członkowi zespołu lub serwerowi ciągłej integracji na odtworzenie wyników za pomocą komend dvc pull, a następnie dvc repro. Gdy nic się nie zmieniło, DVC informuje, że etapy są aktualne i nie wykonuje żadnych obliczeń.

Inspekcja i porównywanie wykonania

Samouczek prezentuje kilka komend inspekcyjnych. dvc dag wyświetla graf etapów w formie schematu, dvc status wskazuje, które zależności się zmieniły, a dvc diff porównuje dane wyjściowe z ostatnią zapisaną wersją. Do śledzenia wydajności, dvc metrics show wyświetla metryki z ostatniego wykonania, a dvc metrics diff porównuje je między jednym a drugim commitem.

W przedstawionym przykładzie ewaluacja na 30 próbkach testowych daje dokładność 0,9333. Autor wskazuje, że ta sama logika pozwala śledzić efekt zmiany parametrów lub danych, wykrywając zarówno postępy, jak i regresje.

Samouczek wspomina także o opcjonalnych rozszerzeniach. Hiperparametry mogą być przeniesione do pliku params.yaml, wykresy mogą być śledzone jako dane wyjściowe, a nowe etapy, takie jak inżynieria cech czy przeszukiwanie hiperparametrów, mogą być dodane do grafu bez modyfikacji innych etapów. DVC zajmuje się wtedy przeliczeniem tylko dotkniętych części.