Prétraiter des données avec MLTransform

Cette page explique pourquoi et comment utiliser la fonctionnalité MLTransform pour préparer vos données à l'entraînement de modèles de machine learning (ML). En combinant plusieurs transformations de traitement de données dans une même classe, MLTransform simplifie le processus d'application des opérations de traitement de données Apache Beam à votre workflow.

Pour savoir comment utiliser MLTransform pour les tâches de génération d'embeddings, consultez Générer des embeddings avec MLTransform.

Schéma du workflow Dataflow ML avec l'étape de traitement des données en surbrillance.

Figure 1. Workflow complet de Dataflow ML. Utilisez MLTransform dans l'étape de prétraitement du workflow.

Avantages

La classe MLTransform offre les avantages suivants :

  • Transformez vos données sans écrire de code complexe ni gérer de bibliothèques sous-jacentes.
  • Associez efficacement plusieurs types d'opérations de traitement à une seule interface.
  • Génère des embeddings que vous pouvez utiliser pour transférer des données vers des bases de données vectorielles ou pour exécuter des inférences.

    Pour en savoir plus sur la génération d'embeddings, consultez Générer des embeddings avec MLTransform.

Compatibilité et limites

La classe MLTransform présente les limites suivantes :

  • Disponible pour les pipelines qui utilisent le SDK Apache Beam pour Python version 2.53.0 et ultérieure.
  • Les pipelines doivent utiliser des fenêtres par défaut.

Transformations de traitement de données utilisant TFT :

  • Compatibilité avec Python 3.9, 3.10, 3.11.
  • Ils sont compatibles avec les pipelines de traitement par lot.

Cas d'utilisation

Les exemples de notebooks montrent comment utiliser MLTransform pour des cas d'utilisation spécifiques aux embeddings.

Je souhaite calculer un vocabulaire à partir d'un ensemble de données
Calcule un vocabulaire unique à partir d'un ensemble de données, puis mappez chaque mot ou jeton à un index d'entiers distinct. Utilisez cette transformation pour convertir des données textuelles en représentations numériques pour des tâches de machine learning.
Je souhaite faire évoluer mes données pour entraîner mon modèle de ML
Effectuez le scaling de vos données afin de pouvoir les utiliser pour entraîner votre modèle de ML. La classe MLTransform Apache Beam comprend plusieurs transformations de scaling des données.

Pour obtenir la liste complète des transformations disponibles, consultez la section Transformations de la documentation Apache Beam.

Utiliser MLTransform

Pour prétraiter les données à l'aide de la classe MLTransform, incluez le code suivant dans votre pipeline :

  import apache_beam as beam
  from apache_beam.ml.transforms.base import MLTransform
  from apache_beam.ml.transforms.tft import TRANSFORM_NAME
  import tempfile

  data = [
      {
          DATA
      },
  ]

  artifact_location = gs://BUCKET_NAME
  TRANSFORM_FUNCTION_NAME = TRANSFORM_NAME(columns=['x'])

  with beam.Pipeline() as p:
    transformed_data = (
        p
        | beam.Create(data)
        | MLTransform(write_artifact_location=artifact_location).with_transform(
            TRANSFORM_FUNCTION_NAME)
        | beam.Map(print))

Remplacez les valeurs suivantes :

  • TRANSFORM_NAME : nom de la transformation à utiliser
  • BCUKET_NAME : nom de votre bucket Cloud Storage
  • DATA : données d'entrée à transformer
  • TRANSFORM_FUNCTION_NAME : nom que vous attribuez à votre fonction de transformation dans le code

Étapes suivantes