Zrozumienie potoków TFX

MLOps to praktyka stosowania praktyk DevOps w celu automatyzacji, zarządzania i kontrolowania przepływów pracy uczenia maszynowego (ML). Przepływy pracy ML obejmują następujące kroki:

  • Przygotowuj, analizuj i przekształcaj dane.
  • Trenuj i oceniaj model.
  • Wdrażaj przeszkolone modele w środowisku produkcyjnym.
  • Śledź artefakty uczenia maszynowego i poznaj ich zależności.

Zarządzanie tymi etapami w sposób doraźny może być trudne i czasochłonne.

TFX ułatwia wdrażanie MLOps, udostępniając zestaw narzędzi, który pomaga orkiestrować proces ML w różnych orkiestratorach, takich jak: Apache Airflow, Apache Beam i Kubeflow Pipelines. Implementując przepływ pracy jako potok TFX, możesz:

  • Zautomatyzuj proces uczenia maszynowego, który umożliwia regularne ponowne szkolenie, ocenę i wdrażanie modelu.
  • Wykorzystaj rozproszone zasoby obliczeniowe do przetwarzania dużych zbiorów danych i obciążeń.
  • Zwiększ prędkość eksperymentowania, uruchamiając potok z różnymi zestawami hiperparametrów.

W tym przewodniku opisano podstawowe pojęcia wymagane do zrozumienia potoków TFX.

Artefakt

Wyniki kroków w potoku TFX nazywane są artefaktami . W kolejnych krokach przepływu pracy te artefakty mogą być wykorzystywane jako dane wejściowe. W ten sposób TFX umożliwia przesyłanie danych pomiędzy etapami przepływu pracy.

Na przykład standardowy komponent ExampleGen emituje serializowane przykłady, których komponenty, takie jak standardowy komponent StatisticsGen , wykorzystują jako dane wejściowe.

Artefakty muszą być silnie wpisane przy użyciu typu artefaktu zarejestrowanego w magazynie metadanych ML . Dowiedz się więcej o pojęciach używanych w metadanych ML .

Typy artefaktów mają nazwę i definiują schemat jego właściwości. Nazwy typów artefaktów muszą być unikalne w magazynie metadanych ML. TFX udostępnia kilka standardowych typów artefaktów opisujących złożone typy danych i typy wartości, takie jak: ciąg znaków, liczba całkowita i liczba zmiennoprzecinkowa. Można ponownie wykorzystać te typy artefaktów lub zdefiniować niestandardowe typy artefaktów wywodzące się z Artifact .

Parametr

Parametry są danymi wejściowymi potoków, które są znane przed wykonaniem potoku. Parametry umożliwiają zmianę zachowania potoku lub jego części poprzez konfigurację, a nie kod.

Można na przykład użyć parametrów do uruchomienia potoku z różnymi zestawami hiperparametrów bez zmiany kodu potoku.

Używanie parametrów pozwala zwiększyć szybkość eksperymentowania, ułatwiając uruchamianie potoku z różnymi zestawami parametrów.

Dowiedz się więcej o klasie RuntimeParameter .

Część

Komponent to implementacja zadania ML, którego można użyć jako kroku w potoku TFX. Komponenty składają się z:

  • Specyfikacja komponentu, która definiuje artefakty wejściowe i wyjściowe komponentu oraz wymagane parametry komponentu.
  • Moduł wykonujący, który implementuje kod w celu wykonania kroku w przepływie pracy ML, takiego jak pozyskiwanie i przekształcanie danych lub trenowanie i ocenianie modelu.
  • Interfejs komponentu, który pakuje specyfikację komponentu i moduł wykonawczy do użycia w potoku.

TFX udostępnia kilka standardowych komponentów , których możesz używać w swoich potokach. Jeśli te komponenty nie spełniają Twoich potrzeb, możesz zbudować komponenty niestandardowe. Dowiedz się więcej o komponentach niestandardowych .

Rurociąg

Potok TFX to przenośna implementacja przepływu pracy ML, którą można uruchomić w różnych koordynatorach, takich jak: Apache Airflow, Apache Beam i Kubeflow Pipelines. Potok składa się z instancji komponentów i parametrów wejściowych.

Instancje komponentów generują artefakty jako dane wyjściowe i zazwyczaj zależą od artefaktów generowanych przez instancje komponentów poprzedzających jako dane wejściowe. Kolejność wykonywania instancji komponentów jest określana poprzez utworzenie skierowanego acyklicznego wykresu zależności artefaktów.

Rozważmy na przykład potok, który wykonuje następujące czynności:

  • Pozyskuje dane bezpośrednio z zastrzeżonego systemu przy użyciu niestandardowego komponentu.
  • Oblicza statystyki danych szkoleniowych przy użyciu standardowego komponentu StatisticsGen.
  • Tworzy schemat danych przy użyciu standardowego komponentu SchemaGen.
  • Sprawdza dane szkoleniowe pod kątem anomalii przy użyciu standardowego komponentu exampleValidator.
  • Wykonuje inżynierię funkcji na zestawie danych przy użyciu standardowego komponentu Transform.
  • Uczy model przy użyciu standardowego komponentu Trainer.
  • Ocenia przeszkolony model przy użyciu składnika Evaluator.
  • Jeśli model przejdzie ocenę, potok kolejkuje przeszkolony model do zastrzeżonego systemu wdrażania przy użyciu komponentu niestandardowego.

Aby określić kolejność wykonywania instancji komponentów, TFX analizuje zależności artefaktów.

  • Komponent pozyskiwania danych nie ma żadnych zależności artefaktów, więc może być pierwszym węzłem na wykresie.
  • StatisticsGen zależy od przykładów generowanych przez pozyskiwanie danych, dlatego należy je wykonać po przyjęciu danych.
  • SchemaGen zależy od statystyk utworzonych przez StatisticsGen, dlatego musi zostać wykonany po StatisticsGen.
  • PrzykładValidator zależy od statystyk utworzonych przez StatisticsGen i schematu utworzonego przez SchemaGen, dlatego musi zostać wykonany po StatisticsGen i SchemaGen.
  • Transformacja zależy od przykładów generowanych przez pozyskiwanie danych i schematu utworzonego przez SchemaGen, dlatego należy ją wykonać po przyjęciu danych i SchemaGen.
  • Trener opiera się na przykładach generowanych przez pozyskiwanie danych, schemacie utworzonym przez SchemaGen i zapisanym modelu utworzonym przez Transform. Trenera można uruchomić dopiero po pobraniu danych, schemagen i transformacji.
  • Ocena zależy od przykładów uzyskanych w wyniku pozyskiwania danych i zapisanego modelu utworzonego przez trenera, dlatego musi zostać wykonana po przyjęciu danych i trenerze.
  • Niestandardowy moduł wdrażający zależy od zapisanego modelu wytworzonego przez trenera i wyników analizy utworzonej przez osobę oceniającą, dlatego wdrażanie musi zostać wykonane po trenerze i oceniającym.

Na podstawie tej analizy koordynator uruchamia:

  • Pozyskiwanie danych, instancje składników StatisticsGen i SchemaGen po kolei.
  • Komponenty exampleValidator i Transform mogą działać równolegle, ponieważ współużytkują zależności artefaktów wejściowych i nie zależą od siebie nawzajem.
  • Po ukończeniu komponentu Transform instancje Trainera, Evaluatora i niestandardowego komponentu wdrażającego są uruchamiane sekwencyjnie.

Dowiedz się więcej o budowaniu potoku TFX .

Szablon potoku TFX

Szablony potoków TFX ułatwiają rozpoczęcie opracowywania potoków, udostępniając wstępnie zbudowany potok, który można dostosować do swojego przypadku użycia.

Dowiedz się więcej o dostosowywaniu szablonu potoku TFX .

Uruchomienie rurociągu

Uruchomienie to pojedyncze wykonanie potoku.

Orkiestrator

Orchestrator to system, w którym można wykonywać uruchomienia potoków. TFX obsługuje orkiestratory takie jak: Apache Airflow , Apache Beam i Kubeflow Pipelines . TFX używa również terminu DagRunner w odniesieniu do implementacji obsługującej orkiestratora.