Przegląd
Przegląd
Ten samouczek został zaprojektowany, aby pomóc Ci nauczyć się tworzyć własne potoki uczenia maszynowego przy użyciu TensorFlow Extended (TFX) i Apache Airflow jako koordynatora. Działa na Vertex AI Workbench i pokazuje integrację z TFX i TensorBoard, a także interakcję z TFX w środowisku Jupyter Lab.
Co będziesz robić?
Dowiesz się, jak utworzyć potok ML przy użyciu TFX
- Potok TFX to skierowany graf acykliczny lub „DAG”. Często będziemy odnosić się do potoków jako DAG.
- Potoki TFX są odpowiednie, gdy będziesz wdrażać produkcyjną aplikację ML
- Potoki TFX są odpowiednie, gdy zestawy danych są duże lub mogą się rozrosnąć
- Potoki TFX są odpowiednie, gdy ważna jest spójność szkolenia/obsługi
- Potoki TFX są odpowiednie, gdy ważne jest zarządzanie wersjami dla wnioskowania
- Google używa potoków TFX do produkcyjnego uczenia maszynowego
Proszę zapoznać się z Podręcznikiem użytkownika TFX , aby dowiedzieć się więcej.
Będziesz postępować zgodnie z typowym procesem programowania ML:
- Przyjmowanie, rozumienie i czyszczenie naszych danych
- Inżynieria cech
- Trening
- Analiza wydajności modelu
- Spienić, spłukać, powtórzyć
- Gotowy do produkcji
Apache Airflow do orkiestracji potoków
Orkiestratorzy TFX są odpowiedzialni za planowanie komponentów potoku TFX na podstawie zależności zdefiniowanych przez potok. TFX został zaprojektowany tak, aby był przenośny do wielu środowisk i struktur orkiestracji. Jednym z domyślnych orkiestratorów obsługiwanych przez TFX jest Apache Airflow . To laboratorium ilustruje użycie Apache Airflow do orkiestracji potoków TFX. Apache Airflow to platforma do programowego tworzenia, planowania i monitorowania przepływów pracy. TFX używa Airflow do tworzenia przepływów pracy jako ukierunkowanych grafów acyklicznych (DAG) zadań. Bogaty interfejs użytkownika ułatwia wizualizację potoków działających w środowisku produkcyjnym, monitorowanie postępu i rozwiązywanie problemów w razie potrzeby. Przepływy pracy Apache Airflow są definiowane jako kod. Dzięki temu są łatwiejsze w utrzymaniu, wersjonowaniu, testowaniu i współpracy. Apache Airflow nadaje się do potoków przetwarzania wsadowego. Jest lekki i łatwy do nauczenia.
W tym przykładzie uruchomimy potok TFX na instancji, ręcznie konfigurując przepływ powietrza.
Inne domyślne orkiestratory obsługiwane przez TFX to Apache Beam i Kubeflow. Apache Beam może działać na wielu backendach przetwarzania danych (Beam Ruunners). Cloud Dataflow jest jednym z takich runnerów wiązki, który może być używany do uruchamiania potoków TFX. Apache Beam może być używany zarówno do potoków przesyłania strumieniowego, jak i przetwarzania wsadowego.
Kubeflow to platforma ML typu open source, której celem jest upraszczanie, przenośność i skalowalność wdrożeń przepływów pracy uczenia maszynowego (ML) w Kubernetes. Kubeflow może służyć jako koordynator potoków TFFX, gdy trzeba je wdrożyć w klastrach Kubernetes. Ponadto możesz także użyć własnego niestandardowego programu Orchestrator do uruchamiania potoku TFX.
Przeczytaj więcej o przepływie powietrza tutaj .
Zbiór danych taksówek w Chicago
Będziesz korzystać ze zbioru danych Taxi Trips udostępnionego przez miasto Chicago.
Cel modelu — klasyfikacja binarna
Czy klient da napiwek mniej lub więcej niż 20%?
Skonfiguruj projekt Google Cloud
Zanim klikniesz przycisk Rozpocznij laboratorium Przeczytaj te instrukcje. Laboratoria są ograniczone czasowo i nie można ich wstrzymać. Licznik czasu, który uruchamia się po kliknięciu Rozpocznij laboratorium , pokazuje, jak długo zasoby Google Cloud będą dostępne dla Ciebie.
To praktyczne laboratorium umożliwia samodzielne wykonywanie czynności laboratoryjnych w prawdziwym środowisku chmurowym, a nie w środowisku symulacyjnym lub demonstracyjnym. Robi to, dając Ci nowe, tymczasowe dane logowania, których używasz do logowania się i uzyskiwania dostępu do Google Cloud na czas trwania laboratorium.
Co jest potrzebne Aby ukończyć to laboratorium, potrzebujesz:
- Dostęp do standardowej przeglądarki internetowej (zalecana przeglądarka Chrome).
- Czas zakończyć laboratorium.
Jak uruchomić laboratorium i zalogować się do Google Cloud Console 1. Kliknij przycisk Rozpocznij laboratorium . Jeśli musisz zapłacić za laboratorium, otworzy się wyskakujące okienko, w którym możesz wybrać metodę płatności. Po lewej stronie znajduje się panel wypełniony tymczasowymi poświadczeniami, których musisz użyć w tym laboratorium.
- Skopiuj nazwę użytkownika, a następnie kliknij Otwórz konsolę Google . Laboratorium uruchamia zasoby, a następnie otwiera kolejną kartę ze stroną logowania .
Porada: Otwórz karty w osobnych oknach obok siebie.
- Na stronie logowania wklej nazwę użytkownika skopiowaną z lewego panelu. Następnie skopiuj i wklej hasło.
- Klikaj przez kolejne strony:
- Zaakceptuj regulamin.
Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ jest to konto tymczasowe).
Nie zapisuj się na bezpłatne okresy próbne.
Po kilku chwilach Cloud Console otworzy się na tej karcie.
Aktywuj Cloud Shell
Cloud Shell to maszyna wirtualna z załadowanymi narzędziami programistycznymi. Oferuje trwały katalog domowy o pojemności 5 GB i działa w chmurze Google. Cloud Shell zapewnia dostęp z wiersza poleceń do zasobów Google Cloud.
W Cloud Console, na prawym górnym pasku narzędzi, kliknij przycisk Aktywuj Cloud Shell .
Kliknij Kontynuuj .
Zainicjowanie obsługi administracyjnej i połączenie ze środowiskiem zajmuje kilka chwil. Gdy jesteś połączony, jesteś już uwierzytelniony, a projekt jest ustawiony na Twój _PROJECT ID . Na przykład:
gcloud
to narzędzie wiersza poleceń dla Google Cloud. Jest preinstalowany w Cloud Shell i obsługuje uzupełnianie tabulatorami.
Możesz wyświetlić nazwę aktywnego konta za pomocą tego polecenia:
gcloud auth list
(Wyjście)
AKTYWNE: * KONTO: student-01-xxxxxxxxxxxx@qwiklabs.net Aby ustawić aktywne konto, uruchom: $ gcloud config set account
ACCOUNT
Możesz wyświetlić identyfikator projektu za pomocą tego polecenia: gcloud config list project
(Output)
[podstawowy] projekt =
(Przykładowe wyjście)
[podstawowy] projekt = qwiklabs-gcp-44776a13dea667a6
Pełną dokumentację narzędzia gcloud znajdziesz w omówieniu narzędzia wiersza poleceń gcloud .
Włącz usługi Google Cloud
- W Cloud Shell użyj narzędzia gcloud, aby włączyć usługi używane w laboratorium.
gcloud services enable notebooks.googleapis.com
Wdróż instancję Vertex Notebook
- Kliknij menu nawigacji i przejdź do Vertex AI , a następnie do Workbench .
Na stronie Instancje notesu kliknij opcję Nowy notatnik .
W menu Dostosuj instancję wybierz TensorFlow Enterprise i wybierz wersję TensorFlow Enterprise 2.x (z LTS) > Bez GPU .
W oknie dialogowym Nowa instancja notatnika kliknij ikonę ołówka, aby edytować właściwości instancji.
W polu Nazwa instancji wprowadź nazwę swojej instancji.
Dla Region wybierz
us-east1
, a dla Strefa wybierz strefę w wybranym regionie.Przewiń w dół do Konfiguracja maszyny i wybierz e2-standard-2 dla Typu maszyny.
Pozostaw pozostałe pola z wartościami domyślnymi i kliknij Utwórz .
Po kilku minutach konsola Vertex AI wyświetli nazwę Twojej instancji, a następnie Open Jupyterlab .
- Kliknij Otwórz JupyterLab . Okno JupyterLab otworzy się w nowej karcie.
Skonfiguruj środowisko
Sklonuj repozytorium laboratorium
Następnie sklonujesz repozytorium tfx
w swojej instancji JupyterLab. 1. W JupyterLab kliknij ikonę Terminal , aby otworzyć nowy terminal.
Cancel
dla zalecanej kompilacji.
- Aby sklonować repozytorium
tfx
Github, wpisz następujące polecenie i naciśnij Enter .
git clone https://github.com/tensorflow/tfx.git
- Aby potwierdzić, że sklonowałeś repozytorium, kliknij dwukrotnie katalog
tfx
i potwierdź, że możesz zobaczyć jego zawartość.
Zainstaluj zależności laboratorium
- Uruchom następujące polecenie, aby przejść do
tfx/tfx/examples/airflow_workshop/taxi/setup/
, a następnie uruchom./setup_demo.sh
, aby zainstalować zależności laboratoryjne:
cd ~/tfx/tfx/examples/airflow_workshop/taxi/setup/
./setup_demo.sh
Powyższy kod będzie
- Zainstaluj wymagane pakiety.
- Utwórz folder
airflow
w folderze domowym. - Skopiuj folder
dags
z folderutfx/tfx/examples/airflow_workshop/taxi/setup/
do folderu~/airflow/
. - Skopiuj plik csv z
tfx/tfx/examples/airflow_workshop/taxi/setup/data
do~/airflow/data
.
Konfigurowanie serwera Airflow
Utwórz regułę zapory, aby uzyskać dostęp do serwera przepływu powietrza w przeglądarce
- Wejdź na
<a href="https://console.cloud.google.com/networking/firewalls/list">https://console.cloud.google.com/networking/firewalls/list</a>
i upewnij się, że nazwa projektu jest odpowiednio dobrana - Kliknij opcję
CREATE FIREWALL RULE
na górze
W oknie dialogowym Utwórz zaporę wykonaj czynności wymienione poniżej.
- Jako Nazwa wpisz
airflow-tfx
. - Jako Priorytet wybierz
1
. - W obszarze Cele wybierz opcję
All instances in the network
. - W polu Zakresy źródłowych adresów IPv4 wybierz
0.0.0.0/0
- W przypadku protokołów i portów kliknij
tcp
i wpisz7000
w polu oboktcp
- Kliknij
Create
.
Uruchom serwer przepływu powietrza ze swojej powłoki
W oknie Jupyter Lab Terminal przejdź do katalogu domowego, uruchom polecenie airflow users create
aby utworzyć użytkownika administratora dla przepływu powietrza:
cd
airflow users create --role Admin --username admin --email admin --firstname admin --lastname admin --password admin
Następnie uruchom polecenie airflow webserver
i airflow scheduler
aby uruchomić serwer. Wybierz port 7000
, ponieważ jest dozwolony przez zaporę.
nohup airflow webserver -p 7000 &> webserver.out &
nohup airflow scheduler &> scheduler.out &
Zdobądź swój zewnętrzny adres IP
- W Cloud Shell użyj
gcloud
, aby uzyskać zewnętrzny adres IP.
gcloud compute instances list
Uruchamianie DAG/potoku
W przeglądarce
Otwórz przeglądarkę i przejdź do http://
- Na stronie logowania wprowadź nazwę użytkownika (
admin
) i hasło (admin
), które wybrałeś podczas uruchamiania poleceniaairflow users create
.
Airflow ładuje DAG-y z plików źródłowych Pythona. Pobiera każdy plik i wykonuje go. Następnie ładuje wszystkie obiekty DAG z tego pliku. Wszystkie pliki .py
, które definiują obiekty DAG, zostaną wymienione jako potoki na stronie głównej przepływu powietrza.
W tym samouczku Airflow skanuje folder ~/airflow/dags/
w poszukiwaniu obiektów DAG.
Jeśli otworzysz ~/airflow/dags/taxi_pipeline.py
i przewiniesz w dół, zobaczysz, że tworzy i przechowuje obiekt DAG w zmiennej o nazwie DAG
. W związku z tym zostanie wymieniony jako potok na stronie głównej przepływu powietrza, jak pokazano poniżej:
Jeśli klikniesz taksówkę, zostaniesz przekierowany do widoku siatki DAG. Możesz kliknąć opcję Graph
u góry, aby uzyskać widok wykresu DAG.
Uruchom rurociąg taksówkowy
Na stronie głównej możesz zobaczyć przyciski, które można wykorzystać do interakcji z DAG.
Pod nagłówkiem akcji kliknij przycisk wyzwalacza , aby uruchomić potok.
Na stronie taksówki DAG użyj przycisku po prawej stronie, aby odświeżyć stan widoku wykresu DAG podczas działania potoku. Dodatkowo możesz włączyć automatyczne odświeżanie , aby poinstruować Airflow, aby automatycznie odświeżał widok wykresu, gdy zmienia się stan.
Możesz także użyć Airflow CLI w terminalu, aby włączyć i uruchomić swoje DAG:
# enable/disable
airflow pause <your DAG name>
airflow unpause <your DAG name>
# trigger
airflow trigger_dag <your DAG name>
Oczekiwanie na zakończenie potoku
Po wyzwoleniu potoku w widoku DAG można obserwować postęp potoku podczas jego działania. Gdy każdy składnik działa, kolor konturu składnika na wykresie DAG zmieni się, aby pokazać jego stan. Gdy komponent zakończy przetwarzanie, kontur zmieni kolor na ciemnozielony, aby pokazać, że jest gotowy.
Zrozumienie komponentów
Teraz przyjrzymy się szczegółowo składnikom tego potoku i osobno przyjrzymy się wynikom generowanym przez każdy krok w potoku.
W JupyterLab przejdź do
~/tfx/tfx/examples/airflow_workshop/taxi/notebooks/
Otwórz notatnik.ipynb.
Kontynuuj ćwiczenie w notesie i uruchom każdą komórkę, klikając przycisk Uruchom (
) na górze ekranu. Alternatywnie możesz wykonać kod w komórce za pomocą SHIFT + ENTER .
Przeczytaj narrację i upewnij się, że rozumiesz, co dzieje się w każdej komórce.