Tworzenie powtarzalnych potoków ML
sklearn Pipeline, utrwalanie potoków za pomocą joblib, parametryzowane uruchomienia z plikami konfiguracyjnymi.
Tworzenie powtarzalnych potoków ML to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Learn AI with Python, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Dlaczego powtarzalność jest ważna
Wynik, którego nie można odtworzyć, nie jest nauką, tylko przypadkiem. Powtarzalne potoki gwarantują, że te same dane i konfiguracja zawsze doprowadzą do powstania tego samego modelu, co ma kluczowe znaczenie podczas debugowania, audytów i pracy zespołowej.
Potok sklearn
Obiekt Pipeline biblioteki scikit-learn łączy przetwarzanie wstępne z modelem, dzięki czemu podczas wnioskowania stosowane są dokładnie te same transformacje co podczas trenowania, eliminując rozbieżność między trenowaniem a obsługą modelu.
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.ensemble import RandomForestClassifier
pipe = Pipeline([
("scaler", StandardScaler()),
("model", RandomForestClassifier(n_estimators=200))
])
pipe.fit(X_train, y_train)Zapisywanie potoku jako artefaktu
Ponieważ cały potok jest jednym obiektem, można zapisać go jako pojedynczy artefakt i załadować w dowolnym miejscu, mając pewność, że przetwarzanie wstępne jest przechowywane razem z modelem.
joblib.dump i load
joblib wydajnie serializuje obiekty scikit-learn (lepiej obsługuje duże tablice NumPy niż pickle). Należy zapisać wytrenowany potok, a następnie załadować go ponownie na potrzeby obsługi modelu.
import joblib
joblib.dump(pipe, "pipeline.joblib") # save
loaded = joblib.load("pipeline.joblib") # reload
preds = loaded.predict(X_new)Konfiguracja hiperparametrów w YAML
Wartości zapisane bezpośrednio w kodzie ukrywają informacje o ustawieniach użytych w przebiegu. Należy umieścić wszystkie hiperparametry w pliku YAML, aby każde ustawienie było jawne, objęte kontrolą wersji i możliwe do zmiany bez edytowania kodu.
# config.yaml
model:
n_estimators: 200
max_depth: 8
data:
test_size: 0.2
random_state: 42Ładowanie konfiguracji
Plik YAML należy odczytać raz podczas uruchamiania i przekazać jego wartości do potoku, aby jeden plik sterował całym przebiegiem.
import yaml
with open("config.yaml") as f:
cfg = yaml.safe_load(f)
model = RandomForestClassifier(
n_estimators=cfg["model"]["n_estimators"],
max_depth=cfg["model"]["max_depth"]
)Ustalanie ziaren losowości
Powtarzalność wymaga również ustalenia ziaren losowości we wszystkich miejscach: przy podziale na zbiory treningowy i testowy, inicjalizacji modelu oraz każdym tasowaniu. Ziarno należy przechowywać w konfiguracji YAML, aby było jawne i spójne.
from sklearn.model_selection import train_test_split
X_tr, X_te, y_tr, y_te = train_test_split(
X, y, test_size=cfg["data"]["test_size"],
random_state=cfg["data"]["random_state"]
)Makefile do powtarzalnych kroków
Makefile zamienia każdy etap potoku w nazwany cel, dzięki czemu można uruchomić make train zamiast zapamiętywać długie polecenia. Standaryzuje to sposób pracy w całym zespole.
Definiowanie celów Make
Typowe cele to make data, make train i make evaluate, z których każdy wywołuje odpowiedni skrypt.
# Makefile
data:
python src/prepare_data.py
train:
python src/train.py --config config.yaml
evaluate:
python src/evaluate.py --config config.yamlŁączenie zależności
Cele Make mogą zależeć od siebie, dzięki czemu make train uruchomi najpierw data, jeśli będzie to konieczne, gwarantując prawidłową kolejność wykonywania potoku.
train: data
python src/train.py --config config.yamlPołączenie wszystkich elementów
Powtarzalna konfiguracja obejmuje potok Pipeline zapisany za pomocą joblib, wszystkie hiperparametry w pliku YAML, ustalone ziarna losowości oraz plik Makefile udostępniający cele make data / train / evaluate. Każdy może sklonować repozytorium i odtworzyć dokładnie ten sam model.
Szybki test
Sprawdzenie wiedzy dotyczącej powtarzalnych potoków.
Podsumowanie
Zbudowali Państwo powtarzalne potoki: potok sklearn Pipeline zapisany za pomocą joblib.dump/load, wszystkie hiperparametry w konfiguracji YAML, ustalone ziarna losowości oraz plik Makefile z celami make data / train / evaluate. Następny temat: monitorowanie modeli na produkcji.
Często zadawane pytania
Czy lekcja „Tworzenie powtarzalnych potoków ML” jest bezpłatna?
Tak — pełny tekst „Tworzenie powtarzalnych potoków ML” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Learn AI with Python, przejdź na CoddyKit PRO. Kurs Learn AI with Python zawiera 4 lekcji w sumie.
Co nauczysz się w „Tworzenie powtarzalnych potoków ML”?
sklearn Pipeline, utrwalanie potoków za pomocą joblib, parametryzowane uruchomienia z plikami konfiguracyjnymi. Ćwiczysz Learn AI with Python z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Learn AI with Python?
Nie wymagamy żadnego doświadczenia. Learn AI with Python w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Tworzenie powtarzalnych potoków ML”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Learn AI with Python?
Tak. Każda lekcja Learn AI with Python zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Śledzenie eksperymentów za pomocą MLflow
- Rejestr modeli i wersjonowanie
- Tworzenie powtarzalnych potoków ML
- Monitorowanie wydajności modelu na produkcji