0Pricing
Learn AI with Python · Lekcja

Monitorowanie wydajności modelu na produkcji

Wykrywanie dryfu danych, sygnały pogorszenia działania modelu, wyzwalacze ponownego trenowania, biblioteka evidently.

Monitorowanie wydajności modelu na produkcji to bezpłatna lekcja Learn AI with Python na CoddyKit. To lekcja 4 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 monitorować model na produkcji

Model, który działał dobrze w chwili wdrożenia, może po cichu tracić jakość wraz ze zmianą rzeczywistości. Monitorowanie wcześnie wykrywa ten dryf, zanim po cichu doprowadzi on do gwałtownego spadku kluczowych wskaźników biznesowych, dzięki czemu wiadomo, kiedy należy ponownie wytrenować model.

Dryf danych a dryf koncepcji

  • Dryf danych: zmienia się rozkład danych wejściowych (np. skład nowych klientów).
  • Dryf koncepcji: zmienia się zależność między danymi wejściowymi a zmienną docelową (zmienia się to, co przewiduje rezygnację klienta).

Oba zjawiska obniżają dokładność, ale monitorowanie wykrywa je na różne sposoby.

PSI do wykrywania dryfu danych

Population Stability Index (PSI) porównuje rozkład cechy w bieżących danych z rozkładem bazowym. Oba rozkłady należy podzielić na przedziały, a następnie zsumować dla nich wartości (now% - base%) * ln(now% / base%).

Interpretacja wartości PSI

Praktyczne reguły: PSI < 0.1 oznacza brak istotnej zmiany, 0.1-0.25 umiarkowaną zmianę (należy ją zbadać), a > 0.25 dużą zmianę (prawdopodobnie należy ponownie wytrenować model). PSI oblicza się osobno dla każdej cechy.

import numpy as np

def psi(base, now, bins=10):
    edges = np.percentile(base, np.linspace(0, 100, bins + 1))
    b_pct = np.histogram(base, edges)[0] / len(base) + 1e-6
    n_pct = np.histogram(now, edges)[0] / len(now) + 1e-6
    return np.sum((n_pct - b_pct) * np.log(n_pct / b_pct))

Test KS dla rozkładów

Test Kołmogorowa-Smirnowa (KS) porównuje dwa rozkłady ciągłe. Mała wartość p oznacza, że rozkład produkcyjny istotnie różni się od rozkładu treningowego, sygnalizując dryf.

from scipy.stats import ks_2samp

stat, pvalue = ks_2samp(train_feature, prod_feature)
if pvalue < 0.05:
    print("Distribution drift detected")

PSI a KS

  • PSI: pojedyncza, łatwa do interpretacji liczba, świetna do paneli i progów.
  • KS: statystyczny test hipotezy z wartością p, bardziej rygorystyczny dla cech ciągłych.

Wiele zespołów raportuje obie wartości obok siebie.

Czym jest Evidently

Evidently to biblioteka open source automatyzująca tworzenie raportów dotyczących dryfu i jakości. Zamiast ręcznie kodować każdą metrykę, można połączyć gotowe kontrole i uzyskać raport HTML/JSON.

# pip install evidently
from evidently.report import Report
from evidently.metric_preset import DataDriftPreset

Tworzenie raportu DataDriftPreset

DataDriftPreset uruchamia pełny zestaw testów dryfu dla wszystkich kolumn, porównując referencyjny zbiór danych (treningowy) z bieżącymi danymi (produkcyjnymi).

report = Report(metrics=[DataDriftPreset()])
report.run(
    reference_data=train_df,
    current_data=prod_df
)
report.save_html("drift_report.html")

Programowe pobieranie wyników

Raport można wyeksportować jako dict i przekazać do logiki alertów, dzięki czemu monitorowanie będzie działać bez nadzoru zgodnie z harmonogramem.

result = report.as_dict()
drift_share = result["metrics"][0]["result"]["dataset_drift"]
print("Dataset drift flag:", drift_share)

Alertowanie o spadku dokładności

Gdy dostępne są etykiety referencyjne, należy śledzić bieżącą dokładność i wyzwalać alert, gdy spadnie ona poniżej ustalonego progu. Jest to najbardziej bezpośredni sygnał, że nadszedł czas na ponowne trenowanie modelu.

THRESHOLD = 0.85

if live_accuracy < THRESHOLD:
    send_alert(f"Accuracy dropped to {live_accuracy:.2f}")

Domknięcie pętli

Dobre monitorowanie prowadzi do działania: wykrycie dryfu -> alert -> uruchomienie potoku ponownego trenowania (pliku Makefile/rejestru z wcześniejszych lekcji) -> wdrożenie nowej wersji. Monitorowanie bez planu reakcji to tylko szum.

Szybki sprawdzian

Sprawdź swoją wiedzę na temat monitorowania.

Podsumowanie

Monitorowano modele produkcyjne: PSI i KS test wykrywają dryf danych, Evidently automatyzuje raporty za pomocą DataDriftPreset, a po spadku dokładności poniżej ustalonego progu wysyłany jest alert i uruchamiane jest ponowne trenowanie. W ten sposób kończy się kurs MLOps. Następny kurs: udostępnianie modeli AI za pomocą FastAPI.

Często zadawane pytania

Czy lekcja „Monitorowanie wydajności modelu na produkcji” jest bezpłatna?

Tak — pełny tekst „Monitorowanie wydajności modelu na produkcji” 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 „Monitorowanie wydajności modelu na produkcji”?

Wykrywanie dryfu danych, sygnały pogorszenia działania modelu, wyzwalacze ponownego trenowania, biblioteka evidently. Ć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 4 z 4.

Ile czasu zajmuje lekcja „Monitorowanie wydajności modelu na produkcji”?

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

  1. Śledzenie eksperymentów za pomocą MLflow
  2. Rejestr modeli i wersjonowanie
  3. Tworzenie powtarzalnych potoków ML
  4. Monitorowanie wydajności modelu na produkcji
← Powrót do Learn AI with Python