Clases de datos

El SDK de Vertex AI incluye clases que almacenan y leen datos usados para entrenar un modelo. Cada clase relacionada con datos representa un conjunto de datos administrado de Vertex AI que tiene datos estructurados, datos no estructurados o datos de Vertex AI Feature Store. Después de crear un conjunto de datos, lo usarás para entrenar tu modelo.

En los siguientes temas, se proporcionan explicaciones breves de cada clase relacionada con datos en el 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. Después de crear un conjunto de datos, puedes 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 están organizados en filas y columnas. Los datos estructurados a menudo se usan para almacenar números, fechas, valores y cadenas.

TabularDataset

Usa esta clase para trabajar con conjuntos de datos tabulares. Puedes usar un archivo CSV o un pandasDataFrame para crear un conjunto de datos tabular. Para obtener más información sobre paginar los datos de BigQuery, consulta Lee datos con la API de BigQuery mediante paginación. Para obtener más información sobre datos tabulares, consultaDatos tabulares.

En el siguiente código, se muestra cómo crear un conjunto de datos tabular mediante la importación de 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 mediante la importación de 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 tabulares con un DataFrame de Pandas, debes usar una tabla de BigQuery para almacenar en etapa intermedia los datos de 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 el tiempo y, al menos, una variable que depende del tiempo. Usa un conjunto de datos de series temporales para obtener predicciones de previsión. Para obtener más información, consulta la Descripción general de la previsión.

Puedes crear un conjunto de datos de series temporales administradas desde archivos CSV en un bucket de Cloud Storage o desde una tabla de BigQuery.

En el siguiente código, se muestra cómo crear un TimeSeriesDataset mediante la importación de un archivo de fuente de datos CSV que tiene el conjunto de datos de series temporales:

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 con un archivo de una tabla de BigQuery que tiene el conjunto de datos de series temporales:

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 pueden almacenarse en una base de datos relacional tradicional. A menudo, se almacena como audio, texto, archivos de video o como una base de datos NoSQL.

ImageDataset

Usa esta clase para trabajar con un conjunto de datos de imágenes administradas. Para crear un conjunto de datos de imágenes administradas, necesitas un archivo de fuente de datos en formato CSV y un archivo de esquema en formato YAML. Un esquema es opcional para un modelo personalizado. Se accede al archivo CSV y al esquema en los buckets de Cloud Storage.

Usa los datos de imágenes para los siguientes objetivos:

En el siguiente código, se muestra cómo crear un conjunto de datos de imágenes mediante la importación de un archivo de fuente de datos CSV y un archivo de esquema YAML. El archivo de esquema que uses dependerá de si tu conjunto de datos de imágenes se usa para la clasificación con etiqueta única, la clasificación con etiquetas múltiples 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 administrado. 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 los buckets 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 mediante la importación de un archivo de fuente de datos CSV y un archivo de esquema YAML. El archivo de esquema que uses 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 opiniones.

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 video administrado. Para crear un conjunto de datos de video, necesitas un archivo de fuente de datos CSV y un esquema en formato YAML. Se accede al archivo CSV y al esquema en los buckets de Cloud Storage.

Usa los datos de video para 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 videos mediante la importación de un archivo de fuente de datos CSV. El archivo de esquema que uses dependerá de si usas tu conjunto de datos de video para la clasificación de acciones, 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 administrado que se usa para almacenar, entregar, administrar y compartir atributos de AA a gran escala.

Vertex AI Feature Store usa un modelo de datos de series temporales compuesto por tres clases que mantienen los atributos a medida que cambian con el tiempo. Las tres clases están organizadas en el siguiente orden jerárquico:

Jerarquía de las 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 fuentes de datos de Vertex AI Feature Store, consulta Requisitos de datos de origen.

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

Featurestore

El recurso de almacén de atributos, representado por la clase Featurestore, es la clase de nivel superior en la jerarquía de modelos de datos de Vertex AI Feature Store. El recurso del siguiente nivel en el modelo de datos es el tipo de entidad, que es una colección de los atributos relacionados de manera semántica que creas. Los siguientes son algunos de los métodos Featurestore que funcionan con los tipos de entidades:

Cree un tipo de entidad

Usa el método Featurestore.create_entity_type con un entity_type_id para crear un recurso de tipo de entidad. Un recurso de tipo de entidad está representado por la clase EntityType. El entity_type_id es alfanumérico y debe ser único en un almacén de atributos. El siguiente es 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
        )

Entrega tipos de entidad

Usa uno de los tres métodos Featurestore para entregar elementos de datos de entidad:

EntityType

La clase EntityType representa un recurso de tipo de entidad, que es una colección de atributos relacionados de manera semántica que defines. Por ejemplo, un servicio de música puede tener los tipos de entidades 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 atributo que es una propiedad o un atributo medible de un tipo de entidad. Por ejemplo, el tipo de entidad musical_artist podría tener atributos, como date_of_birth y last_name, para realizar un seguimiento de varias propiedades de artistas musicales. Los atributos deben ser únicos para un tipo de entidad, pero no es necesario que sean únicos a nivel global.

Cuando creas un Feature, debes especificar su tipo de valor (por ejemplo, BOOL_ARRAY, DOUBLE, DOUBLE_ARRAY o STRING). En el siguiente código, se muestra un ejemplo de cómo crear un atributo:

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

¿Qué sigue?