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 représentations vectorielles continues 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 de représentation vectorielle continue de texte :
- Compatibilité avec Python 3.8, 3.9, 3.10 et 3.11.
- Ils sont compatibles avec les pipelines de traitement par lot et par flux.
- Ils sont compatibles avec l'API Vertex AI de représentations vectorielles continues de texte et le module Sentence Transformers de Hugging Face.
Transformations de traitement de données utilisant TFT :
- Compatibilité avec Python 3.8, 3.9 et 3.10.
- 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 représentations vectorielles continues de texte pour mon LLM à l'aide de Vertex AI
- Utilisez la classe
MLTransform
Apache Beam avec l'API Vertex AI de représentations vectorielles continues de texte pour générer des représentations vectorielles continues de texte. Les représentations vectorielles continues 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 représentations vectorielles continues 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 représentations vectorielles continues de texte. Le frameworkSentenceTransformers
de Huging Face permet de générer des phrases, du texte et des représentations vectorielles continues d'images à l'aide de Python. - Je souhaite calculer un vocabulaire à partir d'un ensemble de données
- Calculez 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 les tâches de machine learning.
- Je souhaite effectuer le scaling de 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 inclut plusieurs transformations de scaling de données.
Pour obtenir la liste complète des transformations disponibles, consultez la section Transformations dans 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
Étapes suivantes
- 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.