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 zestaw 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 New Project .
  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 zaczyna 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 pobrać z 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 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)

Notatnik następnie używa interfejsu CLI 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 otwierać i edytować również 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

Notatnik używa następnie polecenia tfx run create aby rozpocząć uruchamianie potoku. Ten przebieg zobaczysz także 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 pulpitu 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ź 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 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ć predykcyjną jakość 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 raz napiszesz kod transformacji, a wynikowe transformacje 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

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 znajduje się 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ź 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.

Dostępne cele wdrożenia

Twój model został przeszkolony i zweryfikowany, a model jest teraz gotowy do produkcji. Możesz teraz wdrożyć 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 z definicji BIG_QUERY_WITH_DIRECT_RUNNER_BEAM_PIPELINE_ARGS i BIG_QUERY_QUERY . Zastąp identyfikator projektu i wartość regionu w tym pliku poprawnymi wartościami swojego 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ę beam_pipeline_args że beam_pipeline_args 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 używał 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 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. Użyj 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 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. 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