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.

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.
  • 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.
  • Associez efficacement plusieurs types d'opérations de traitement à une seule interface.

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 d'embeddings textuels :

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.

Je souhaite générer des embeddings de texte pour mon LLM à l'aide de Vertex AI
Utilisez la classe MLTransform Apache Beam avec l'API Vertex AI d'embeddings de texte pour générer des embeddings de texte. Les embeddings de texte permettent de représenter du texte sous forme de vecteurs numériques, ce qui est nécessaire pour de nombreuses tâches de traitement du langage naturel (TLN).
Je souhaite générer des embeddings de texte pour mon LLM à l'aide de Huging Face
Utilisez la classe MLTransform d'Apache Beam avec les modèles du hub Hugging Face pour générer des embeddings de texte. Le framework SentenceTransformers de Huging Face permet de générer des phrases, du texte et des embeddings d'images à l'aide de Python.
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 page 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

Étape suivante