Usar conjuntos de datos administrados

En esta página, se muestra cómo usar los conjuntos de datos administrados de Vertex AI para entrenar tus modelos personalizados. Los conjuntos de datos administrados ofrecen los siguientes beneficios:

  • Administra tus conjuntos de datos en una ubicación central.
  • Crea etiquetas y varios conjuntos de anotaciones con facilidad.
  • Crea tareas para el etiquetado manual mediante el etiquetado de datos integrado.
  • Realiza un seguimiento del linaje a los modelos para la administración y el desarrollo iterativo.
  • Compara el rendimiento del modelo mediante el entrenamiento de AutoML y los modelos personalizados con los mismos conjuntos de datos.
  • Genera estadísticas y visualizaciones de datos.
  • Divide los datos en conjuntos de entrenamiento, prueba y validación de forma automática.

Antes de comenzar

Antes de que puedas usar un conjunto de datos administrado en tu aplicación de entrenamiento, debes crear tu conjunto de datos. Debes crear el conjunto de datos y la canalización de entrenamiento que usas para entrenar en la misma región. Debes usar una región en la que los recursos de Dataset estén disponibles.

Accede a un conjunto de datos desde tu aplicación de entrenamiento

Cuando creas una canalización de entrenamiento personalizada, puedes especificar que tu aplicación de entrenamiento use un conjunto de datos de Vertex AI.

En el entorno de ejecución, Vertex AI pasa metadatos sobre tu conjunto de datos a tu aplicación de entrenamiento mediante la configuración de las siguientes variables de entorno en tu contenedor de entrenamiento.

  • AIP_DATA_FORMAT: El formato en el que se exporta tu conjunto de datos Los valores posibles son jsonl, csv o bigquery.
  • 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 para tus datos de validación o el URI de Cloud Storage de tu archivo de datos de validación.
  • AIP_TEST_DATA_URI: el URI de BigQuery para 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 del URI de datos se refieren a los URI de Cloud Storage, como gs://bucket_name/path/training-*. Para mantener el tamaño de cada archivo de datos relativamente pequeño, Vertex AI divide el conjunto de datos en varios archivos. Debido a que tus datos de entrenamiento, validación o prueba se pueden dividir en varios archivos, los URI se proporcionan en formato comodín.

Obtén más información sobre cómo descargar objetos con las muestras de código de Cloud Storage.

Si tu AIP_DATA_FORMAT es bigquery, los valores del URI de datos hacen referencia a los URI de BigQuery, como bq://project.dataset.table.

Obtén más información sobre cómo navegar por datos de BigQuery.

Formato del conjunto de datos

Usa las secciones siguientes para obtener más información sobre cómo Vertex AI da formato a tus datos cuando pasas un conjunto de datos a tu aplicación de entrenamiento.

Conjuntos de datos de imágenes

Los conjuntos de datos de imágenes se pasan a la aplicación de entrenamiento en formato de líneas JSON. Selecciona la pestaña del objetivo de tu conjunto de datos para obtener más información sobre cómo Vertex AI da formato a tu conjunto de datos.

Clasificación de una sola etiqueta

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de clasificación de imágenes de una sola etiqueta. Este esquema dicta 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_classification_single_label_io_format_1.0.0.yaml

Cada elemento de datos en 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 campos:

  • imageGcsUri: El URI de Cloud Storage de esta imagen.
  • annotationResourceLabels: contiene cualquier cantidad de pares de string de clave-valor. Vertex AI usa este campo para especificar el conjunto de anotaciones.
  • dataItemResourceLabels: Contiene cualquier cantidad de pares de string de clave-valor. Especifica el uso del aprendizaje automático del elemento de datos, como el entrenamiento, la prueba o la validación.

Líneas JSON de ejemplo


{"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 con varias etiquetas

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de clasificación de imágenes de múltiples etiquetas. Este esquema dicta 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_classification_multi_label_io_format_1.0.0.yaml

Cada elemento de datos en 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 campos:

  • imageGcsUri: El URI de Cloud Storage de esta imagen.
  • annotationResourceLabels: contiene cualquier cantidad de pares de string de clave-valor. Vertex AI usa este campo para especificar el conjunto de anotaciones.
  • dataItemResourceLabels: Contiene cualquier cantidad de pares de string de clave-valor. Especifica el uso del aprendizaje automático del elemento de datos, como el entrenamiento, la prueba o la validación.

Líneas JSON de ejemplo


{"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"}}
...

Object Detection

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de detección de objetos. Este esquema dicta 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 en 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 campos:

  • imageGcsUri: El URI de Cloud Storage de esta imagen.
  • annotationResourceLabels: contiene cualquier cantidad de pares de string de clave-valor. Vertex AI usa este campo para especificar el conjunto de anotaciones.
  • dataItemResourceLabels: Contiene cualquier cantidad de pares de string de clave-valor. Especifica el uso del aprendizaje automático del elemento de datos, como el entrenamiento, la prueba o la validación.

Líneas JSON de ejemplo


{"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 pasa datos tabulares a tu aplicación de entrenamiento en formato CSV o como un URI para una tabla o vista de BigQuery. Para obtener más información sobre el formato y los requisitos de la fuente de datos, consulta Prepara la fuente de importación. Consulta el conjunto de datos en la consola de 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 pasan a la aplicación de entrenamiento en formato de líneas JSON. Selecciona la pestaña del objetivo de tu conjunto de datos para obtener más información sobre cómo Vertex AI da formato a tu conjunto de datos.

Clasificación de una sola etiqueta

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de clasificación de texto de una sola etiqueta. Este esquema dicta 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_classification_single_label_io_format_1.0.0.yaml

Cada elemento de datos en 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 con varias etiquetas

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de clasificación de texto con varias etiquetas. Este esquema dicta 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_classification_multi_label_io_format_1.0.0.yaml

Cada elemento de datos en 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 cuando exporta un conjunto de datos de extracción de entidades. Este esquema dicta 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 en 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 opiniones

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de análisis de opiniones. Este esquema dicta 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 en 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 video

Los conjuntos de datos de video se pasan a la aplicación de entrenamiento en formato de líneas JSON. Selecciona la pestaña del objetivo de tu conjunto de datos para obtener más información sobre cómo Vertex AI da formato a tu conjunto de datos.

Reconocimiento de acciones

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de reconocimiento de acciones. Este esquema dicta 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 en 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: Aquí, los segmentos de tiempo se usan para calcular las marcas de tiempo de las acciones. El startTime y el endTime de timeSegmentAnnotations pueden ser iguales, y corresponde al marco de clave de la acción.

Líneas JSON de ejemplo


{"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 cuando exporta un conjunto de datos de clasificación. Este esquema dicta 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 en 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 líneas JSON - Clasificación de videos:


{"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"}}
...

Seguimiento de objetos

Vertex AI usa el siguiente esquema de acceso público cuando exporta un conjunto de datos de seguimiento de objetos. Este esquema dicta 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 en 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"
	}
}

Líneas JSON de ejemplo


{'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"}}
...

¿Qué sigue?