Classes de données

Le SDK Vertex AI inclut des classes qui stockent et lisent des données utilisées pour entraîner un modèle. Chaque classe liée aux données représente un ensemble de données géré Vertex AI qui contient des données structurées, des données non structurées ou des données Vertex AI Feature Store. Après avoir créé un ensemble de données, vous l'utilisez pour entraîner votre modèle.

Les articles suivants fournissent de brèves explications sur chaque classe liée aux données dans le SDK Vertex AI. Pour chaque classe, l'article inclut un exemple de code illustrant comment créer une instance de cette classe. Après avoir créé un ensemble de données, vous pouvez utiliser son ID pour le récupérer :

dataset = aiplatform.ImageDataset('projects/my-project/location/my-region/datasets/{DATASET_ID}')

Classes de données structurées

Les classes suivantes fonctionnent avec des données structurées, organisées en lignes et en colonnes. Les données structurées sont souvent utilisées pour stocker des nombres, des dates, des valeurs et des chaînes.

TabularDataset

Utilisez cette classe pour travailler avec des ensembles de données tabulaires. Vous pouvez utiliser un fichier CSV, BIgQuery ou un DataFrame pandas pour créer un ensemble de données tabulaire. Pour en savoir plus sur la pagination dans les données BigQuery, consultez la page Lire des données avec l'API BigQuery à l'aide de la pagination. Pour en savoir plus sur les données tabulaires, consultez la section Données tabulaires.

Le code suivant montre comment créer un ensemble de données tabulaire en important un fichier CSV.

my_dataset = aiplatform.TabularDataset.create(
    display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])

Le code suivant montre comment créer un ensemble de données tabulaire en important un fichier CSV en deux étapes distinctes.

my_dataset = aiplatform.TextDataset.create(
    display_name="my-dataset")

my_dataset.import(
    gcs_source=['gs://path/to/my/dataset.csv']
    import_schema_uri=aiplatform.schema.dataset.ioformat.text.multi_label_classification
)

Si vous créez un ensemble de données tabulaire avec un DataFrame pandas, vous devez utiliser une table BigQuery pour préparer les données pour Vertex AI :

my_dataset = aiplatform.TabularDataset.create_from_dataframe(
    df_source=my_pandas_dataframe,
    staging_path=f"bq://{bq_dataset_id}.table-unique"
)

TimeSeriesDataset

Utilisez cette classe pour travailler avec des ensembles de données de séries temporelles. Une série temporelle est un ensemble de données qui contient des données enregistrées à différents intervalles de temps. L'ensemble de données inclut l'heure et au moins une variable qui en dépend. Vous utilisez un ensemble de données de séries temporelles pour les prédictions de prévisions. Pour en savoir plus, consultez la Présentation des prévisions.

Vous pouvez créer un ensemble de données de séries temporelles géré à partir de fichiers CSV dans un bucket Cloud Storage ou à partir d'une table BigQuery.

Le code suivant montre comment créer un TimeSeriesDataset en important un fichier de source de données CSV contenant l'ensemble de données de séries temporelles :

my_dataset = aiplatform.TimeSeriesDataset.create(
    display_name="my-dataset", gcs_source=['gs://path/to/my/dataset.csv'])

Le code suivant montre comment créer un TimeSeriesDataset en important un fichier de table BigQuery contenant l'ensemble de données de séries temporelles :

my_dataset = aiplatform.TimeSeriesDataset.create(
    display_name="my-dataset", bq_source=['bq://path/to/my/bigquerydataset.train'])

Classes de données non structurées

Les classes suivantes fonctionnent avec des données non structurées, qui ne peuvent pas être stockées dans une base de données relationnelle traditionnelle. Elles sont souvent stockées sous forme de fichier audio, texte ou vidéo, ou sous forme de base de données NoSQL.

ImageDataset

Utilisez cette classe pour travailler avec un ensemble de données d'images géré. Pour créer un ensemble de données d'images géré, vous avez besoin d'un fichier de source de données au format CSV et d'un fichier de schéma au format YAML. Un schéma est facultatif pour un modèle personnalisé. Le fichier CSV et le schéma sont accessibles dans les buckets Cloud Storage.

Utilisez les données d'image pour les objectifs suivants :

Le code suivant montre comment créer un ensemble de données d'images en important un fichier de source de données CSV et un fichier de schéma YAML. Le fichier de schéma que vous utilisez dépend de ce que votre ensemble de données d'images est utilisé pour la classification à étiquette unique, la classification multi-étiquette ou la détection d'objets.

my_dataset = aiplatform.ImageDataset.create(
    display_name="my-image-dataset",
    gcs_source=['gs://path/to/my/image-dataset.csv'],
    import_schema_uri=['gs://path/to/my/schema.yaml']
    )

TextDataset

Utilisez cette classe pour travailler avec un ensemble de données de texte géré. Pour créer un ensemble de données de texte, vous avez besoin d'une source de données au format CSV et d'un schéma au format YAML. Un schéma est facultatif pour un modèle personnalisé. Le fichier CSV et le schéma sont accessibles dans les buckets Cloud Storage.

Utilisez les données de texte pour les objectifs suivants :

Le code suivant montre comment créer un ensemble de données textuelles en important un fichier de source de données CSV et un fichier de schéma YAML. Le fichier de schéma que vous utilisez dépend de ce que votre ensemble de données textuelles est utilisé pour la classification, l'extraction d'entités ou l'analyse des sentiments.

my_dataset = aiplatform.TextDataset.create(
    display_name="my-image-dataset",
    gcs_source=['gs://path/to/my/text-dataset.csv'],
    import_schema_uri=['gs://path/to/my/schema.yaml']
    )

VideoDataset

Utilisez cette classe pour travailler avec un ensemble de données vidéo géré. Pour créer un ensemble de données vidéo, vous devez disposer d'un fichier de source de données CSV et d'un schéma au format YAML. Le fichier CSV et le schéma sont accessibles dans les buckets Cloud Storage.

Utilisez les données vidéo pour les objectifs suivants :

Le code suivant montre comment créer un ensemble de données afin d'entraîner un modèle de classification de vidéos en important un fichier de source de données CSV. Le fichier de schéma que vous utilisez dépend de ce que votre ensemble de données vidéo est utilisé pour la classification des actions, la reconnaissance ou le suivi des objets.

my_dataset = aiplatform.VideoDataset.create(
    gcs_source=['gs://path/to/my/dataset.csv'],
    import_schema_uri=['gs://aip.schema.dataset.ioformat.video.classification.yaml']
)

Classes de données Vertex AI Feature Store

Vertex AI Feature Store est un service géré utilisé pour stocker, diffuser, gérer et partager des caractéristiques de ML à grande échelle.

Vertex AI Feature Store utilise un modèle de données de séries temporelles composé de trois classes qui gèrent les caractéristiques au fur et à mesure de leur évolution. Les trois classes sont organisées dans l'ordre hiérarchique suivant :

Hiérarchie des classes Vertex AI Feature Store

Pour en savoir plus sur le modèle de données de Vertex AI Feature Store, consultez la section Modèle de données et ressources. Pour en savoir plus sur les exigences des source de données Vertex AI Feature Store, consultez la section Exigences liées aux données sources.

Les classes suivantes sont utilisées avec les données Vertex AI Feature Store 

Featurestore

La ressource de magasin de caractéristiques, représentée par la classe Featurestore, est la classe de premier niveau dans la hiérarchie des modèles de données de Vertex AI Feature Store. La ressource de niveau suivant dans le modèle de données est le type d'entité, qui est un ensemble de caractéristiques présentant des relations sémantiques que vous créez. Voici quelques-unes des méthodes Featurestore qui fonctionnent avec les types d'entités :

Créer un type d'entité

Utilisez la méthode Featurestore.create_entity_type avec un entity_type_id pour créer une ressource de type d'entité. Une ressource de type d'entité est représentée par la classe EntityType. entity_type_id est alphanumérique et doit être unique dans un magasin de caractéristiques. L'exemple suivant vous montre comment vous pouvez créer un type d'entité :

entity_type = aiplatform.featurestore.create_entity_type(
        entity_type_id=my_entity_type_name, description=my_entity_type_description
        )

Diffuser des types d'entités

Utilisez l'une des trois méthodes Featurestore pour diffuser des éléments de données d'entité :

EntityType

La classe EntityType représente une ressource de type d'entité, qui est un ensemble de caractéristiques présentant des relations sémantiques que vous définissez. Par exemple, un service de musique peut avoir les types d'entités musical_artist et user. Vous pouvez utiliser la méthode FeatureStore.create_entity_type ou la méthode EntityType.create pour créer un type d'entité. Le code suivant montre comment utiliser EntityType.create :

entity_type = aiplatform.EntityType.create(
        entity_type_id=my_entity_type_name, featurestore_name=featurestore_name
    )

Feature

La classe Feature représente une ressource de caractéristique qui est une propriété ou un attribut mesurable d'un type d'entité. Par exemple, le type d'entité musical_artist peut avoir des caractéristiques, telles que date_of_birth et last_name, pour suivre diverses propriétés d'artistes musicaux. Les caractéristiques doivent être uniques à un type d'entité, mais ne doivent pas nécessairement être uniques d'un point de vue général.

Lorsque vous créez un Feature, vous devez spécifier son type de valeur (par exemple, BOOL_ARRAY, DOUBLE, DOUBLE_ARRAY ou STRING). L'exemple de code suivant montre comment créer une caractéristique :

my_feature = aiplatform.Feature.create(
    feature_id='my_feature_id',
    value_type='INT64',
    entity_type_name='my_entity_type_id',
    featurestore_id='my_featurestore_id',
)

Étapes suivantes