En esta página se muestra cómo usar conjuntos de datos gestionados de Vertex AI para entrenar modelos personalizados. Los conjuntos de datos gestionados ofrecen las siguientes ventajas:
- Gestiona tus conjuntos de datos en una ubicación centralizada.
- Crea etiquetas y varios conjuntos de anotaciones.
- Crea tareas de etiquetado humano con el etiquetado de datos integrado.
- Hacer un seguimiento del linaje de los modelos para la gobernanza y el desarrollo iterativo.
- Compara el rendimiento de los modelos entrenando modelos de AutoML y personalizados con los mismos conjuntos de datos.
- Generar estadísticas y visualizaciones de datos.
- Dividir automáticamente los datos en conjuntos de entrenamiento, prueba y validación.
Antes de empezar
Para poder usar un conjunto de datos gestionado en tu aplicación de entrenamiento, debes crear el conjunto de datos. Debes crear el conjunto de datos y la canalización de entrenamiento que utilices para entrenar en la misma región. Debes usar una región en la que haya recursos de Dataset
.
Acceder a un conjunto de datos desde tu aplicación de entrenamiento
Cuando creas un flujo de trabajo de entrenamiento personalizado, puedes especificar que tu aplicación de entrenamiento use un conjunto de datos de Vertex AI.
En el tiempo de ejecución, Vertex AI transfiere metadatos sobre tu conjunto de datos a tu aplicación de entrenamiento definiendo las siguientes variables de entorno en tu contenedor de entrenamiento.
AIP_DATA_FORMAT
: el formato en el que se exporta el conjunto de datos. Los valores posibles sonjsonl
,csv
obigquery
.AIP_TRAINING_DATA_URI
: el URI de BigQuery de los datos de entrenamiento o el URI de Cloud Storage del archivo de datos de entrenamiento.AIP_VALIDATION_DATA_URI
: el URI de BigQuery de los datos de validación o el URI de Cloud Storage del archivo de datos de validación.AIP_TEST_DATA_URI
: el URI de BigQuery de los datos de prueba o el URI de Cloud Storage del archivo de datos de prueba.
Si el AIP_DATA_FORMAT
de tu conjunto de datos es jsonl
o csv
, los valores de URI de datos hacen referencia a URIs de Cloud Storage, como gs://bucket_name/path/training-*
. Para que el tamaño de cada archivo de datos sea relativamente pequeño, Vertex AI divide el conjunto de datos en varios archivos. Como tus datos de entrenamiento, validación o prueba pueden estar divididos en varios archivos, los URIs se proporcionan en formato comodín.
Consulta más información sobre cómo descargar objetos con los ejemplos de código de Cloud Storage.
Si AIP_DATA_FORMAT
es bigquery
, los valores de URI de datos hacen referencia a URIs de BigQuery, como bq://project.dataset.table
.
Más información sobre la paginación de datos de BigQuery
Formato del conjunto de datos
En las siguientes secciones se explica cómo da formato Vertex AI a los datos cuando se pasa un conjunto de datos a la aplicación de entrenamiento.
Conjuntos de datos de imágenes
Los conjuntos de datos de imágenes se transfieren a tu aplicación de entrenamiento en formato JSON Lines. Selecciona la pestaña correspondiente al objetivo de tu conjunto de datos para obtener más información sobre cómo formatea Vertex AI tu conjunto de datos.
Clasificación con una sola etiqueta
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de clasificación de imágenes de una sola etiqueta. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotation": { "displayName": "LABEL", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
Notas de campo:
imageGcsUri
: el URI de Cloud Storage de esta imagen.annotationResourceLabels
: contiene cualquier número de pares de cadenas clave-valor. Vertex AI usa este campo para especificar el conjunto de anotaciones.dataItemResourceLabels
: contiene cualquier número de pares de cadenas clave-valor. Especifica el uso de aprendizaje automático del elemento de datos, como entrenamiento, prueba o validación.
Ejemplo de JSON Lines
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
Clasificación de varias etiquetas
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de clasificación de imágenes multietiqueta. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "imageGcsUri": "gs://bucket/filename.ext", "classificationAnnotations": [ { "displayName": "LABEL1", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "flower_type" } }, { "displayName": "LABEL2", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name":"displayName", "label_type": "image_shot_type" } } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training/test/validation" } }
Notas de campo:
imageGcsUri
: el URI de Cloud Storage de esta imagen.annotationResourceLabels
: contiene cualquier número de pares de cadenas clave-valor. Vertex AI usa este campo para especificar el conjunto de anotaciones.dataItemResourceLabels
: contiene cualquier número de pares de cadenas clave-valor. Especifica el uso de aprendizaje automático del elemento de datos, como entrenamiento, prueba o validación.
Ejemplo de JSON Lines
{"imageGcsUri": "gs://bucket/filename1.jpeg", "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.bmp", "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename5.tiff", "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
Detección de objetos
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de detección de objetos. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "imageGcsUri": "gs://bucket/filename.ext", "boundingBoxAnnotations": [ { "displayName": "OBJECT1_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX", "annotationResourceLabels": { "aiplatform.googleapis.com/annotation_set_name": "displayName", "env": "prod" } }, { "displayName": "OBJECT2_LABEL", "xMin": "X_MIN", "yMin": "Y_MIN", "xMax": "X_MAX", "yMax": "Y_MAX" } ], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "test/train/validation" } }
Notas de campo:
imageGcsUri
: el URI de Cloud Storage de esta imagen.annotationResourceLabels
: contiene cualquier número de pares de cadenas clave-valor. Vertex AI usa este campo para especificar el conjunto de anotaciones.dataItemResourceLabels
: contiene cualquier número de pares de cadenas clave-valor. Especifica el uso de aprendizaje automático del elemento de datos, como entrenamiento, prueba o validación.
Ejemplo de JSON Lines
{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} {"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}} ...
Conjuntos de datos tabulares
Vertex AI envía datos tabulares a tu aplicación de entrenamiento en formato CSV o como URI a una tabla o vista de BigQuery. Para obtener más información sobre el formato y los requisitos de la fuente de datos, consulta el artículo Preparar la fuente de importación. Consulta el conjunto de datos en la consola Google Cloud para obtener más información sobre el esquema del conjunto de datos.
Conjuntos de datos de texto
Los conjuntos de datos de texto se envían a tu aplicación de entrenamiento en formato JSON Lines. Selecciona la pestaña correspondiente al objetivo de tu conjunto de datos para obtener más información sobre cómo formatea Vertex AI tu conjunto de datos.
Clasificación con una sola etiqueta
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de clasificación de texto de una sola etiqueta. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "classificationAnnotation": { "displayName": "label" }, "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "classificationAnnotation": { "displayName": "label2" }, "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
Clasificación de varias etiquetas
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de clasificación de texto multietiqueta. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "classificationAnnotations": [{ "displayName": "label1" },{ "displayName": "label2" }], "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "classificationAnnotations": [{ "displayName": "label2" },{ "displayName": "label3" }], "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
Extracción de entidades
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de extracción de entidades. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml.
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "textSegmentAnnotations": [ { "startOffset":number, "endOffset":number, "displayName": "label" }, ... ], "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "textSegmentAnnotations": [ { "startOffset":number, "endOffset":number, "displayName": "label" }, ... ], "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
Análisis de sentimiento
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de análisis de sentimiento. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "sentimentAnnotation": { "sentiment": number, "sentimentMax": number }, "textContent": "inline_text", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } } { "sentimentAnnotation": { "sentiment": number, "sentimentMax": number }, "textGcsUri": "gcs_uri_to_file", "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "training|test|validation" } }
Conjuntos de datos de vídeo
Los conjuntos de datos de vídeo se transfieren a tu aplicación de entrenamiento en formato JSON Lines. Selecciona la pestaña correspondiente al objetivo de tu conjunto de datos para obtener más información sobre cómo formatea Vertex AI tu conjunto de datos.
Reconocimiento de acciones
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de reconocimiento de acciones. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "videoGcsUri': "gs://bucket/filename.ext", "timeSegments": [{ "startTime": "start_time_of_fully_annotated_segment", "endTime": "end_time_of_segment"}], "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "ml_use": "train|test" } }
Nota: Los segmentos de tiempo se usan para calcular las marcas de tiempo de las acciones. startTime
y endTime
de timeSegmentAnnotations
pueden ser iguales y corresponden al fotograma clave de la acción.
Ejemplo de JSON Lines
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"ml_use": "test"}} ...
Clasificación
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de clasificación. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "videoGcsUri": "gs://bucket/filename.ext", "timeSegmentAnnotations": [{ "displayName": "LABEL", "startTime": "start_time_of_segment", "endTime": "end_time_of_segment" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
Ejemplo de JSON Lines: clasificación de vídeo
{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...
Monitorización de objetos
Vertex AI usa el siguiente esquema de acceso público al exportar un conjunto de datos de seguimiento de objetos. Este esquema determina el formato de los archivos de exportación de datos. La estructura del esquema sigue el esquema de OpenAPI.
gs://google-cloud-aiplatform/schema/dataset/ioformat/object_tracking_io_format_1.0.0.yaml
Cada elemento de datos de tu conjunto de datos exportado usa el siguiente formato. En este ejemplo se incluyen saltos de línea para facilitar la lectura.
{ "videoGcsUri": "gs://bucket/filename.ext", "TemporalBoundingBoxAnnotations": [{ "displayName": "LABEL", "xMin": "leftmost_coordinate_of_the_bounding box", "xMax": "rightmost_coordinate_of_the_bounding box", "yMin": "topmost_coordinate_of_the_bounding box", "yMax": "bottommost_coordinate_of_the_bounding box", "timeOffset": "timeframe_object-detected" "instanceId": "instance_of_object "annotationResourceLabels": "resource_labels" }], "dataItemResourceLabels": { "aiplatform.googleapis.com/ml_use": "train|test" } }
Ejemplo de JSON Lines
{'videoGcsUri': 'gs://demo-data/video1.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '4.000000s', 'xMin': '0.668912', 'yMin': '0.560642', 'xMax': '1.000000', 'yMax': '1.000000'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}} {'videoGcsUri': 'gs://demo-data/video2.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '71.000000s', 'xMin': '0.679056', 'yMin': '0.070957', 'xMax': '0.801716', 'yMax': '0.290358'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}} ...
Siguientes pasos
- Consulta cómo usar un conjunto de datos gestionado en un entrenamiento personalizado creando un flujo de procesamiento de entrenamiento.