Dołącz do społeczności SIG TFX-Addons i pomóż ulepszyć TFX! Dołącz do dodatków SIG TFX

TFX w potokach Cloud AI Platform

Wstęp

Ten samouczek ma na celu wprowadzenie do potoków TensorFlow Extended (TFX) i Cloud AI Platform 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.

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 rozwoju 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ówkach w Chicago

TaxiChicago taksówka

Używasz Taxi Trips zbiór danych wydany przez miasto Chicago.

Możesz dowiedzieć się więcej na temat zbioru danych w Google BigQuery . Poznaj pełny zestaw danych w BigQuery UI .

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 masz już jeden, przejdź do Tworzenie nowego projektu .

  1. Przejdź do konsoli Google Cloud .

  2. Zaakceptuj warunki Google Cloud Google

  3. Jeśli chcesz zacząć z darmowego konta próbnego, kliknij Wypróbuj bezpłatnie (lub Zacznij za darmo ).

    1. Wybierz swój kraj.

    2. Zaakceptuj warunki korzystania z usługi.

    3. Wprowadź szczegóły rozliczeniowe.

      W tym momencie nie zostaniesz obciążona opłatą. Jeśli nie masz żadnych innych projektów Google Cloud, można wykonać ten tutorial bez przekraczania Tier Google Cloud darmowe limity, który obejmuje maksymalnie 8 rdzeni pracujących w tym samym czasie.

1.b Utwórz nowy projekt.

  1. Od głównej tablicy rozdzielczej Google Cloud , kliknij listę rozwijaną projektu obok nagłówka Google Cloud Platform i wybierz New Project.
  2. Nadaj swojemu projektowi nazwę i wprowadź inne szczegóły projektu
  3. Po utworzeniu projektu wybierz go z listy rozwijanej projektu.

2. Skonfiguruj i wdróż potok AI Platform w nowym klastrze Kubernetes

  1. Przejdź do AI Platformy Rurociągi Clusters stronie.

    W głównym menu nawigacyjnym: ≡ > AI Platform > Rurociągi

  2. Kliknij + nowa instancja, aby utworzyć nowy klaster.

  3. Na stronie głównej Kubeflow rurociągi, kliknij przycisk Konfiguruj.

    Być może będziesz musiał poczekać kilka minut, zanim przejdziesz dalej, podczas gdy interfejsy API Kubernetes Engine są dla Ciebie włączone.

  4. Na stronie Deploy Kubeflow rurociągowego:

    1. Wybierz strefę (lub „region”) dla klastra.

    2. WAŻNE Zaznacz pole wyboru Zezwalaj na dostęp do następujących interfejsów API cloud. (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).

    3. Kliknij przycisk Utwórz i poczekać kilka minut, aż klaster został utworzony.

    4. Wybierz przestrzeń nazw i nazwę instancji (używanie wartości domyślnych jest w porządku). Nie masz do wyboru Użyj zarządzanej pamięci masowej.

    5. Kliknij wdrażania i odczekać kilka chwil, aż rurociąg został wdrożony. Wdrażając Kubeflow Pipelines, akceptujesz Warunki korzystania z usługi.

3. Skonfiguruj instancję Cloud AI Platform Notebook.

  1. Przejdź do podestów Notebooks AI stronie.

    W głównym menu nawigacyjnym: ≡ -> AI Platform -> Notebooki

  2. Jeśli pojawi się monit, włącz interfejs Compute Engine API.

  3. Utworzyć nową instancję z TensorFlow 2.1 (lub nowsza).

    Nowa instancja -> TensorFlow 2.1 -> Bez GPU

    Aby pozostać w granicach poziomu bezpłatnego, nie akceptuj tutaj ustawień domyślnych. Musisz zmniejszyć liczbę procesorów wirtualnych dostępnych dla tej instancji z 4 do 2:

    1. Wybierz Dostosuj u dołu Nowego postaci instancji notebook.
    2. Wybierz konfigurację maszyna z 1 lub 2 vCPUs.

4. Uruchom Notatnik Pierwsze kroki

  1. Przejdź do AI Platformy Rurociągi Clusters stronie.

    W głównym menu nawigacji: ≡ -> AI Platform -> Pipelines

  2. Na linii do klastra, którego używasz w tym kursie, kliknij polecenie Otwórz Rurociągi Dashboard.

    otwarty pulpit

  3. Na Getting Started stronie, kliknij przycisk Otwórz TF 2.1 Notebook.

  4. Wybierz instancję Notebook używasz do tego poradnika i dalej.

    wybierz-notebook

5. Kontynuuj pracę w Notatniku

zainstalować

Pierwsze kroki rozpoczyna notebooka poprzez zainstalowanie TFX i Kubeflow rurociągów (KFP) do VM który Jupyter Lab jest uruchomiony w.

Następnie sprawdza, która wersja TFX jest zainstalowana, dokonuje importu oraz ustawia i drukuje identyfikator projektu:

sprawdź wersję Pythona i zaimportuj

Połącz się z usługami Google Cloud

Konfiguracja potoku wymaga identyfikatora projektu, który można uzyskać za pośrednictwem notesu 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. Punkt końcowy jest wszystko w adresie URL, zaczynając od https:// , do, i tym, 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 tutorialu użyjemy my_pipeline .

PIPELINE_NAME="my_pipeline"
PROJECT_DIR=os.path.join(os.path.expanduser("~"),"imported",PIPELINE_NAME)

Notebook następnie wykorzystuje tfx CLI skopiować szablon rurociągu. Ten tutorial używa zestawu danych Chicago Taxi do wykonywania klasyfikacji binarnej, więc szablon ustawia model do 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. Nie powinno być to katalog z nazwą rurociągu ( 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

tfx template copy Powyższe polecenie stworzył podstawowe rusztowanie plików, które budują rurociąg. 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 - Katalog ten zawiera definicję gazociągu
    • configs.py - określa wspólne stałe dla biegaczy rurociągowych
    • pipeline.py - określa elementy TFX i rurociągów
  • models - Ten katalog zawiera definicje ML.
    • features.py features_test.py - określa funkcje dla modelu
    • preprocessing.py / preprocessing_test.py - określa przerób zadania wykorzystujące tf::Transform
    • estimator - Katalog ten zawiera model oparty prognozy.
      • constants.py - definiuje stałe modelu
      • model.py / model_test.py - określa modelu DNN za pomocą estymatora TF
    • keras - Ten katalog zawiera model oparty Keras.
      • constants.py - definiuje stałe modelu
      • model.py / model_test.py - określa modelu DNN korzystając Keras
  • beam_runner.py / kubeflow_runner.py - zdefiniować dla każdego silnika biegaczy orkiestracji

7. Uruchom swój pierwszy potok TFX na Kubeflow

Komputer zostanie uruchomiony rurociąg przy użyciu tfx run polecenia CLI.

Połącz z magazynem

Przebiegu rurociągów tworzenia artefaktów, które muszą być przechowywane w ML-Metadane . 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 będzie <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

Notebook następnie wykorzystuje tfx pipeline create polecenie, aby utworzyć rurociągu.

!tfx pipeline create  \
--pipeline-path=kubeflow_runner.py \
--endpoint={ENDPOINT} \
--build-image

Podczas tworzenia rurociągu, Dockerfile zostanie wygenerowany zbudować Docker obraz. 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

Notebook następnie używa tfx run create polecenie, aby rozpocząć bieg wykonania swojego rurociągu. 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

Komponenty danychKomponenty danych

  • ExampleGen spożywa i dzieli zbiór danych wejściowych.
  • StatisticsGen oblicza statystyki dla zbioru danych.
  • SchemaGen SchemaGen analizuje statystyki i tworzy schemat danych.
  • ExampleValidator szuka nieprawidłowości oraz brakujących wartości w zbiorze danych.

W edytorze plików laboratoryjnych Jupyter:

W pipeline / pipeline.py odkomentować linii, które Dołącz te elementy do swojego rurociągu:

# components.append(statistics_gen)
# components.append(schema_gen)
# components.append(example_validator)

( ExampleGen został już włączony, gdy pliki zostały skopiowane szablonu).

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. Dla bardziej zaawansowanych przykład patrz TensorFlow danych Colab Validation .

Aby uzyskać więcej informacji na temat korzystania TFDV zbadać i zweryfikować zbiór danych, patrz 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 wynikających z używania TFX jest to, że kod transformacji zostanie napisany raz, a powstałe przekształcenia będą spójne między trenowaniem a udostępnianiem.

składniki

Przekształcać

  • Transform wykonuje funkcji inżynierię na zbiorze.

W edytorze plików laboratoryjnych Jupyter:

W pipeline / pipeline.py , znaleźć i odkomentować linię, która dołącza Transform do rurociągu.

# 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. Dla bardziej zaawansowanych przykład zobaczyć TensorFlow Transform Colab .

10. Trening

Trenuj model TensorFlow z ładnymi, czystymi i przekształconymi danymi.

  • Uwzględnij przekształcenia z poprzedniego kroku, aby były stosowane konsekwentnie
  • Zapisz wyniki jako SavedModel do produkcji
  • Wizualizuj i poznaj proces szkolenia za pomocą TensorBoard
  • Zapisz również EvalSavedModel do analizy wydajności modelu

składniki

  • Trener trenuje model TensorFlow.

W edytorze plików laboratoryjnych Jupyter:

W pipeline / pipeline.py , znaleźć i odkomentować który dołącza Trainer do rurociągu:

# 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. Dla bardziej zaawansowanych przykład patrz TensorBoard Tutorial .

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 obecnie w produkcji, najpierw upewnij się, że nowy jest lepszy

składniki

  • Evaluator wykonuje głęboka analiza wyników treningowych.

W edytorze plików laboratoryjnych Jupyter:

W pipeline / pipeline.py , znaleźć i odkomentować linię, która dołącza Inspekcji rurociągu:

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

  • Popychacz wdraża model do infrastruktury służącej.

W edytorze plików laboratoryjnych Jupyter:

W pipeline / pipeline.py , znajdź i usuń wiersz, który dołącza Pusher rurociągu:

# components.append(pusher)

Sprawdź wyjścia rurociągu

W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny 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 serwowania , do serwowania swój model na farmie serwerów lub serwera i przetwarzania odpoczynku i / lub żądania wnioskowania gRPC.
  • TensorFlow Lite , na tym modelu w natywnej aplikacji mobilnych Android lub iOS lub w Raspberry Pi, internetu przedmiotów, lub mikrokontroler aplikacji.
  • TensorFlow.js , do prowadzenia 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żna dostosować konfiguracje zasobów przy użyciu pipeline_operator_funcs w wywołaniu KubeflowDagRunnerConfig .

pipeline_operator_funcs jest lista OpFunc elementów, który przekształca wszystkie wygenerowane ContainerOp instancji w przygotowaniu specyfikacji KFP, który jest skompilowany z KubeflowDagRunner .

Na przykład, aby pamięć konfiguracyjnym możemy użyć set_memory_request zadeklarować ilość potrzebnej pamięci. Typowym sposobem na to jest stworzenie opakowania dla set_memory_request i używać go dodać do listy, aby rurociąg 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

Spróbuj BigQueryExampleGen

BigQuery to Serverless, wysoce skalowalne i opłacalne magazyn chmura danych. BigQuery może służyć jako źródło przykładów szkoleniowych w TFX. W tym kroku dodamy BigQueryExampleGen do rurociągu.

W edytorze plików laboratoryjnych Jupyter:

Dwukrotne kliknięcie otwiera pipeline.py . Wykomentuj CsvExampleGen odkomentowane linia, która tworzy instancję BigQueryExampleGen . Należy również odkomentuj query argument create_pipeline funkcji.

Musimy określić, które GCP projekt używać do BigQuery, a odbywa się to poprzez ustawienie --project w beam_pipeline_args podczas tworzenia rurociągu.

Dwukrotne kliknięcie otwiera configs.py . Odkomentuj definicja 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 wyżej. Kliknij nazwę katalogu nad listą plików. Nazwa katalogu jest nazwą rurociągu, który jest my_pipeline jeśli nie zmienić nazwę rurociągu.

Dwukrotne kliknięcie otwiera kubeflow_runner.py . Odkomentuj dwa argumenty, query i beam_pipeline_args , dla create_pipeline funkcji.

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 Komponenty TFX użyciu Apache Beam wdrożyć danych równoległe rurociągi, a to oznacza, że można rozpowszechniać przetwarzania danych obciążeń przy użyciu Google Cloud przepływu danych . 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

Podwójne kliknięcie pipeline do katalogu zmian i kliknij dwukrotnie, aby otworzyć configs.py . Odkomentuj definicja 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ą rurociągu, który jest my_pipeline jeśli nie zmieni.

Dwukrotne kliknięcie otwiera kubeflow_runner.py . Odkomentuj beam_pipeline_args . (Również upewnić się, aby skomentować bieżące beam_pipeline_args że dodany 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}

Można znaleźć pracę przepływu danych w przepływ danych w chmurze konsoli .

Wypróbuj szkolenia i prognozy Cloud AI Platform z KFP

TFX współpracuje z kilkoma usług zarządzanych GCP, takie jak cloud AI Platforma Szkoleniowo Prediction . Można ustawić Trainer komponent do korzystania z Cloud AI platformy szkoleniowej, zarządzanej usługi szkolenia dla modeli ML. Ponadto, gdy dany model jest zbudowany i gotowy, aby Mu służono, można przesunąć swój model do Prediction Chmura AI Platforma do serwowania. W tym kroku ustawiamy nasz Trainer i Pusher komponent do korzystania z usług cloud AI platformy.

Przed edycją plików, może najpierw trzeba włączyć AI platformy szkoleniowej & Prediction API.

Podwójne kliknięcie pipeline do katalogu zmian i kliknij dwukrotnie, aby otworzyć configs.py . Odkomentuj definicja GOOGLE_CLOUD_REGION , GCP_AI_PLATFORM_TRAINING_ARGS i GCP_AI_PLATFORM_SERVING_ARGS . Będziemy wykorzystywać nasze niestandardowe wbudowany pojemnik na zdjęcie, aby trenować w modelu cloud AI platformy szkoleniowej, więc powinniśmy ustawić masterConfig.imageUri w GCP_AI_PLATFORM_TRAINING_ARGS na taką samą wartość jak CUSTOM_TFX_IMAGE powyżej.

Zmiana katalogu o jeden poziom w górę, 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}

Można znaleźć oferty szkoleniowe w chmurze AI Platforma Jobs . Jeśli rurociąg zakończone powodzeniem można znaleźć w modelu Models Chmura AI Platformy .

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

  1. Modyfikować DATA_PATH w kubeflow_runner.py , wskazując lokalizację.

Jeśli Twoje dane są przechowywane w BigQuery

  1. Modyfikować BIG_QUERY_QUERY w configs.py do wyciągu zapytania.
  2. Dodaj funkcje w models / features.py .
  3. Modyfikować models / preprocessing.py do przekształcania danych wejściowych do treningu .
  4. Modyfikować models / keras / model.py i models / keras / constants.py do opisania modelu ML .

Dowiedz się więcej o Trenerze

Zobacz komponentu przewodnik Trainer więcej szczegółów dotyczących rurociągów szkoleniowych.

Sprzątanie

Aby oczyścić wszystkich zasobów Google Cloud zastosowane w tym projekcie, można usunąć projekt Google Cloud został użyty do samouczka.

Alternatywnie, można oczyścić poszczególne zasoby, odwiedzając każdy konsol: - Google Cloud Storage - Google Pojemnik rejestru - Google Kubernetes Silnik