Clases de datos

El SDK de Vertex AI incluye clases que almacenan y leen los datos utilizados para entrenar un modelo. Cada clase relacionada con los datos representa un conjunto de datos gestionado de Vertex AI que contiene datos estructurados, datos sin estructurar o datos de Vertex AI Feature Store. Una vez que hayas creado un conjunto de datos, podrás usarlo para entrenar tu modelo.

En los siguientes temas se ofrecen explicaciones breves de cada clase relacionada con los datos del SDK de Vertex AI. El tema de cada clase incluye un ejemplo de código que muestra cómo crear una instancia de esa clase. Cuando hayas creado un conjunto de datos, podrás usar su ID para recuperarlo:

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

Clases de datos estructurados

Las siguientes clases funcionan con datos estructurados, que se organizan en filas y columnas. Los datos estructurados se suelen usar para almacenar números, fechas, valores y cadenas.

TabularDataset

Usa esta clase para trabajar con conjuntos de datos tabulares. Puedes usar un archivo CSV, BigQuery o pandas DataFrame para crear un conjunto de datos tabular. Para obtener más información sobre la paginación de datos de BigQuery, consulta el artículo Leer datos con la API de BigQuery mediante paginación. Para obtener más información sobre los datos tabulares, consulta Datos tabulares.

En el siguiente código se muestra cómo crear un conjunto de datos tabulares importando un archivo CSV.

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

En el siguiente código se muestra cómo crear un conjunto de datos tabular importando un archivo CSV en dos pasos distintos.

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 creas un conjunto de datos tabular con pandas DataFrame, debes usar una tabla de BigQuery para almacenar los datos en Vertex AI:

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

TimeSeriesDataset

Usa esta clase para trabajar con conjuntos de datos de series temporales. Una serie temporal es un conjunto de datos que contiene datos registrados en diferentes intervalos de tiempo. El conjunto de datos incluye la hora y al menos una variable que depende de la hora. Se usa un conjunto de datos de serie temporal para predecir. Para obtener más información, consulta el artículo Introducción a las previsiones.

Puedes crear un conjunto de datos de serie temporal gestionado a partir de archivos CSV de un segmento de Cloud Storage o de una tabla de BigQuery.

En el siguiente código se muestra cómo crear un TimeSeriesDataset importando un archivo de fuente de datos CSV que contenga el conjunto de datos de serie temporal:

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

En el siguiente código se muestra cómo crear un TimeSeriesDataset importando un archivo de tabla de BigQuery que contenga el conjunto de datos de serie temporal:

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

Clases de datos no estructurados

Las siguientes clases funcionan con datos no estructurados, que no se pueden almacenar en una base de datos relacional tradicional. A menudo, se almacena como archivos de audio, texto o vídeo, o como una base de datos NoSQL.

ImageDataset

Usa esta clase para trabajar con un conjunto de datos de imágenes gestionado. Para crear un conjunto de datos de imágenes gestionadas, necesita un archivo de origen de datos en formato CSV y un archivo de esquema en formato YAML. El esquema es opcional para un modelo personalizado. Se accede al archivo CSV y al esquema en segmentos de Cloud Storage.

Usar datos de imagen para los siguientes objetivos:

En el siguiente código se muestra cómo crear un conjunto de datos de imágenes importando un archivo de origen de datos CSV y un archivo de esquema YAML. El archivo de esquema que utilices dependerá de si tu conjunto de datos de imágenes se usa para la clasificación de una sola etiqueta, la clasificación de varias etiquetas o la detección de objetos.

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

Usa esta clase para trabajar con un conjunto de datos de texto gestionado. Para crear un conjunto de datos de texto, necesitas una fuente de datos en formato CSV y un esquema en formato YAML. Un esquema es opcional para un modelo personalizado. Se accede al archivo CSV y al esquema en segmentos de Cloud Storage.

Usa datos de texto para los siguientes objetivos:

En el siguiente código se muestra cómo crear un conjunto de datos de texto importando un archivo de fuente de datos CSV y un archivo de esquema YAML. El archivo de esquema que utilices dependerá de si tu conjunto de datos de texto se usa para la clasificación, la extracción de entidades o el análisis de sentimiento.

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

Usa esta clase para trabajar con un conjunto de datos de vídeo gestionado. Para crear un conjunto de datos de vídeo, necesitas un archivo de fuente de datos CSV y un esquema en formato YAML. Se accede al archivo CSV y al esquema en segmentos de Cloud Storage.

Usa los datos de vídeo para conseguir los siguientes objetivos:

En el siguiente código se muestra cómo crear un conjunto de datos para entrenar un modelo de clasificación de vídeo importando un archivo de fuente de datos CSV. El archivo de esquema que utilices dependerá de si usas tu conjunto de datos de vídeo para la clasificación, el reconocimiento o el seguimiento de objetos.

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

Clases de datos de Vertex AI Feature Store

Vertex AI Feature Store es un servicio gestionado que se usa para almacenar, publicar, gestionar y compartir características de aprendizaje automático a gran escala.

Vertex AI Feature Store usa un modelo de datos de serie temporal compuesto por tres clases que mantienen las características a medida que cambian con el tiempo. Las tres clases se organizan en el siguiente orden jerárquico:

Jerarquía de clases de Vertex AI Feature Store

Para obtener más información sobre el modelo de datos de Vertex AI Feature Store, consulta Modelo de datos y recursos. Para obtener información sobre los requisitos de las fuentes de datos de Vertex AI Feature Store, consulta Requisitos de los datos de origen.

Las siguientes clases se usan con los datos de Vertex AI Feature Store:

Featurestore

El recurso Feature Store, representado por la clase Featurestore, es la clase de nivel superior en la jerarquía del modelo de datos de Vertex AI Feature Store. El siguiente nivel de recursos del modelo de datos es el tipo de entidad, que es un conjunto de funciones relacionadas semánticamente que creas. Estos son algunos de los métodos de Featurestore que funcionan con tipos de entidad:

Crear un tipo de entidad

Usa Featurestore.Método create_entity_type con un entity_type_id para crear un recurso de tipo de entidad. Un recurso de tipo de entidad se representa mediante la clase EntityType. El entity_type_id es alfanumérico y debe ser único en un almacén de características. A continuación, se muestra un ejemplo de cómo puedes crear un tipo de entidad:

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

Servir tipos de entidades

Utiliza uno de los tres métodos de Featurestore para publicar elementos de datos de entidades:

EntityType

La clase EntityType representa un recurso de tipo de entidad, que es una colección de funciones relacionadas semánticamente que defines. Por ejemplo, un servicio de música podría tener los tipos de entidad musical_artist y user. Puedes usar el método FeatureStore.create_entity_type o el método EntityType.create para crear un tipo de entidad. En el siguiente código se muestra cómo usar EntityType.create:

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

Feature

La clase Feature representa un recurso de función, que es una propiedad o un atributo medible de un tipo de entidad. Por ejemplo, el tipo de entidad musical_artist puede tener características, como date_of_birth y last_name, para monitorizar varias propiedades de los artistas musicales. Las funciones deben ser únicas para un tipo de entidad, pero no tienen por qué ser únicas a nivel mundial.

Cuando creas un Feature, debes especificar su tipo de valor (por ejemplo, BOOL_ARRAY, DOUBLE, DOUBLE_ARRAY o STRING). El siguiente código muestra un ejemplo de cómo crear una función:

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',
)

Siguientes pasos