Construire des pipelines TFX

Utiliser la classe Pipeline

Les pipelines TFX sont définis à l'aide de la classe Pipeline . L'exemple suivant montre comment utiliser la classe Pipeline .

pipeline.Pipeline(
    pipeline_name=pipeline-name,
    pipeline_root=pipeline-root,
    components=components,
    enable_cache=enable-cache,
    metadata_connection_config=metadata-connection-config,
)

Remplacez les éléments suivants :

  • pipeline-name : Le nom de ce pipeline. Le nom du pipeline doit être unique.

    TFX utilise le nom du pipeline lors de l'interrogation des métadonnées ML pour les artefacts d'entrée de composant. La réutilisation d'un nom de pipeline peut entraîner des comportements inattendus.

  • pipeline-root : Le chemin racine des sorties de ce pipeline. Le chemin racine doit être le chemin complet d’un répertoire auquel votre orchestrateur dispose d’un accès en lecture et en écriture. Au moment de l'exécution, TFX utilise la racine du pipeline pour générer des chemins de sortie pour les artefacts de composants. Ce répertoire peut être local ou sur un système de fichiers distribué pris en charge, tel que Google Cloud Storage ou HDFS.

  • components : une liste d’instances de composants qui composent le flux de travail de ce pipeline.

  • enable-cache : (Facultatif.) Une valeur booléenne qui indique si ce pipeline utilise la mise en cache pour accélérer l'exécution du pipeline.

  • metadata-connection-config : (Facultatif.) Une configuration de connexion pour les métadonnées ML.

Définir le graphe d'exécution du composant

Les instances de composants produisent des artefacts en tant que sorties et dépendent généralement des artefacts produits par les instances de composants en amont en tant qu'entrées. La séquence d'exécution des instances de composant est déterminée en créant un graphe acyclique dirigé (DAG) des dépendances d'artefacts.

Par exemple, le composant standard ExampleGen peut ingérer des données à partir d'un fichier CSV et générer des exemples d'enregistrements sérialisés. Le composant standard StatisticsGen accepte ces exemples d'enregistrements en entrée et produit des statistiques d'ensemble de données. Dans cet exemple, l'instance de StatisticsGen doit suivre ExampleGen car SchemaGen dépend de la sortie de ExampleGen .

Dépendances basées sur les tâches

Vous pouvez également définir des dépendances basées sur des tâches à l'aide des méthodes add_upstream_node et add_downstream_node de votre composant. add_upstream_node vous permet de spécifier que le composant actuel doit être exécuté après le composant spécifié. add_downstream_node vous permet de spécifier que le composant actuel doit être exécuté avant le composant spécifié.

Modèles de pipelines

Le moyen le plus simple de mettre en place rapidement un pipeline et de voir comment toutes les pièces s’emboîtent est d’utiliser un modèle. L'utilisation de modèles est abordée dans Création d'un pipeline TFX localement .

Mise en cache

La mise en cache du pipeline TFX permet à votre pipeline d'ignorer les composants qui ont été exécutés avec le même ensemble d'entrées lors d'une exécution précédente du pipeline. Si la mise en cache est activée, le pipeline tente de faire correspondre la signature de chaque composant, le composant et l'ensemble d'entrées, à l'une des exécutions précédentes de composants de ce pipeline. S'il existe une correspondance, le pipeline utilise les sorties du composant de l'exécution précédente. S'il n'y a pas de correspondance, le composant est exécuté.

N'utilisez pas la mise en cache si votre pipeline utilise des composants non déterministes. Par exemple, si vous créez un composant pour créer un nombre aléatoire pour votre pipeline, l'activation du cache entraîne l'exécution de ce composant une seule fois. Dans cet exemple, les exécutions suivantes utilisent le nombre aléatoire de la première exécution au lieu de générer un nombre aléatoire.