Treten Sie der SIG TFX-Addons-Community bei und helfen Sie, TFX noch besser zu machen!

Grundlegendes zu TFX-Pipelines

MLOps ist die Praxis der Anwendung von DevOps-Praktiken zur Automatisierung, Verwaltung und Prüfung von Workflows für maschinelles Lernen (ML). ML-Workflows umfassen Schritte zu:

  • Daten vorbereiten, analysieren und transformieren.
  • Trainiere und bewerte ein Modell.
  • Stellen Sie geschulte Modelle für die Produktion bereit.
  • Verfolgen Sie ML-Artefakte und verstehen Sie deren Abhängigkeiten.

Die Ad-hoc-Verwaltung dieser Schritte kann schwierig und zeitaufwändig sein.

TFX erleichtert die Implementierung von MLOps, indem es ein Toolkit bereitstellt, mit dem Sie Ihren ML-Prozess auf verschiedenen Orchestratoren orchestrieren können, z. B.: Apache Airflow-, Apache Beam- und Kubeflow-Pipelines. Durch die Implementierung Ihres Workflows als TFX-Pipeline können Sie:

  • Automatisieren Sie Ihren ML-Prozess, sodass Sie Ihr Modell regelmäßig neu trainieren, bewerten und bereitstellen können.
  • Verwenden Sie verteilte Rechenressourcen für die Verarbeitung großer Datenmengen und Workloads.
  • Erhöhen Sie die Experimentiergeschwindigkeit, indem Sie eine Pipeline mit verschiedenen Hyperparametersätzen ausführen.

In diesem Handbuch werden die Kernkonzepte beschrieben, die zum Verständnis von TFX-Pipelines erforderlich sind.

Artefakt

Die Ausgaben von Schritten in einer TFX-Pipeline werden als Artefakte bezeichnet . Nachfolgende Schritte in Ihrem Workflow können diese Artefakte als Eingaben verwenden. Auf diese Weise können Sie mit TFX Daten zwischen Workflow-Schritten übertragen.

Beispielsweise gibt die Standardkomponente ExampleGen serialisierte Beispiele aus, die von Komponenten wie der Standardkomponente StatisticsGen als Eingaben verwendet werden.

Artefakte müssen stark mit einem im ML-Metadatenspeicher registrierten Artefakttyp typisiert sein. Erfahren Sie mehr über die in ML-Metadaten verwendeten Konzepte .

Artefakttypen haben einen Namen und definieren ein Schema ihrer Eigenschaften. Namen von Artefakttypen müssen in Ihrem ML-Metadatenspeicher eindeutig sein. TFX bietet verschiedene Standardartefakttypen , die komplexe Datentypen und Werttypen beschreiben, z. B.: Zeichenfolge, Ganzzahl und Gleitkomma. Sie können diese Artefakttypen wiederverwenden oder benutzerdefinierte Artefakttypen definieren, die von Artifact .

Parameter

Parameter sind Eingaben in Pipelines, die bekannt sind, bevor Ihre Pipeline ausgeführt wird. Mit Parametern können Sie das Verhalten einer Pipeline oder eines Teils einer Pipeline durch Konfiguration anstelle von Code ändern.

Sie können beispielsweise Parameter verwenden, um eine Pipeline mit verschiedenen Hyperparametersätzen auszuführen, ohne den Code der Pipeline zu ändern.

Durch die Verwendung von Parametern können Sie die Experimentiergeschwindigkeit erhöhen, indem Sie das Ausführen Ihrer Pipeline mit verschiedenen Parametersätzen vereinfachen.

Erfahren Sie mehr über die RuntimeParameter-Klasse .

Komponente

Eine Komponente ist eine Implementierung einer ML-Aufgabe, die Sie als Schritt in Ihrer TFX-Pipeline verwenden können. Komponenten bestehen aus:

  • Eine Komponentenspezifikation, die die Eingabe- und Ausgabeartefakte der Komponente sowie die erforderlichen Parameter der Komponente definiert.
  • Ein Executor, der den Code implementiert, um einen Schritt in Ihrem ML-Workflow auszuführen, z. B. das Aufnehmen und Transformieren von Daten oder das Trainieren und Bewerten eines Modells.
  • Eine Komponentenschnittstelle, die die Komponentenspezifikation und den Executor zur Verwendung in einer Pipeline verpackt.

TFX bietet mehrere Standardkomponenten , die Sie in Ihren Pipelines verwenden können. Wenn diese Komponenten nicht Ihren Anforderungen entsprechen, können Sie benutzerdefinierte Komponenten erstellen. Erfahren Sie mehr über benutzerdefinierte Komponenten .

Pipeline

Eine TFX-Pipeline ist eine tragbare Implementierung eines ML-Workflows, der auf verschiedenen Orchestratoren ausgeführt werden kann, z. B.: Apache Airflow-, Apache Beam- und Kubeflow-Pipelines. Eine Pipeline besteht aus Komponenteninstanzen und Eingabeparametern.

Komponenteninstanzen erzeugen Artefakte als Ausgaben und hängen normalerweise von Artefakten ab, die von vorgelagerten Komponenteninstanzen als Eingaben erzeugt werden. Die Ausführungssequenz für Komponenteninstanzen wird durch Erstellen eines gerichteten azyklischen Diagramms der Artefaktabhängigkeiten bestimmt.

Stellen Sie sich beispielsweise eine Pipeline vor, die Folgendes ausführt:

  • Nimmt Daten direkt von einem proprietären System mithilfe einer benutzerdefinierten Komponente auf.
  • Berechnet Statistiken für die Trainingsdaten mithilfe der StatisticsGen-Standardkomponente.
  • Erstellt ein Datenschema mit der Standardkomponente SchemaGen.
  • Überprüft die Trainingsdaten mithilfe der ExampleValidator-Standardkomponente auf Anomalien.
  • Führt das Feature-Engineering für das Dataset mithilfe der Transform-Standardkomponente durch.
  • Trainiert ein Modell mit der Trainer-Standardkomponente.
  • Evaluiert das trainierte Modell mithilfe der Evaluator-Komponente.
  • Wenn das Modell seine Bewertung besteht, stellt die Pipeline das trainierte Modell mithilfe einer benutzerdefinierten Komponente in ein proprietäres Bereitstellungssystem.

Um die Ausführungsreihenfolge für die Komponenteninstanzen zu bestimmen, analysiert TFX die Artefaktabhängigkeiten.

  • Die Datenaufnahmekomponente weist keine Artefaktabhängigkeiten auf, sodass sie der erste Knoten im Diagramm sein kann.
  • StatisticsGen hängt von den Beispielen ab, die durch die Datenaufnahme erzeugt wurden. Daher muss es nach der Datenaufnahme ausgeführt werden.
  • SchemaGen hängt von den von StatisticsGen erstellten Statistiken ab und muss daher nach StatisticsGen ausgeführt werden.
  • ExampleValidator hängt von den von StatisticsGen erstellten Statistiken und dem von SchemaGen erstellten Schema ab. Daher muss es nach StatisticsGen und SchemaGen ausgeführt werden.
  • Die Transformation hängt von den Beispielen ab, die durch die Datenaufnahme und das von SchemaGen erstellte Schema erstellt wurden. Sie muss daher nach der Datenaufnahme und SchemaGen ausgeführt werden.
  • Der Trainer hängt von den Beispielen ab, die durch die Datenaufnahme erstellt wurden, dem von SchemaGen erstellten Schema und dem von Transform erstellten gespeicherten Modell . Der Trainer kann erst nach Datenaufnahme, SchemaGen und Transformation ausgeführt werden.
  • Der Evaluator hängt von den Beispielen ab, die durch die Datenerfassung erstellt wurden, und vom gespeicherten Modell, das vom Trainer erstellt wurde. Daher muss es nach der Datenerfassung und dem Trainer ausgeführt werden.
  • Der benutzerdefinierte Deployer hängt vom vom Trainer erstellten gespeicherten Modell und den vom Evaluator erstellten Analyseergebnissen ab. Daher muss der Deployer nach dem Trainer und dem Evaluator ausgeführt werden.

Basierend auf dieser Analyse führt ein Orchestrator Folgendes aus:

  • Die Datenaufnahme-, StatisticsGen- und SchemaGen-Komponenteninstanzen werden nacheinander ausgeführt.
  • Die Komponenten ExampleValidator und Transform können parallel ausgeführt werden, da sie Abhängigkeiten von Eingabeartefakten gemeinsam haben und nicht von der Ausgabe des anderen abhängen.
  • Nach Abschluss der Transformationskomponente werden die Instanzen der Trainer-, Evaluator- und benutzerdefinierten Deployer-Komponenten nacheinander ausgeführt.

Weitere Informationen zum Erstellen einer TFX-Pipeline .

TFX-Pipeline-Vorlage

TFX-Pipeline-Vorlagen erleichtern den Einstieg in die Pipeline-Entwicklung, indem sie eine vorgefertigte Pipeline bereitstellen, die Sie für Ihren Anwendungsfall anpassen können.

Weitere Informationen zum Anpassen einer TFX-Pipeline-Vorlage .

Pipeline-Lauf

Ein Lauf ist eine einzelne Ausführung einer Pipeline.

Orchestrator

Ein Orchestrator ist ein System, in dem Sie Pipeline-Läufe ausführen können. TFX unterstützt Orchestratoren wie Apache Airflow , Apache Beam und Kubeflow Pipelines . TFX verwendet den Begriff DagRunner auch, um sich auf eine Implementierung zu beziehen, die einen Orchestrator unterstützt.