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 :
- Classification à étiquette unique. Pour en savoir plus, consultez la section Préparer des données d'image d'entraînement pour la classification à étiquette unique.
- Classification multi-étiquette. Pour en savoir plus, consultez la section Préparer des données d'image d'entraînement pour la classification multi-étiquette.
- Détection d'objets. Pour en savoir plus, consultez la section Préparer des données d'image d'entraînement pour la détection d'objets.
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 :
- Classification. Pour en savoir plus, consultez la section Préparer des données textuelles d'entraînement pour la classification.
- Extraction d'entités. Pour en savoir plus, consultez la section Préparer des données textuelles d'entraînement pour l'extraction d'entités.
- Analyse des sentiments. Pour en savoir plus, consultez la section Préparer des données textuelles d'entraînement pour l'analyse des sentiments.
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 :
- Classification. Pour en savoir plus, consultez la section Fichiers de schéma de classification.
- Reconnaissance des actions. Pour en savoir plus, consultez la section Fichiers de schéma de reconnaissance d'actions.
- Suivi des objets. Pour en savoir plus, consultez la section Fichiers de schéma de suivi d'objet.
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 :
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é :
batch_serve_to_bq
diffuse les données vers une table BigQuery.batch_serve_to_df
diffuse les données vers unDataFrame
pandas.batch_serve_to_gcs
diffuse les données vers un fichier CSV ou un fichierTFRecord
TensorFlow.
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
- En savoir plus sur le SDK Vertex AI.