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.
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 :
- Compatibilité avec Python 3.8, 3.9, 3.10, 3.11 et 3.12.
- Ils sont compatibles avec les pipelines de traitement par lot et par flux.
- Elles sont compatibles avec l'API Vertex AI d'embeddings de texte et le module Sentence Transformers de Hugging Face.
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 frameworkSentenceTransformers
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 à utiliserBCUKET_NAME
: nom de votre bucket Cloud StorageDATA
: données d'entrée à transformerTRANSFORM_FUNCTION_NAME
: nom que vous attribuez à votre fonction de transformation dans le code
Étape suivante
- Pour en savoir plus sur
MLTransform
, consultez la section Prétraiter des données de la documentation Apache Beam. - Pour plus d'exemples, consultez la section
MLTransform
pour le traitement des données dans le catalogue de transformations Apache Beam. - Exécutez un notebook interactif dans Colab.