W dzisiejszej lekcji nauczysz się wdrażać swoje modele uczenia maszynowego na platformie Heroku, popularnym narzędziu do hostowania aplikacji. Opanujesz również podstawowe techniki monitorowania wydajności i działania Twojego wdrożonego modelu, aby móc szybko reagować na potencjalne problemy.
Wdrożenie modelu to proces udostępniania go światu, aby inni użytkownicy mogli z niego korzystać. To kluczowy krok, który pozwala na wykorzystanie modelu w praktyce, a nie tylko w środowisku testowym. Heroku jest platformą PaaS (Platform-as-a-Service), która ułatwia wdrażanie aplikacji internetowych, w tym również modeli uczenia maszynowego. Działa jak serwer, na którym Twoja aplikacja i model będą działać dostępny przez Internet.
Przed wdrożeniem musisz przygotować kilka kluczowych plików. Najważniejszym jest requirements.txt
, w którym umieszczasz wszystkie biblioteki Pythona, od których zależy Twój model (np. scikit-learn
, pandas
, flask
). Użyj polecenia pip freeze > requirements.txt
w terminalu, aby automatycznie wygenerować ten plik z listą zainstalowanych bibliotek. Kolejny ważny plik to Procfile
. To prosty plik tekstowy, który mówi Heroku, jak uruchomić Twoją aplikację. Dla aplikacji Flask, będzie wyglądać to mniej więcej tak: web: gunicorn app:app
(zakładając, że Twój główny plik aplikacji to app.py
a aplikacja Flask to app
). Dodatkowo, upewnij się, że masz plik app.py
(lub inny, zależnie od konfiguracji), który zawiera Twoją aplikację Flask (lub inną strukturę webową) oraz kod ładujący model i obsługujący żądania HTTP.
heroku login
i postępuj zgodnie z instrukcjami.heroku create nazwa-twojej-aplikacji
(zastąp 'nazwa-twojej-aplikacji' unikalną nazwą).git init
) i dodaj pliki (git add .
, git commit -m "Initial commit"
).git push heroku master
. Heroku automatycznie wykryje, że to aplikacja Pythona, zainstaluje zależności i uruchomi ją zgodnie z plikiem Procfile
.Heroku oferuje wbudowane mechanizmy monitorowania. Możesz użyć polecenia heroku logs --tail
w terminalu, aby śledzić logi swojej aplikacji w czasie rzeczywistym. Logi są bardzo przydatne do debugowania i identyfikowania błędów. Możesz również używać bibliotek logowania w Pythonie (np. logging
) do rejestrowania ważnych zdarzeń i informacji o działaniu Twojej aplikacji. Pamiętaj o umieszczaniu w logach zarówno komunikatów o błędach, jak i informacji diagnostycznych (np. czas przetwarzania żądań). Dodatkowe narzędzia do monitorowania, takie jak New Relic czy Sentry, oferują bardziej zaawansowane funkcje, ale są bardziej złożone w konfiguracji.
Explore advanced insights, examples, and bonus exercises to deepen understanding.
Witaj! Kontynuujemy naszą podróż w świat wdrażania i monitorowania modeli uczenia maszynowego. Po zapoznaniu się z podstawami wdrażania na Heroku, zanurzmy się głębiej w temat, odkrywając bardziej zaawansowane techniki i praktyczne zastosowania.
Poza podstawowym wdrażaniem na Heroku, warto rozważyć kilka zaawansowanych aspektów:
Spróbuj swoich sił w tych dodatkowych zadaniach:
Wdrażanie i monitorowanie modeli to umiejętności niezbędne w wielu branżach:
Pamiętaj o etyce i odpowiedzialności w kontekście wdrażania modeli, szczególnie w obszarach takich jak medycyna czy finanse. Upewnij się, że model jest sprawiedliwy i nie dyskryminuje żadnych grup.
Zbuduj prostą aplikację do przewidywania cen mieszkań w oparciu o dane z portalu Otodom. Wdróż model na Heroku i skonfiguruj podstawowe monitorowanie wydajności. Pomyśl, jak możesz zintegrować testy A/B z Twoją aplikacją, aby porównać działanie różnych modeli.
Zainteresuj się tymi tematami, aby poszerzyć swoją wiedzę:
Stwórz prosty plik Pythona (np. `main.py`) i zaimportuj w nim bibliotekę `scikit-learn`. Następnie użyj `pip freeze > requirements.txt`, aby wygenerować plik `requirements.txt` z tą biblioteką.
Stwórz plik `Procfile` w katalogu głównym Twojego projektu i dodaj do niego linię: `web: gunicorn app:app`. Załóż, że masz aplikację Flask w pliku `app.py`. Pamiętaj, aby zainstalować `gunicorn` (użyj `pip install gunicorn`).
Wykorzystaj utworzone pliki (lub stwórz prostą aplikację Flask) i wykonaj kroki wdrażania na Heroku opisane w sekcji „Wdrażanie na Heroku: Krok po Kroku”. Spróbuj wdrożyć prostą aplikację, która wyświetla „Hello World!” w przeglądarce.
Po wdrożeniu aplikacji, użyj polecenia `heroku logs --tail` w terminalu i sprawdź logi. Dodaj do swojej aplikacji kilka komunikatów logowania (np. używając biblioteki `logging` w Pythonie) i zobacz, jak pojawiają się w logach Heroku. Poszukaj ewentualnych błędów.
Zaprojektuj i wdróż prostą aplikację Flask, która pobiera dane wejściowe od użytkownika (np. liczbę) i zwraca prostą predykcję (np. czy liczba jest parzysta lub nieparzysta). Dodaj do niej logowanie, aby śledzić liczbę żądań i ewentualne błędy.
Zapoznaj się z bardziej zaawansowanymi technikami monitorowania (np. wykorzystanie narzędzi takich jak New Relic, Sentry) i przygotuj się do nauki o automatyzacji wdrażania i testowaniu.
We're automatically tracking your progress. Sign up for free to keep your learning paths forever and unlock advanced features like detailed analytics and personalized recommendations.