🎯 Definicja
Deployment Modeli to proces przenoszenia modelu uczenia maszynowego ze środowiska badawczego (Jupyter Notebook) na środowisko produkcyjne, gdzie może on generować predykcje (Inference) dla realnych użytkowników lub systemów. To moment, w którym model zaczyna przynosić wartość biznesową.
🔑 Kluczowe punkty
- Tryby:
- Batch: Model przelicza miliony rekordów raz na noc (np. Scoring klienta).
- Real-Time (Online): Model wystawiony jako API (REST/gRPC), odpowiada w milisekundach (np. rekomendacja filmu, detekcja fraudu przy płatności).
- Edge: Model działa na urządzeniu (telefon, kamera), bez internetu.
- Monitoring: Wdrożenie to nie koniec. Trzeba monitorować Data Drift (czy dane się zmieniły?) i Model Decay (czy model “głupieje”?).
📚 Szczegółowe wyjaśnienie
Samo wytrenowanie modelu (model.fit()) to prosta część. Deployment wymaga:
- Konteneryzacji: Spakowania modelu i zależności (Docker).
- Orkiestracji: Zarządzania skalowaniem (Kubernetes/KServe).
- Wersjonowania: Jaka wersja modelu działa? (MLflow Model Registry).
- Testowania: Shadow Deployment (model działa “na cicho”, porównujemy go ze starym), Canary Deployment (tylko 5% ruchu idzie na nowy model).
💡 Przykład zastosowania
System rekomendacji Netflixa.
- Data Scientists trenują model na historii oglądania.
- Nowy model trafia do Model Registry.
- Pipeline CI/CD pakuje go do kontenera i wrzuca na serwery.
- Gdy odpalasz aplikację, strzela ona do API z Twoim ID.
- Model w czasie rzeczywistym zwraca listę “Polecane dla Ciebie”.
📌 Źródła
- “Machine Learning Engineering” - Andriy Burkov.
- “Designing Machine Learning Systems” - Chip Huyen.
👽 Brudnopis
- MLOps to DevOps dla ML.
- Częsty błąd: skrypt Pythona z notebooka wrzucony na produkcję (“To działa u mnie”).