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:
- Clasificación con una sola etiqueta. Para obtener más información, consulta el artículo Preparar datos de entrenamiento de imágenes para la clasificación con una sola etiqueta.
- Clasificación de varias etiquetas. Para obtener más información, consulta Preparar datos de entrenamiento de imágenes para la clasificación multietiqueta.
- Detección de objetos. Para obtener más información, consulta Preparar datos de entrenamiento de imágenes para la detección de objetos.
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:
- Clasificación. Para obtener más información, consulta el artículo Preparar datos de entrenamiento de texto para la clasificación.
- Extracción de entidades. Para obtener más información, consulta Preparar datos de entrenamiento de texto para la extracción de entidades.
- Análisis de sentimiento. Para obtener más información, consulta el artículo Preparar datos de entrenamiento de texto para el análisis de sentimiento.
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:
- Clasificación. Para obtener más información, consulta Archivos de esquema de clasificación.
- Reconocimiento de acciones. Para obtener más información, consulta Archivos de esquema de reconocimiento de acciones.
- Seguimiento de objetos. Para obtener más información, consulta Archivos de esquema de seguimiento de objetos.
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:
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:
batch_serve_to_bq
proporciona datos a una tabla de BigQuery.batch_serve_to_df
proporciona datos a un pandasDataFrame
.batch_serve_to_gcs
proporciona datos a un archivo CSV o a un archivo TensorFlowTFRecord
.
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
- Consulta información sobre el SDK de Vertex AI.