Wstęp
Ten samouczek ma na celu wprowadzenie TensorFlow Extended (TFX) i AIPlatform Pipelines oraz pomoc w nauce tworzenia własnych potoków uczenia maszynowego w Google Cloud. Pokazuje integrację z TFX, AI Platform Pipelines i Kubeflow, a także interakcję z TFX w notatnikach Jupyter.
Pod koniec tego samouczka utworzysz i uruchomisz potok ML hostowany w Google Cloud. Będziesz mógł wizualizować wyniki każdego przebiegu i przeglądać pochodzenie utworzonych artefaktów.
Będziesz postępować zgodnie z typowym procesem programowania uczenia maszynowego, zaczynając od sprawdzenia zestawu danych, a kończąc na kompletnym działającym potoku. Po drodze poznasz sposoby debugowania i aktualizowania potoku oraz pomiaru wydajności.
Zbiór danych o taksówkach w Chicago
Korzystasz ze zbioru danych dotyczących przejazdów taksówkami opublikowanego przez miasto Chicago.
Więcej o zbiorze danych możesz przeczytać w Google BigQuery . Przeglądaj pełny zbiór danych w interfejsie BigQuery .
Cel modelu – Klasyfikacja binarna
Czy klient otrzyma napiwek większy czy mniejszy niż 20%?
1. Skonfiguruj projekt Google Cloud
1.a Skonfiguruj swoje środowisko w Google Cloud
Aby rozpocząć, potrzebujesz konta Google Cloud. Jeśli już go posiadasz, przejdź od razu do sekcji Utwórz nowy projekt .
Przejdź do konsoli Google Cloud .
Zaakceptuj Warunki korzystania z usługi Google Cloud
Jeśli chcesz rozpocząć od bezpłatnego konta próbnego, kliknij Wypróbuj za darmo (lub Rozpocznij bezpłatnie ).
Wybierz swój kraj.
Zaakceptuj warunki korzystania z usługi.
Wprowadź szczegóły rozliczeniowe.
Na tym etapie nie poniesiesz żadnych opłat. Jeśli nie masz innych projektów Google Cloud, możesz ukończyć ten samouczek, nie przekraczając limitów bezpłatnej warstwy Google Cloud , która obejmuje maksymalnie 8 rdzeni działających jednocześnie.
1.b Utwórz nowy projekt.
- W głównym panelu Google Cloud kliknij menu projektu obok nagłówka Google Cloud Platform i wybierz Nowy projekt .
- Nadaj swojemu projektowi nazwę i wprowadź inne szczegóły projektu
- Po utworzeniu projektu pamiętaj o wybraniu go z listy rozwijanej projektu.
2. Skonfiguruj i wdróż potok platformy AI w nowym klastrze Kubernetes
Przejdź do strony Klastry potoków platformy AI .
W głównym menu nawigacyjnym: ≡ > Platforma AI > Potoki
Kliknij + Nowa instancja , aby utworzyć nowy klaster.
Na stronie przeglądu Kubeflow Pipelines kliknij Konfiguruj .
Kliknij „Włącz”, aby włączyć interfejs API Kubernetes Engine
Na stronie Wdróż potoki Kubeflow :
Wybierz strefę (lub „region”) klastra. Można ustawić sieć i podsieć, ale na potrzeby tego samouczka pozostawimy je jako domyślne.
WAŻNE Zaznacz pole Zezwalaj na dostęp do następujących interfejsów API chmury . (Jest to wymagane, aby ten klaster mógł uzyskać dostęp do innych elementów projektu. Jeśli pominiesz ten krok, późniejsze naprawienie go będzie nieco trudne).
Kliknij opcję Utwórz nowy klaster i poczekaj kilka minut, aż klaster zostanie utworzony. Zajmie to kilka minut. Po zakończeniu zobaczysz komunikat taki jak:
Klaster „cluster-1” został pomyślnie utworzony w strefie „us-central1-a”.
Wybierz przestrzeń nazw i nazwę instancji (użycie wartości domyślnych jest w porządku). Na potrzeby tego samouczka nie sprawdzaj executor.emissary ani zarządzanegostorage.enabled .
Kliknij opcję Wdróż i poczekaj kilka chwil na wdrożenie potoku. Wdrażając Kubeflow Pipelines, akceptujesz Warunki świadczenia usług.
3. Skonfiguruj instancję Notatnika platformy Cloud AI.
Przejdź do strony środowiska roboczego Vertex AI . Przy pierwszym uruchomieniu Workbencha konieczne będzie włączenie interfejsu Notebooks API.
W głównym menu nawigacji: ≡ -> Vertex AI -> Workbench
Jeśli pojawi się monit, włącz interfejs Compute Engine API.
Utwórz nowy notes z zainstalowanym TensorFlow Enterprise 2.7 (lub nowszym).
Nowy notebook -> TensorFlow Enterprise 2.7 -> Bez GPU
Wybierz region i strefę, a następnie nadaj instancji notatnika nazwę.
Aby utrzymać się w granicach poziomu bezpłatnego, może być konieczna zmiana ustawień domyślnych w tym miejscu, aby zmniejszyć liczbę procesorów wirtualnych dostępnych dla tej instancji z 4 do 2:
- Wybierz pozycję Opcje zaawansowane u dołu formularza Nowy notes .
W obszarze Konfiguracja komputera możesz wybrać konfigurację z 1 lub 2 procesorami wirtualnymi, jeśli chcesz pozostać w warstwie bezpłatnej.
Poczekaj na utworzenie nowego notesu, a następnie kliknij opcję Włącz interfejs API notesów
4. Uruchom Notatnik wprowadzający
Przejdź do strony Klastry potoków platformy AI .
W głównym menu nawigacyjnym: ≡ -> Platforma AI -> Rurociągi
W wierszu klastra używanego w tym samouczku kliknij opcję Otwórz pulpit nawigacyjny potoków .
Na stronie Pierwsze kroki kliknij Otwórz notatnik platformy Cloud AI w Google Cloud .
Wybierz instancję Notatnika, której używasz w tym samouczku, i Kontynuuj , a następnie Potwierdź .
5. Kontynuuj pracę w Notatniku
Zainstalować
Notatnik wprowadzający rozpoczyna się od zainstalowania TFX i Kubeflow Pipelines (KFP) na maszynie wirtualnej, na której działa Jupyter Lab.
Następnie sprawdza, która wersja TFX jest zainstalowana, dokonuje importu oraz ustawia i drukuje identyfikator projektu:
Połącz się ze swoimi usługami Google Cloud
Konfiguracja potoku wymaga identyfikatora projektu, który można uzyskać za pośrednictwem notatnika i ustawić jako zmienną środowiskową.
# Read GCP project id from env.
shell_output=!gcloud config list --format 'value(core.project)' 2>/dev/null
GCP_PROJECT_ID=shell_output[0]
print("GCP project ID:" + GCP_PROJECT_ID)
Teraz ustaw punkt końcowy klastra KFP.
Można to znaleźć pod adresem URL pulpitu nawigacyjnego Pipelines. Przejdź do panelu Kubeflow Pipeline i spójrz na adres URL. Punktem końcowym jest wszystko w adresie URL , począwszy od https://
aż do googleusercontent.com
włącznie.
ENDPOINT='' # Enter YOUR ENDPOINT here.
Następnie notatnik ustawia unikalną nazwę niestandardowego obrazu platformy Docker:
# Docker image name for the pipeline image
CUSTOM_TFX_IMAGE='gcr.io/' + GCP_PROJECT_ID + '/tfx-pipeline'
6. Skopiuj szablon do katalogu projektu
Edytuj następną komórkę notesu, aby ustawić nazwę potoku. W tym samouczku użyjemy my_pipeline
.
PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)
Następnie notes używa interfejsu wiersza polecenia tfx
do skopiowania szablonu potoku. W tym samouczku wykorzystano zbiór danych Chicago Taxi do przeprowadzenia klasyfikacji binarnej, więc szablon ustawia model na taxi
:
!tfx template copy \
--pipeline-name={PIPELINE_NAME} \
--destination-path={PROJECT_DIR} \
--model=taxi
Następnie notatnik zmienia kontekst CWD na katalog projektu:
%cd {PROJECT_DIR}
Przeglądaj pliki potoku
Po lewej stronie notatnika platformy Cloud AI powinna pojawić się przeglądarka plików. Powinien istnieć katalog z nazwą potoku ( my_pipeline
). Otwórz go i przejrzyj pliki. (Będziesz mógł je otwierać i edytować także w środowisku notatnika.)
# You can also list the files from the shell
ls
Powyższe polecenie tfx template copy
utworzyło podstawowe rusztowanie plików tworzących potok. Należą do nich kody źródłowe języka Python, przykładowe dane i notesy Jupyter. Są one przeznaczone dla tego konkretnego przykładu. W przypadku własnych potoków będą to pliki pomocnicze wymagane przez potok.
Oto krótki opis plików Pythona.
-
pipeline
- ten katalog zawiera definicję potoku-
configs.py
— definiuje wspólne stałe dla elementów uruchamiających potoki -
pipeline.py
— definiuje komponenty TFX i potok
-
-
models
— ten katalog zawiera definicje modeli ML.-
features.py
features_test.py
— definiuje funkcje modelu -
preprocessing.py
/preprocessing_test.py
— definiuje zadania przetwarzania wstępnego za pomocątf::Transform
-
estimator
— ten katalog zawiera model oparty na estymatorze.-
constants.py
— definiuje stałe modelu -
model.py
/model_test.py
— definiuje model DNN za pomocą estymatora TF
-
-
keras
— ten katalog zawiera model oparty na Keras.-
constants.py
— definiuje stałe modelu -
model.py
/model_test.py
— definiuje model DNN przy użyciu protokołu Keras
-
-
-
beam_runner.py
/kubeflow_runner.py
— zdefiniuj moduły uruchamiające dla każdego silnika orkiestracji
7. Uruchom swój pierwszy potok TFX w Kubeflow
Notatnik uruchomi potok za pomocą polecenia tfx run
CLI.
Połącz się z magazynem
Działające potoki tworzą artefakty, które muszą być przechowywane w ML-Metadata . Artefakty odnoszą się do ładunków, czyli plików, które muszą być przechowywane w systemie plików lub w pamięci blokowej. W tym samouczku użyjemy GCS do przechowywania ładunków metadanych przy użyciu zasobnika utworzonego automatycznie podczas konfiguracji. Jego nazwa będzie brzmieć <your-project-id>-kubeflowpipelines-default
.
Utwórz potok
Notatnik prześle nasze przykładowe dane do zasobnika GCS, abyśmy mogli później wykorzystać je w naszym potoku.
gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv
Następnie notatnik używa polecenia tfx pipeline create
w celu utworzenia potoku.
!tfx pipeline create \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image
Podczas tworzenia potoku zostanie wygenerowany Dockerfile
w celu zbudowania obrazu platformy Docker. Nie zapomnij dodać tych plików do systemu kontroli źródła (na przykład git) wraz z innymi plikami źródłowymi.
Uruchom rurociąg
Następnie notes używa polecenia tfx run create
aby rozpocząć wykonywanie potoku. Zobaczysz także to uruchomienie na liście w obszarze Eksperymenty w panelu kontrolnym Kubeflow Pipelines.
tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}
Możesz wyświetlić swój potok z pulpitu nawigacyjnego Kubeflow Pipelines.
8. Zweryfikuj swoje dane
Pierwszym zadaniem w każdym projekcie związanym z nauką o danych lub uczeniem maszynowym jest zrozumienie i oczyszczenie danych.
- Zapoznaj się z typami danych dla każdej funkcji
- Szukaj anomalii i brakujących wartości
- Zapoznaj się z dystrybucjami każdej funkcji
Komponenty
- PrzykładGen pozyskuje i dzieli wejściowy zestaw danych.
- StatisticsGen oblicza statystyki dla zbioru danych.
- SchemaGen SchemaGen sprawdza statystyki i tworzy schemat danych.
- PrzykładValidator wyszukuje anomalie i brakujące wartości w zbiorze danych.
W edytorze plików laboratorium Jupyter:
W pipeline
/ pipeline.py
odkomentuj linie, które dołączają te komponenty do potoku:
# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)
( ExampleGen
był już włączony podczas kopiowania plików szablonów.)
Zaktualizuj potok i uruchom go ponownie
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
Sprawdź rurociąg
W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyniki potoku na stronie uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i opcję „Wszystkie przebiegi” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą swojego potoku.
Bardziej zaawansowany przykład
Przedstawiony tutaj przykład ma tak naprawdę jedynie na celu pomóc Ci zacząć. Bardziej zaawansowany przykład można znaleźć w Colab dotyczącym sprawdzania poprawności danych TensorFlow .
Więcej informacji na temat używania TFDV do eksploracji i sprawdzania zbioru danych można znaleźć w przykładach na tensorflow.org .
9. Inżynieria cech
Możesz zwiększyć jakość predykcyjną swoich danych i/lub zmniejszyć wymiarowość dzięki inżynierii funkcji.
- Charakterystyczne krzyże
- Słowniki
- Osadzenia
- PCA
- Kodowanie kategoryczne
Jedną z zalet używania TFX jest to, że kod transformacji napiszesz raz, a powstałe w ten sposób transformacje będą spójne w przypadku uczenia i udostępniania.
Komponenty
- Transform wykonuje inżynierię funkcji na zestawie danych.
W edytorze plików laboratorium Jupyter:
W pipeline
/ pipeline.py
znajdź i odkomentuj wiersz dołączający Transform do potoku.
# components.append(transform)
Zaktualizuj potok i uruchom go ponownie
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
Sprawdź wyjścia rurociągu
W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyniki potoku na stronie uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i opcję „Wszystkie przebiegi” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą swojego potoku.
Bardziej zaawansowany przykład
Przedstawiony tutaj przykład ma tak naprawdę jedynie na celu pomóc Ci zacząć. Bardziej zaawansowany przykład można znaleźć w TensorFlow Transform Colab .
10. Szkolenie
Trenuj model TensorFlow przy użyciu ładnych, czystych i przekształconych danych.
- Uwzględnij przekształcenia z poprzedniego kroku, aby zastosować je spójnie
- Zapisz wyniki jako zapisany model do celów produkcyjnych
- Wizualizuj i eksploruj proces szkolenia za pomocą TensorBoard
- Zapisz także EvalSavedModel do analizy wydajności modelu
Komponenty
- Trener trenuje model TensorFlow.
W edytorze plików laboratorium Jupyter:
W pipeline
/ pipeline.py
znajdź i odkomentuj, który dołącza Trainer do potoku:
# components.append(trainer)
Zaktualizuj potok i uruchom go ponownie
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
Sprawdź wyjścia rurociągu
W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyniki potoku na stronie uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i opcję „Wszystkie przebiegi” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą swojego potoku.
Bardziej zaawansowany przykład
Przedstawiony tutaj przykład ma tak naprawdę jedynie na celu pomóc Ci zacząć. Bardziej zaawansowany przykład można znaleźć w samouczku TensorBoard .
11. Analiza wydajności modelu
Zrozumienie czegoś więcej niż tylko wskaźników najwyższego poziomu.
- Użytkownicy doświadczają wydajności modelu tylko w przypadku swoich zapytań
- Słabą wydajność wycinków danych można ukryć za pomocą wskaźników najwyższego poziomu
- Wzorowa sprawiedliwość jest ważna
- Często kluczowe podzbiory użytkowników lub danych są bardzo ważne i mogą być małe
- Wydajność w krytycznych, ale nietypowych warunkach
- Wydajność dla kluczowych odbiorców, takich jak influencerzy
- Jeśli wymieniasz model, który jest aktualnie w produkcji, najpierw upewnij się, że nowy jest lepszy
Komponenty
- Ewaluator dokonuje głębokiej analizy wyników szkolenia.
W edytorze plików laboratorium Jupyter:
W pipeline
/ pipeline.py
znajdź i odkomentuj linię dołączającą Evaluator do potoku:
components.append(evaluator)
Zaktualizuj potok i uruchom go ponownie
# Update the pipeline
! tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
! tfx run create --pipeline-name "{PIPELINE_NAME}"
Sprawdź wyjścia rurociągu
W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyniki potoku na stronie uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i opcję „Wszystkie przebiegi” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą swojego potoku.
12. Służenie modelowi
Jeśli nowy model jest gotowy, zrób to.
- Pusher wdraża SavedModels w dobrze znanych lokalizacjach
Cele wdrożenia otrzymują nowe modele ze znanych lokalizacji
- Obsługa TensorFlow
- TensorFlow Lite
- TensorFlow JS
- Hub TensorFlow
Komponenty
- Pusher wdraża model w infrastrukturze obsługującej.
W edytorze plików laboratorium Jupyter:
W pipeline
/ pipeline.py
znajdź i odkomentuj linię dołączającą Pusher do potoku:
# components.append(pusher)
Sprawdź wyjścia rurociągu
W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyniki potoku na stronie uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i opcję „Wszystkie przebiegi” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą swojego potoku.
Dostępne cele wdrożenia
Przeszkoliłeś i zweryfikowałeś swój model, a Twój model jest teraz gotowy do produkcji. Możesz teraz wdrożyć swój model w dowolnym miejscu docelowym wdrożenia TensorFlow, w tym:
- TensorFlow Serving do obsługi modelu na serwerze lub farmie serwerów i przetwarzania żądań wnioskowania REST i/lub gRPC.
- TensorFlow Lite , umożliwiający dołączenie modelu do natywnej aplikacji mobilnej na Androida lub iOS albo do aplikacji Raspberry Pi, IoT lub mikrokontrolera.
- TensorFlow.js do uruchamiania modelu w przeglądarce internetowej lub aplikacji Node.JS.
Bardziej zaawansowane przykłady
Przykład przedstawiony powyżej ma tak naprawdę jedynie na celu pomóc Ci zacząć. Poniżej kilka przykładów integracji z innymi usługami Cloud.
Uwagi dotyczące zasobów Kubeflow Pipelines
W zależności od wymagań Twojego obciążenia domyślna konfiguracja wdrożenia Kubeflow Pipelines może, ale nie musi, spełniać Twoje potrzeby. Możesz dostosować konfiguracje zasobów za pomocą pipeline_operator_funcs
w wywołaniu KubeflowDagRunnerConfig
.
pipeline_operator_funcs
to lista elementów OpFunc
, która przekształca wszystkie wygenerowane instancje ContainerOp
w specyfikację potoku KFP skompilowaną z KubeflowDagRunner
.
Na przykład, aby skonfigurować pamięć, możemy użyć set_memory_request
aby zadeklarować ilość potrzebnej pamięci. Typowym sposobem na to jest utworzenie opakowania dla set_memory_request
i użycie go do dodania do listy funkcji OpFunc
potoku:
def request_more_memory():
def _set_memory_spec(container_op):
container_op.set_memory_request('32G')
return _set_memory_spec
# Then use this opfunc in KubeflowDagRunner
pipeline_op_funcs = kubeflow_dag_runner.get_default_pipeline_operator_funcs()
pipeline_op_funcs.append(request_more_memory())
config = KubeflowDagRunnerConfig(
pipeline_operator_funcs=pipeline_op_funcs,
...
)
kubeflow_dag_runner.KubeflowDagRunner(config=config).run(pipeline)
Podobne funkcje konfiguracji zasobów obejmują:
-
set_memory_limit
-
set_cpu_request
-
set_cpu_limit
-
set_gpu_limit
Wypróbuj BigQueryExampleGen
BigQuery to bezserwerowa, wysoce skalowalna i ekonomiczna hurtownia danych w chmurze. BigQuery może służyć jako źródło przykładów szkoleniowych w TFX. W tym kroku dodamy do potoku BigQueryExampleGen
.
W edytorze plików laboratorium Jupyter:
Kliknij dwukrotnie, aby otworzyć pipeline.py
. Skomentuj CsvExampleGen
i odkomentuj wiersz tworzący instancję BigQueryExampleGen
. Musisz także odkomentować argument query
funkcji create_pipeline
.
Musimy określić, którego projektu GCP użyć dla BigQuery, a można to zrobić, ustawiając --project
w beam_pipeline_args
podczas tworzenia potoku.
Kliknij dwukrotnie, aby otworzyć plik configs.py
. Odkomentuj definicję BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS
i BIG_QUERY_QUERY
. Powinieneś zastąpić identyfikator projektu i wartość regionu w tym pliku poprawnymi wartościami dla swojego projektu GCP.
Zmień katalog o jeden poziom wyżej. Kliknij nazwę katalogu nad listą plików. Nazwa katalogu jest nazwą potoku, czyli my_pipeline
, jeśli nie zmieniłeś nazwy potoku.
Kliknij dwukrotnie, aby otworzyć kubeflow_runner.py
. Odkomentuj dwa argumenty, query
i beam_pipeline_args
, dla funkcji create_pipeline
.
Teraz potok jest gotowy do użycia BigQuery jako przykładowego źródła. Zaktualizuj potok jak poprzednio i utwórz nowe uruchomienie wykonania, tak jak to zrobiliśmy w krokach 5 i 6.
Zaktualizuj potok i uruchom go ponownie
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
Wypróbuj przepływ danych
Kilka komponentów TFX wykorzystuje Apache Beam do implementacji równoległych potoków danych, co oznacza, że możesz dystrybuować obciążenia związane z przetwarzaniem danych za pomocą Google Cloud Dataflow . W tym kroku ustawimy koordynatora Kubeflow tak, aby używał Dataflow jako zaplecza przetwarzania danych dla Apache Beam.
# Select your project:
gcloud config set project YOUR_PROJECT_ID
# Get a list of services that you can enable in your project:
gcloud services list --available | grep Dataflow
# If you don't see dataflow.googleapis.com listed, that means you haven't been
# granted access to enable the Dataflow API. See your account adminstrator.
# Enable the Dataflow service:
gcloud services enable dataflow.googleapis.com
Kliknij dwukrotnie pipeline
, aby zmienić katalog i kliknij dwukrotnie, aby otworzyć configs.py
. Odkomentuj definicję GOOGLE_CLOUD_REGION
i DATAFLOW_BEAM_PIPELINE_ARGS
.
Zmień katalog o jeden poziom wyżej. Kliknij nazwę katalogu nad listą plików. Nazwa katalogu jest nazwą potoku, czyli my_pipeline
, jeśli nie została zmieniona.
Kliknij dwukrotnie, aby otworzyć kubeflow_runner.py
. Odkomentuj beam_pipeline_args
. (Pamiętaj także o skomentowaniu bieżącego beam_pipeline_args
dodanego w kroku 7.)
Zaktualizuj potok i uruchom go ponownie
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
Zadania Dataflow znajdziesz w Dataflow w Cloud Console .
Wypróbuj szkolenie i prognozowanie platformy Cloud AI z KFP
TFX współpracuje z kilkoma zarządzanymi usługami GCP, takimi jak Cloud AI Platform for Training and Prediction . Możesz skonfigurować komponent Trainer
tak, aby korzystał z Cloud AI Platform Training, usługi zarządzanej do szkolenia modeli uczenia maszynowego. Co więcej, gdy model zostanie zbudowany i będzie gotowy do udostępnienia, możesz przekazać go do usługi Cloud AI Platform Prediction w celu udostępnienia. Na tym etapie skonfigurujemy nasz komponent Trainer
i Pusher
tak, aby korzystał z usług Cloud AI Platform.
Przed edycją plików może być konieczne włączenie interfejsu AI Platform Training & Prediction API .
Kliknij dwukrotnie pipeline
, aby zmienić katalog i kliknij dwukrotnie, aby otworzyć configs.py
. Odkomentuj definicję GOOGLE_CLOUD_REGION
, GCP_AI_PLATFORM_TRAINING_ARGS
i GCP_AI_PLATFORM_SERVING_ARGS
. Będziemy używać naszego niestandardowego obrazu kontenera do uczenia modelu w szkoleniu Cloud AI Platform Training, dlatego powinniśmy ustawić masterConfig.imageUri
w GCP_AI_PLATFORM_TRAINING_ARGS
na tę samą wartość co CUSTOM_TFX_IMAGE
powyżej.
Zmień katalog o jeden poziom wyżej i kliknij dwukrotnie, aby otworzyć kubeflow_runner.py
. Odkomentuj ai_platform_training_args
i ai_platform_serving_args
.
Zaktualizuj potok i uruchom go ponownie
# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT}
!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}
Oferty pracy szkoleniowej możesz znaleźć w dziale Zadania platformy Cloud AI . Jeśli potok został pomyślnie ukończony, możesz znaleźć swój model w modelach platformy Cloud AI .
14. Korzystaj z własnych danych
W tym samouczku utworzono potok dla modelu przy użyciu zestawu danych Chicago Taxi. Teraz spróbuj umieścić własne dane w potoku. Twoje dane mogą być przechowywane w dowolnym miejscu, w którym potok ma do nich dostęp, na przykład w Google Cloud Storage, BigQuery lub plikach CSV.
Należy zmodyfikować definicję potoku, aby uwzględnić dane.
Jeśli Twoje dane są przechowywane w plikach
- Zmodyfikuj
DATA_PATH
wkubeflow_runner.py
, wskazując lokalizację.
Jeśli Twoje dane są przechowywane w BigQuery
- Zmodyfikuj
BIG_QUERY_QUERY
w configs.py na instrukcję zapytania. - Dodaj funkcje w
models
/features.py
. - Zmodyfikuj
models
/preprocessing.py
, aby przekształcić dane wejściowe na potrzeby uczenia . - Zmodyfikuj
models
keras
imodels
/keras
/constants.py
model.py
aby opisać swój model ML .
Dowiedz się więcej o Trenerze
Aby uzyskać więcej informacji na temat potoków szkoleniowych, zobacz Przewodnik po komponencie trenera .
Sprzątanie
Aby wyczyścić wszystkie zasoby Google Cloud użyte w tym projekcie, możesz usunąć projekt Google Cloud użyty w samouczku.
Alternatywnie możesz wyczyścić poszczególne zasoby, odwiedzając każdą konsolę: - Google Cloud Storage - Google Container Registry - Google Kubernetes Engine