MLOps to praktyka stosowania praktyk DevOps w celu zautomatyzowania, zarządzania i inspekcji przepływów pracy uczenia maszynowego (ML). Przepływy pracy ML obejmują kroki, aby:
- Przygotowuj, analizuj i przekształcaj dane.
- Trenuj i oceniaj model.
- Wdrażaj wyszkolone modele do produkcji.
- Śledź artefakty ML i poznaj ich zależności.
Zarządzanie tymi krokami w sposób doraźny może być trudne i czasochłonne.
TFX ułatwia implementację MLOps, udostępniając zestaw narzędzi, który pomaga organizować proces ML w różnych koordynatorach, takich jak: Apache Airflow, Apache Beam i Kubeflow Pipelines. Wdrażając swój przepływ pracy jako potok TFX, możesz:
- Zautomatyzuj proces uczenia maszynowego, co pozwala na regularne przeszkolenie, ocenę i wdrożenie modelu.
- Wykorzystaj rozproszone zasoby obliczeniowe do przetwarzania dużych zestawó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
Dane wyjściowe kroków w potoku TFX nazywane są artefaktami . Kolejne kroki w przepływie pracy mogą wykorzystywać te artefakty jako dane wejściowe. W ten sposób TFX umożliwia przesyłanie danych pomiędzy etapami przepływu pracy.
Na przykład standardowy składnik ExampleGen
emituje serializowane przykłady, których składniki, takie jak standardowy składnik StatisticsGen
, wykorzystują jako dane wejściowe.
Artefakty muszą być silnie wpisane z typem artefaktu zarejestrowanym 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ć unikatowe w magazynie metadanych ML. TFX udostępnia kilka standardowych typów artefaktów , które opisują złożone typy danych i typy wartości, takie jak: string, integer i float. Możesz ponownie użyć tych typów artefaktów lub zdefiniować niestandardowe typy artefaktów, które pochodzą z Artifact
.
Parametr
Parametry są danymi wejściowymi do potoków, które są znane przed wykonaniem potoku. Parametry umożliwiają zmianę zachowania potoku lub części potoku za pomocą konfiguracji zamiast kodu.
Na przykład można użyć parametrów do uruchomienia potoku z różnymi zestawami hiperparametrów bez zmiany kodu potoku.
Korzystanie z 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 .
Składnik
Komponent to implementacja zadania ML, którego można użyć jako kroku w potoku TFX. Komponenty składają się z:
- Specyfikacja składnika, która definiuje artefakty wejściowe i wyjściowe składnika oraz wymagane parametry składnika.
- Wykonawca, który implementuje kod, aby wykonać krok w przepływie pracy ML, taki jak pozyskiwanie i przekształcanie danych lub trenowanie i ocena modelu.
- Interfejs komponentu, który pakuje specyfikację komponentu i executor do użycia w potoku.
TFX dostarcza kilka standardowych komponentów , których możesz użyć 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óry można uruchomić na różnych koordynatorach, takich jak: Apache Airflow, Apache Beam i Kubeflow Pipelines. Potok składa się z wystąpień składników i parametrów wejściowych.
Instancje komponentów generują artefakty jako dane wyjściowe i zazwyczaj zależą od artefaktów wytwarzanych przez poprzedzające instancje komponentów jako dane wejściowe. Sekwencja wykonywania instancji komponentów jest określana przez utworzenie ukierunkowanego 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 dla danych treningowych przy użyciu standardowego komponentu StatisticsGen.
- Tworzy schemat danych przy użyciu standardowego składnika SchemaGen.
- Sprawdza dane szkoleniowe pod kątem anomalii przy użyciu standardowego składnika ExampleValidator.
- Wykonuje inżynierię funkcji w zestawie danych przy użyciu standardowego komponentu Transform.
- Uczy modelu przy użyciu standardowego składnika Trainer.
- Ocenia przeszkolony model przy użyciu składnika Evaluator.
- Jeśli model przejdzie ocenę, potok umieszcza trenowany model w kolejce do zastrzeżonego systemu wdrażania przy użyciu składnika niestandardowego.
Aby określić kolejność wykonywania instancji składnika, 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 wygenerowanych przez pozyskiwanie danych, więc musi zostać wykonane po pozyskiwaniu danych.
- SchemaGen zależy od statystyk stworzonych przez StatisticsGen, więc musi zostać wykonany po StatisticsGen.
- ExampleValidator zależy od statystyk stworzonych przez StatisticsGen i schematu stworzonego przez SchemaGen, więc musi być wykonany po StatisticsGen i SchemaGen.
- Przekształcenie zależy od przykładów wygenerowanych przez pozyskiwanie danych i schematu utworzonego przez SchemaGen, więc musi zostać wykonane po pozyskiwaniu danych i SchemaGen.
- Trener zależy od przykładów wygenerowanych przez pozyskiwanie danych, schematu utworzonego przez SchemaGen i zapisanego modelu utworzonego przez Transform. Trainer można uruchomić tylko po pozyskaniu danych, SchemaGen i Transform.
- Ewaluator zależy od przykładów wygenerowanych przez pozyskiwanie danych i zapisanego modelu utworzonego przez Trenera, więc musi zostać wykonany po pobraniu danych i Trenerze.
- Wdrożenie niestandardowe zależy od zapisanego modelu stworzonego przez Trenera i wyników analizy stworzonych przez Oceniającego, więc wdrożeniowiec musi zostać wykonany po Trenerze i Oceniającym.
Na podstawie tej analizy koordynator uruchamia:
- Pozyskiwanie danych, StatisticsGen, komponent SchemaGen kolejno.
- Składniki ExampleValidator i Transform mogą działać równolegle, ponieważ współdzielą zależności artefaktów wejściowych i nie zależą od siebie nawzajem.
- Po zakończeniu działania komponentu Transform instancje trenera, oceniającego i niestandardowego komponentu wdrożeniowego są uruchamiane sekwencyjnie.
Dowiedz się więcej o budowaniu potoku TFX .
Szablon potoku TFX
Szablony potoku TFX ułatwiają rozpoczęcie tworzenia potoku, udostępniając wstępnie zbudowany potok, który można dostosować do przypadku użycia.
Dowiedz się więcej o dostosowywaniu szablonu potoku TFX .
Uruchomienie potoku
Uruchomienie to pojedyncze wykonanie potoku.
Orkiestrator
Orchestrator to system, w którym można wykonywać uruchomienia potoku. TFX obsługuje orkiestratory, takie jak: Apache Airflow , Apache Beam i Kubeflow Pipelines . TFX używa również terminu DagRunner , aby odnieść się do implementacji obsługującej program Orchestrator.