Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

TFX w potokach platformy Cloud AI

Wprowadzenie

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

Pod koniec tego samouczka utworzysz i uruchomisz ML Pipeline 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 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.

Zestaw danych Chicago Taxi

TaxiTaksówka w Chicago

Używasz zbioru danych Taxi Trips opublikowanego przez miasto Chicago.

Możesz przeczytać więcej o zbiorze danych w Google BigQuery . Poznaj pełny zbiór danych w interfejsie użytkownika BigQuery .

Model Cel - Klasyfikacja binarna

Czy klient daje więcej czy mniej niż 20% napiwku?

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 .

  1. Przejdź do Google Cloud Console .

  2. Zaakceptuj warunki korzystania z usługi Google Cloud

  3. Jeśli chcesz zacząć od bezpłatnego konta próbnego, kliknij Wypróbuj bezpłatnie (lub Rozpocznij bezpłatnie ).

    1. Wybierz swój kraj.

    2. Zaakceptuj warunki korzystania z usługi.

    3. Wprowadź szczegóły płatności.

      Na tym etapie nie zostaniesz obciążony opłatą. Jeśli nie masz innych projektów Google Cloud, możesz ukończyć ten samouczek bez przekraczania limitów Google Cloud Free Tier , który obejmuje maksymalnie 8 rdzeni działających w tym samym czasie.

1.b Utwórz nowy projekt.

  1. W głównym panelu Google Cloud kliknij menu projektu obok nagłówka Google Cloud Platform i wybierz Nowy projekt .
  2. Nadaj projektowi nazwę i wprowadź inne szczegóły projektu
  3. Po utworzeniu projektu wybierz go z listy rozwijanej projektu.

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

  1. Przejdź do strony Klastry potoków platform AI .

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

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

  3. Na stronie przeglądu Kubeflow Pipelines kliknij Configure .

    Być może będziesz musiał poczekać kilka minut, zanim przejdziesz dalej, podczas włączania interfejsów API Kubernetes Engine.

  4. Na stronie Wdrażanie potoków Kubeflow :

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

    2. WAŻNE Zaznacz pole oznaczone Zezwalaj na dostęp do następujących interfejsów API w chmurze . (Jest to wymagane, aby ten klaster miał dostęp do innych elementów projektu. Jeśli pominiesz ten krok, naprawienie go później będzie nieco trudne).

    3. Kliknij Utwórz i poczekaj kilka minut, aż klaster zostanie utworzony.

    4. Wybierz przestrzeń nazw i nazwę instancji (użycie wartości domyślnych jest w porządku). Nie musisz zaznaczać opcji Użyj zarządzanego magazynu .

    5. Kliknij przycisk Wdróż i poczekaj kilka chwil, aż potok zostanie wdrożony. Wdrażając Kubeflow Pipelines, akceptujesz Warunki świadczenia usług.

3. Skonfiguruj instancję aplikacji Cloud AI Platform Notebook.

  1. Przejdź do strony Notatniki platformy AI .

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

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

  3. Utwórz nową instancję z zainstalowanym TensorFlow 2.1 (lub nowszym).

    Nowa instancja -> TensorFlow 2.1 -> Bez GPU

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

    1. Wybierz opcję Dostosuj u dołu formularza Nowa instancja notatnika .
    2. Wybierz konfigurację maszyny z 1 lub 2 procesorami wirtualnymi.

4. Uruchom Notatnik Pierwsze kroki

  1. Przejdź do strony Klastry potoków platform AI .

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

  2. W wierszu klastra, którego używasz w tym samouczku, kliknij opcję Otwórz pulpit nawigacyjny potoków .

    otwarta deska rozdzielcza

  3. Na stronie Getting Started kliknij Open TF 2.1 Notebook .

  4. Wybierz instancję Notatnika, której używasz w tym samouczku, i Kontynuuj .

    wybierz notebook

5. Kontynuuj pracę w notebooku

zainstalować

Notatnik Wprowadzenie rozpoczyna się od zainstalowania TFX i Kubeflow Pipelines (KFP) na maszynie wirtualnej, na której działa Jupyter Lab, wraz z modułem Skaffold :

Zainstaluj tf i kfp

Następnie ustawia PATH aby zawierał katalog binarny użytkownika Python i katalog zawierający skaffold :

ustaw ścieżkę

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ę 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 Kubeflow Pipeline i spójrz na adres URL. Punkt końcowy to wszystko w adresie URL po https:// , aż do googleusercontent.com .

ENDPOINT='' # Enter YOUR ENDPOINT here.

Notes 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ę 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 notatnik używa interfejsu wiersza polecenia tfx do skopiowania 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

Następnie notebook 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 również otwierać i edytować w środowisku notatnika).

# You can also list the files from the shell
! ls

tfx template copy 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. W przypadku własnych potoków byłyby to pliki pomocnicze, których wymaga potok.

Oto krótki opis plików Pythona.

  • pipeline - ten katalog zawiera definicję potoku
    • configs.py - definiuje wspólne stałe dla configs.py potoki
    • pipeline.py - definiuje komponenty TFX i potok
  • models - ten katalog zawiera definicje modeli ML.
    • features.py features_test.py - definiuje cechy dla modelu
    • preprocessing.py / preprocessing_test.py - definiuje zadania przetwarzania wstępnego przy użyciu tf::Transform
    • estimator - ten katalog zawiera model oparty na estymatorze.
      • constants.py - określa 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 - określa stałe modelu
      • model.py / model_test.py - definiuje model DNN przy użyciu Keras
  • beam_dag_runner.py / kubeflow_dag_runner.py - zdefiniuj biegaczy dla każdego silnika orkiestracji

7. Uruchom swój pierwszy potok TFX na Kubeflow

Notebook uruchomi potok przy użyciu polecenia tfx run CLI.

Połącz się z pamięcią

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 w pamięci blokowej. W tym samouczku użyjemy GCS do przechowywania naszych ładunków metadanych, używając zasobnika, który został utworzony automatycznie podczas konfiguracji. Notatnik otrzymuje nazwy bieżących zasobników:

Uzyskaj listę nazw wiader:

gsutil ls | cut -d / -f 3

Skopiuj nazwę zasobnika, którego używasz, do schowka.

Utwórz potok

Następnie notatnik używa polecenia tfx pipeline create do utworzenia potoku.

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

Podczas tworzenia potoku zostaną wygenerowane Dockerfile i build.yaml celu zbudowania obrazu build.yaml 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 potok

Następnie notatnik używa polecenia tfx run create aby rozpocząć wykonywanie potoku. Ten przebieg zobaczysz również w obszarze Eksperymenty na pulpicie nawigacyjnym Kubeflow Pipelines.

tfx run create --pipeline-name={PIPELINE_NAME} --endpoint={ENDPOINT}

Możesz wyświetlić swój potok z poziomu panelu Kubeflow Pipelines.

8. Potwierdź swoje dane

Pierwszym zadaniem w każdym projekcie data science lub ML jest zrozumienie i wyczyszczenie danych.

  • Zapoznaj się z typami danych dla każdej funkcji
  • Poszukaj anomalii i brakujących wartości
  • Zapoznaj się z dystrybucjami każdej funkcji

składniki

Składniki danychSkładniki danych

W edytorze plików laboratorium Jupyter:

W pipeline / pipeline.py odkomentuj linie, które dołączają te komponenty do twojego rurociągu:

# 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_dag_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 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 jedynie rozpoczęcie pracy. Bardziej zaawansowany przykład znajduje się w kolumnie TensorFlow Data Validation Colab .

Więcej informacji na temat używania TFDV do eksploracji i walidacji zestawu 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.

  • Krzyże funkcyjne
  • Słownictwo
  • Osadzenia
  • PCA
  • Kodowanie kategoryczne

Jedną z zalet korzystania z TFX jest to, że jeden raz napiszesz kod transformacji, a wynikowe przekształcenia będą spójne między uczeniem a serwowaniem.

składniki

Przekształcać

  • Transform wykonuje inżynierię funkcji na zbiorze danych.

W edytorze plików laboratorium Jupyter:

W pipeline / pipeline.py znajdź i usuń komentarz z linii, 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_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Sprawdź wyjścia rurociągów

W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyjścia 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 jedynie rozpoczęcie pracy. Bardziej zaawansowany przykład znajduje się w TensorFlow Transform Colab .

10. Szkolenie

Wytrenuj model TensorFlow z ładnymi, czystymi, przekształconymi danymi.

  • Uwzględnij transformacje z poprzedniego kroku, aby były konsekwentnie stosowane
  • 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

  • Trainer trenuje model TensorFlow.

W edytorze plików laboratorium Jupyter:

W pipeline / pipeline.py znajdź i usuń komentarz, 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_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Sprawdź wyjścia rurociągów

W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyjścia 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 jedynie rozpoczęcie pracy. Bardziej zaawansowany przykład można znaleźć w samouczku TensorBoard .

11. Analiza wydajności modelu

Zrozumieć więcej niż tylko wskaźniki najwyższego poziomu.

  • Użytkownicy doświadczają wydajności modelu tylko dla swoich zapytań
  • Niska wydajność wycinków danych może zostać ukryta za pomocą wskaźników najwyższego poziomu
  • Uczciwość 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
    • Wyniki dla kluczowych odbiorców, takich jak wpływowe osoby
  • Jeśli wymieniasz model, który jest obecnie w produkcji, najpierw upewnij się, że nowy jest lepszy

składniki

  • Ewaluator dokonuje głębokiej analizy wyników szkolenia.

W edytorze plików laboratorium Jupyter:

W pipeline / pipeline.py znajdź i usuń komentarz z wiersza, 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_dag_runner.py \
  --endpoint={ENDPOINT}

! tfx run create --pipeline-name "{PIPELINE_NAME}"

Sprawdź wyjścia rurociągów

W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyjścia 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. Podawanie modelu

Jeśli nowy model jest gotowy, zrób to.

  • Pusher wdraża SavedModels w dobrze znanych lokalizacjach

Cele wdrożenia otrzymują nowe modele z dobrze znanych lokalizacji

  • Obsługa TensorFlow
  • TensorFlow Lite
  • TensorFlow JS
  • TensorFlow Hub

składniki

  • Pusher wdraża model w infrastrukturze obsługującej.

W edytorze plików laboratorium Jupyter:

W pipeline / pipeline.py znajdź i usuń komentarz z linii, która dołącza Pusher do potoku:

# components.append(pusher)

Sprawdź wyjścia rurociągów

W przypadku Kubeflow Orchestrator odwiedź pulpit nawigacyjny KFP i znajdź wyniki 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 celu wdrożenia TensorFlow, w tym:

  • Obsługa TensorFlow do obsługi modelu na serwerze lub farmie serwerów oraz przetwarzania żądań wnioskowania REST i / lub gRPC.
  • TensorFlow Lite , w celu uwzględnienia modelu w natywnej aplikacji mobilnej na Androida lub iOS lub w 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 jedynie rozpoczęcie pracy. Poniżej znajduje się kilka przykładów integracji z innymi usługami w chmurze.

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ą 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, która jest kompilowana 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 potoków 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 opłacalna hurtownia danych w chmurze. BigQuery może służyć jako źródło przykładów szkoleń w TFX. W tym kroku dodamy BigQueryExampleGen do potoku.

W edytorze plików laboratorium Jupyter:

Kliknij dwukrotnie, aby otworzyć pipeline.py . Skomentuj CsvExampleGen i CsvExampleGen komentarz z wiersza, który tworzy instancję BigQueryExampleGen . Musisz także odkomentować argument query funkcji create_pipeline .

Musimy określić, którego projektu GCP użyć w BigQuery, a odbywa się to poprzez ustawienie --project w beam_pipeline_args podczas tworzenia potoku.

Kliknij dwukrotnie, aby otworzyć configs.py . BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS definicję 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 to nazwa potoku, który jest my_pipeline jeśli nie zmieniłeś nazwy potoku.

Kliknij dwukrotnie, aby otworzyć kubeflow_dag_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 nowy przebieg wykonywania, 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_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Wypróbuj Dataflow

Kilka komponentów TFX używa Apache Beam do implementacji potoków równoległych do danych, co oznacza, że ​​możesz dystrybuować obciążenia przetwarzania danych za pomocą Google Cloud Dataflow . W tym kroku ustawimy orkiestrator 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 . DATAFLOW_BEAM_PIPELINE_ARGS z definicji GOOGLE_CLOUD_REGION i DATAFLOW_BEAM_PIPELINE_ARGS .

Zmień katalog o jeden poziom wyżej. Kliknij nazwę katalogu nad listą plików. Nazwa katalogu to nazwa potoku, który jest my_pipeline jeśli nie zmieniłeś.

Kliknij dwukrotnie, aby otworzyć kubeflow_dag_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_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Możesz znaleźć swoje zadania Dataflow w Dataflow w Cloud Console .

Wypróbuj Cloud AI Platform Training and Prediction z KFP

TFX współpracuje z kilkoma zarządzanymi usługami GCP, takimi jak Cloud AI Platform for Training and Prediction . Możesz ustawić komponent Trainer , aby korzystał z Cloud AI Platform Training, zarządzanej usługi do szkolenia 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 skonfigurujemy nasz komponent Trainer and Pusher do korzystania z usług Cloud AI Platform.

Przed edycją plików może być konieczne włączenie interfejsu API AI Platform Training & Prediction .

Kliknij dwukrotnie pipeline aby zmienić katalog, i kliknij dwukrotnie, aby otworzyć configs.py . GCP_AI_PLATFORM_TRAINING_ARGS GCP_AI_PLATFORM_SERVING_ARGS 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 szkoleniu Cloud AI Platform Training, więc powinniśmy ustawić masterConfig.imageUri w GCP_AI_PLATFORM_TRAINING_ARGS na taką samą wartość jak powyżej CUSTOM_TFX_IMAGE .

Zmień katalog o jeden poziom wyżej i kliknij dwukrotnie, aby otworzyć kubeflow_dag_runner.py . ai_platform_training_args i ai_platform_serving_args .

Zaktualizuj potok i uruchom go ponownie

# Update the pipeline
!tfx pipeline update \
--pipeline-path=kubeflow_dag_runner.py \
--endpoint={ENDPOINT}

!tfx run create --pipeline-name {PIPELINE_NAME} --endpoint={ENDPOINT}

Możesz znaleźć swoje zadania szkoleniowe w Zadaniach Cloud AI Platform . Jeśli Twój potok zakończył się pomyślnie, możesz znaleźć swój model w modelach Cloud AI Platform .

14. Wykorzystaj własne dane

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, do którego ma dostęp potok, 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. Zmodyfikuj DATA_PATH w kubeflow_dag_runner.py , wskazując lokalizację.

Jeśli Twoje dane są przechowywane w BigQuery

  1. Zmodyfikuj BIG_QUERY_QUERY w configs.py do swojej instrukcji zapytania.
  2. Dodaj funkcje w models / features.py .
  3. Zmodyfikuj models / preprocessing.py aby przekształcić dane wejściowe do szkolenia .
  4. Zmodyfikuj models / keras / model.py i models / keras / constants.py aby opisać swój model ML .

Dowiedz się więcej o trenerze

Zobacz przewodnik po komponentach Trainer, 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