Wstęp
Ten samouczek ma na celu wprowadzenie do TensorFlow Extended (TFX) i AIPlatform Pipelines i 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.
Na końcu tego samouczka utworzysz i uruchomisz potok ML, hostowany w Google Cloud. Będziesz mógł zwizualizować wyniki każdego biegu i zobaczyć rodowód utworzonych artefaktów.
Będziesz postępować zgodnie z typowym procesem opracowywania ML, zaczynając od zbadania zestawu danych, a kończąc na kompletnym potoku roboczym. Po drodze poznasz sposoby debugowania i aktualizowania potoku oraz mierzenia wydajności.
Zbiór danych o taksówce w Chicago
Korzystasz z zestawu danych Taxi Trips udostępnionego przez miasto Chicago.
Możesz przeczytać więcej o zbiorze danych w Google BigQuery . Przeglądaj pełny zbiór danych w interfejsie użytkownika BigQuery .
Cel modelu - Klasyfikacja binarna
Czy klient napiwku więcej czy mniej 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 masz, przejdź od razu do Utwórz nowy projekt .
Przejdź do konsoli Google Cloud .
Zaakceptuj warunki Google Cloud
Jeśli chcesz rozpocząć z bezpłatnym kontem próbnym, kliknij Wypróbuj za darmo (lub Rozpocznij za darmo ).
Wybierz swój kraj.
Zaakceptuj warunki korzystania z usługi.
Wprowadź dane rozliczeniowe.
W tym momencie nie zostaniesz obciążona opłatą. Jeśli nie masz innych projektów Google Cloud, możesz ukończyć ten samouczek bez przekraczania 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 rozwijane projektu obok nagłówka Google Cloud Platform i wybierz Nowy projekt .
- Nadaj nazwę swojemu projektowi i wprowadź inne szczegóły projektu
- Po utworzeniu projektu wybierz go z listy rozwijanej projektu.
2. Skonfiguruj i wdróż potok AI Platform w nowym klastrze Kubernetes
Przejdź do strony Klastry potoków AI Platform .
W głównym menu nawigacyjnym: ≡ > AI Platform > Rurociągi
Kliknij + Nowa instancja , aby utworzyć nowy klaster.
Na stronie przeglądu potoków Kubeflow kliknij opcję Konfiguruj .
Kliknij „Włącz”, aby włączyć interfejs Kubernetes Engine API
Na stronie Wdrażanie potoków Kubeflow :
Wybierz strefę (lub „region”) dla swojego klastra. Sieć i podsieć można ustawić, ale na potrzeby tego samouczka pozostawimy je jako domyślne.
WAŻNE Zaznacz pole oznaczone Zezwól 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, naprawienie go później jest nieco trudne).
Kliknij opcję Utwórz nowy klaster i poczekaj kilka minut, aż klaster zostanie utworzony. To zajmie kilka minut. Po zakończeniu zobaczysz komunikat taki jak:
Klaster „klaster-1” pomyślnie utworzony w strefie „us-central1-a”.
Wybierz przestrzeń nazw i nazwę instancji (używanie wartości domyślnych jest w porządku). Na potrzeby tego samouczka nie sprawdzaj executor.emisary ani managedstorage.enabled .
Kliknij opcję Wdróż i poczekaj kilka chwil, aż potok zostanie wdrożony. Wdrażając Kubeflow Pipelines, akceptujesz Warunki korzystania z usługi.
3. Skonfiguruj instancję Cloud AI Platform Notebook.
Przejdź do strony Vertex AI Workbench . 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 notatnik 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 sekcji Konfiguracja maszyny możesz wybrać konfigurację z 1 lub 2 procesorami wirtualnymi, jeśli chcesz pozostać w warstwie bezpłatnej.
Poczekaj na utworzenie nowego notatnika, a następnie kliknij Włącz Notebooks API
4. Uruchom Notatnik Pierwsze kroki
Przejdź do strony Klastry potoków AI Platform .
W głównym menu nawigacyjnym: ≡ -> AI Platform -> Pipelines
W wierszu klastra używanego w tym samouczku kliknij opcję Otwórz pulpit nawigacyjny potoków .
Na stronie Pierwsze kroki kliknij Otwórz notatnik Cloud AI Platform 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 Pierwsze kroki 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źć w adresie URL pulpitu nawigacyjnego Pipelines. Przejdź do pulpitu nawigacyjnego Kubeflow Pipeline i spójrz na adres URL. Punktem końcowym jest wszystko w adresie URL, począwszy od https://
, aż do googleusercontent.com
.
ENDPOINT='' # Enter YOUR ENDPOINT here.
Notatnik następnie ustawia unikatową nazwę dla 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ę notatnika, 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)
Notatnik używa następnie interfejsu wiersza tfx
do kopiowania szablonu potoku. Ten samouczek używa zestawu 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
Notatnik następnie zmienia swój kontekst CWD na katalog projektu:
%cd {PROJECT_DIR}
Przeglądaj pliki potoku
Po lewej stronie Notatnika Cloud AI Platform powinna pojawić się przeglądarka plików. Powinien istnieć katalog z nazwą twojego potoku ( my_pipeline
). Otwórz go i przejrzyj pliki. (Będziesz mógł je otwierać i edytować również w środowisku notatnika).
# You can also list the files from the shell
ls
Powyższe polecenie tfx template copy
utworzyło podstawowy szkielet plików, które tworzą potok. Należą do nich kody źródłowe Pythona, przykładowe dane i notatniki Jupyter. Są one przeznaczone dla tego konkretnego przykładu. Dla twoich własnych potoków byłyby to pliki pomocnicze, których wymaga twój potok.
Oto krótki opis plików Pythona.
-
pipeline
— ten katalog zawiera definicję potoku-
configs.py
— definiuje wspólne stałe dla programów uruchamiających potok -
pipeline.py
— definiuje komponenty TFX i potok
-
-
models
— ten katalog zawiera definicje modeli ML.-
features.py
features_test.py
— definiuje cechy 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 Keras
-
-
-
beam_runner.py
/kubeflow_runner.py
— zdefiniuj runnery dla każdego silnika orkiestracji
7. Uruchom swój pierwszy potok TFX na Kubeflow
Notatnik uruchomi potok za pomocą polecenia tfx run
CLI.
Połącz z magazynem
Uruchomione 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 pamięci blokowej. W tym samouczku użyjemy GCS do przechowywania ładunków metadanych przy użyciu zasobnika, który został utworzony automatycznie podczas konfiguracji. Jego nazwa to <your-project-id>-kubeflowpipelines-default
.
Utwórz potok
Notatnik prześle nasze przykładowe dane do zasobnika GCS, abyśmy mogli później użyć ich w naszym potoku.
gsutil cp data/data.csv gs://{GOOGLE_CLOUD_PROJECT}-kubeflowpipelines-default/tfx-template/data/taxi/data.csv
Notatnik używa następnie 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 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
Notatnik używa następnie polecenia tfx run create
, aby uruchomić wykonanie potoku. Zobaczysz również to uruchomienie na liście Eksperymenty na pulpicie nawigacyjnym potoków Kubeflow.
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 Data Science lub ML jest zrozumienie i wyczyszczenie danych.
- Poznaj typy danych dla każdej funkcji
- Poszukaj anomalii i brakujących wartości
- Zrozum rozkłady dla każdej funkcji
składniki
- ExampleGen pozyskuje i dzieli wejściowy zestaw danych.
- StatisticsGen oblicza statystyki dla zestawu danych.
- SchemaGen SchemaGen analizuje statystyki i tworzy schemat danych.
- ExampleValidator szuka anomalii i brakujących wartości w zestawie danych.
W edytorze plików laboratoryjnych Jupyter:
W pipeline
/ pipeline.py
odkomentuj wiersze, które dołączają te komponenty do potoku:
# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)
( ExampleGen
było już włączone 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 przejdź do pulpitu nawigacyjnego KFP i znajdź dane wyjściowe potoku na stronie dla uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i „Wszystkie uruchomienia” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą twojego potoku.
Bardziej zaawansowany przykład
Przedstawiony tutaj przykład ma na celu tylko rozpoczęcie pracy. Aby zapoznać się z bardziej zaawansowanym przykładem, zobacz TensorFlow Data Validation Colab .
Aby uzyskać więcej informacji na temat używania TFDV do eksploracji i walidacji zestawu danych, zobacz przykłady na tensorflow.org .
9. Inżynieria funkcji
Możesz zwiększyć predykcyjną jakość swoich danych i/lub zmniejszyć wymiarowość dzięki inżynierii funkcji.
- Krzyże funkcji
- Słowniki
- Osadzania
- PCA
- Kodowanie kategoryczne
Jedną z korzyści płynących z używania TFX jest to, że napiszesz kod transformacji raz, a wynikowe przekształcenia będą spójne między trenowaniem a udostępnianiem.
składniki
- Transform wykonuje inżynierię funkcji w zestawie danych.
W edytorze plików laboratoryjnych Jupyter:
W pipeline.py
pipeline
znajdź i odkomentuj linię, która dołącza 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 przejdź do pulpitu nawigacyjnego KFP i znajdź dane wyjściowe potoku na stronie dla uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i „Wszystkie uruchomienia” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą twojego potoku.
Bardziej zaawansowany przykład
Przedstawiony tutaj przykład ma na celu tylko rozpoczęcie pracy. Aby zapoznać się z bardziej zaawansowanym przykładem, zobacz TensorFlow Transform Colab .
10. Trening
Trenuj model TensorFlow, korzystając z ładnych, czystych i przekształconych danych.
- Uwzględnij przekształcenia z poprzedniego kroku, aby były stosowane konsekwentnie
- Zapisz wyniki jako SavedModel do produkcji
- Wizualizuj i poznawaj proces szkolenia za pomocą TensorBoard
- Zapisz również EvalSavedModel do analizy wydajności modelu
składniki
- Trener szkoli model TensorFlow.
W edytorze plików laboratoryjnych Jupyter:
W pipeline
/ pipeline.py
, znajdź i odkomentuj ten, 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 przejdź do pulpitu nawigacyjnego KFP i znajdź dane wyjściowe potoku na stronie dla uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i „Wszystkie uruchomienia” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą twojego potoku.
Bardziej zaawansowany przykład
Przedstawiony tutaj przykład ma na celu tylko rozpoczęcie pracy. Bardziej zaawansowany przykład można znaleźć w samouczku TensorBoard .
11. Analiza wydajności modelu
Zrozumienie więcej niż tylko wskaźników najwyższego poziomu.
- Użytkownicy doświadczają wydajności modelu tylko dla swoich zapytań
- Niska wydajność na wycinkach danych może być ukryta przez wskaźniki najwyższego poziomu
- Sprawiedliwość modelu 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
składniki
- Ewaluator przeprowadza dogłębną analizę wyników szkolenia.
W edytorze plików laboratoryjnych Jupyter:
W pipeline.py
pipeline
i odkomentuj wiersz, który dołącza 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 przejdź do pulpitu nawigacyjnego KFP i znajdź dane wyjściowe potoku na stronie dla uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i „Wszystkie uruchomienia” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą twojego potoku.
12. Obsługa modelki
Jeśli nowy model jest gotowy, zrób to.
- Pusher wdraża SavedModels w dobrze znanych lokalizacjach
Cele wdrożeniowe otrzymują nowe modele z dobrze znanych lokalizacji
- Obsługa TensorFlow
- TensorFlow Lite
- TensorFlow JS
- Centrum TensorFlow
składniki
- Pusher wdraża model w infrastrukturze obsługującej.
W edytorze plików laboratoryjnych Jupyter:
W pipeline.py
pipeline
znajdź i odkomentuj wiersz, który dołącza Pusher do potoku:
# components.append(pusher)
Sprawdź wyjścia rurociągu
W przypadku Kubeflow Orchestrator przejdź do pulpitu nawigacyjnego KFP i znajdź dane wyjściowe potoku na stronie dla uruchomienia potoku. Kliknij kartę „Eksperymenty” po lewej stronie i „Wszystkie uruchomienia” na stronie Eksperymenty. Powinieneś być w stanie znaleźć przebieg z nazwą twojego potoku.
Dostępne cele wdrożenia
Twój model został przeszkolony i zweryfikowany, a model jest teraz gotowy do produkcji. Możesz teraz wdrożyć swój model w dowolnym z celów 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 do dołączania modelu do natywnej aplikacji mobilnej na Androida lub iOS lub do aplikacji Raspberry Pi, IoT lub mikrokontrolera.
- TensorFlow.js , do uruchamiania modelu w przeglądarce internetowej lub aplikacji Node.JS.
Bardziej zaawansowane przykłady
Powyższy przykład ma na celu tylko rozpoczęcie pracy. Poniżej kilka przykładów integracji z innymi usługami Cloud.
Zagadnienia dotyczące zasobów Kubeflow Pipelines
W zależności od wymagań 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ą funkcji pipeline_operator_funcs
w wywołaniu KubeflowDagRunnerConfig
.
pipeline_operator_funcs
to lista elementów OpFunc
, która przekształca wszystkie wygenerowane instancje ContainerOp
w specyfikacji potoku KFP skompilowanej z KubeflowDagRunner
.
Na przykład, aby skonfigurować pamięć, możemy użyć set_memory_request
do zadeklarowania potrzebnej ilości pamięci. Typowym sposobem, aby to zrobić, jest utworzenie opakowania dla set_memory_request
i użycie go do dodania do listy potoku OpFunc
s:
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 BigQueryExampleGen
do potoku.
W edytorze plików laboratoryjnych Jupyter:
Kliknij dwukrotnie, aby otworzyć pipeline.py
. Skomentuj CsvExampleGen
i odkomentuj wiersz, który tworzy instancję BigQueryExampleGen
. Musisz także odkomentować argument query
funkcji create_pipeline
.
Musimy określić, który projekt GCP ma być używany w BigQuery. Robimy to, ustawiając --project
w beam_pipeline_args
podczas tworzenia potoku.
Kliknij dwukrotnie, aby otworzyć configs.py
. Usuń komentarz z definicji BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS
i BIG_QUERY_QUERY
. Zastąp identyfikator projektu i wartość regionu w tym pliku prawidłowymi wartościami dla projektu GCP.
Zmień katalog o jeden poziom w górę. 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, tak jak zrobiliśmy to 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 używa Apache Beam do implementacji równoległych potoków danych, co oznacza, że możesz dystrybuować obciążenia przetwarzania 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
. Usuń komentarz z definicji GOOGLE_CLOUD_REGION
i DATAFLOW_BEAM_PIPELINE_ARGS
.
Zmień katalog o jeden poziom w górę. Kliknij nazwę katalogu nad listą plików. Nazwa katalogu jest nazwą potoku, czyli my_pipeline
, jeśli nie zmieniłeś.
Kliknij dwukrotnie, aby otworzyć kubeflow_runner.py
. beam_pipeline_args
. (Upewnij się również, że skomentowałeś bieżące beam_pipeline_args
dodane 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 możesz znaleźć w Dataflow w Cloud Console .
Wypróbuj szkolenia i prognozy Cloud AI Platform 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, zarządzanej usługi do trenowania modeli ML. Co więcej, gdy Twój model jest już zbudowany i gotowy do udostępnienia, możesz przekazać go do usługi Cloud AI Platform Prediction w celu udostępnienia. W tym kroku ustawimy nasz komponent Trainer
i Pusher
, aby korzystał z usług Cloud AI Platform.
Przed edytowaniem 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
. Usuń komentarz z definicji GOOGLE_CLOUD_REGION
, GCP_AI_PLATFORM_TRAINING_ARGS
i GCP_AI_PLATFORM_SERVING_ARGS
. Użyjemy naszego niestandardowego obrazu kontenera do trenowania modelu w Cloud AI Platform Training, więc powinniśmy ustawić masterConfig.imageUri
w GCP_AI_PLATFORM_TRAINING_ARGS
na taką samą wartość jak CUSTOM_TFX_IMAGE
powyżej.
Zmień katalog o jeden poziom w górę i kliknij dwukrotnie, aby otworzyć kubeflow_runner.py
. Usuń komentarz 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}
Możesz znaleźć swoje oferty pracy szkoleniowej w Cloud AI Platform Jobs . Jeśli Twój potok zakończył się pomyślnie, możesz znaleźć swój model w Cloud AI Platform Models .
14. Użyj własnych danych
W tym samouczku utworzyłeś 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 wszędzie tam, gdzie potok ma do nich dostęp, w tym w Google Cloud Storage, BigQuery lub plikach CSV.
Musisz zmodyfikować definicję potoku, aby pomieścić 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 w swoim zapytaniu. - Dodaj funkcje w
models
/features.py
. - Zmodyfikuj
models
/preprocessing.py
w celu przekształcenia danych wejściowych do szkolenia . - Zmodyfikuj
models
model.py
imodels
/keras
/keras
, abyconstants.py
model ML .
Dowiedz się więcej o Trenerze
Zobacz przewodnik po składnikach trenera, aby uzyskać więcej informacji na temat potoków szkoleniowych.
Sprzątanie
Aby wyczyścić wszystkie zasoby Google Cloud używane 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