Exporta metadatos y anotaciones de un conjunto de datos

Vertex AI te permite exportar los conjuntos de anotaciones y metadatos desde un recurso Dataset. Esta capacidad puede ser útil si deseas mantener un registro de una colección específica de cambios, adiciones o eliminaciones de anotaciones.

Cuando exportas un Dataset, Vertex AI crea uno o más archivos de líneas JSON que contienen los metadatos y las anotaciones de tu Dataset, y guarda estos archivos de líneas de JSON en el directorio de Cloud Storage que elijas.

Puedes exportar recursos de Dataset de imagen, texto y video. No puedes exportar recursos de Dataset tabulares.

Cuando exportas Dataset, no se crean copias adicionales de los datos de imagen, texto o video en los que se basa tu Dataset. Los archivos de líneas JSONL que crean los procesos de exportación incluyen los URI originales de Cloud Storage para los datos que especificaste cuando importaste esos datos a Dataset.

Exportar un Dataset mediante la consola de Google Cloud o la API

Puedes usar la consola de Google Cloud o la API de Vertex AI para exportar un Dataset. Sigue los pasos en la pestaña correspondiente:

Console

  1. En la sección Vertex AI de la consola de Google Cloud, ve a la página Conjuntos de datos.

    Ir a la página Conjuntos de datos

  2. En la lista desplegable Región, selecciona la ubicación en la que se almacena el Dataset.

  3. Busca la fila del Dataset. Puedes exportar metadatos y anotaciones para todos los conjuntos de anotaciones o un conjunto de anotaciones específico:

    • Si quieres exportar metadatos y anotaciones para todos los conjuntos de anotaciones de Dataset, haz clic en Ver más y, luego, haz clic en Exportar conjunto de datos.

      Mediante esta acción, se le pide a Vertex AI crear un conjunto de archivos de líneas JSON para cada conjunto de anotaciones.

    • Si deseas exportar metadatos y anotaciones para un conjunto de anotaciones específico, haz lo siguiente:

      1. Haz clic en Expandir nodo para ver las filas de cada conjunto de anotaciones de Dataset.

      2. En la fila del conjunto de anotaciones que deseas exportar, haz clic en Ver más y, luego, en Exportar conjunto de anotaciones.

      Mediante esta acción, se le pide a Vertex AI crear un conjunto de archivos de líneas JSON para el conjunto de anotaciones que especifiques.

  4. En el cuadro de diálogo Exportar datos, ingresa un directorio de Cloud Storage en el que quieras que Vertex AI guarde los archivos de líneas JSONL exportados. Haz clic en Exportar.

REST

Obtén el ID del Dataset

Para exportar un Dataset, debes conocer el ID numérico de Dataset. Si conoces el nombre visible del Dataset, pero no su ID, expande la siguiente sección para saber cómo obtener el ID con la API:

Obtén el ID de Dataset a partir de su nombre visible.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Es la ubicación en la que se almacena Dataset. Por ejemplo, us-central1.

  • PROJECT_ID: El ID del proyecto.

  • DATASET_DISPLAY_NAME: es el nombre visible del Dataset.

Método HTTP y URL:

GET http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME

Para enviar tu solicitud, elige una de estas opciones:

curl

Ejecuta el siguiente comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME"

PowerShell

Ejecuta el siguiente comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME" | Select-Object -Expand Content

La siguiente respuesta de ejemplo se truncó con ... para destacar dónde puedes encontrar el ID de tu Dataset: es el número que toma el lugar de DATASET_ID.

{
  "datasets": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID",
      "displayName": "DATASET_DISPLAY_NAME",
      ...
    }
  ]
}

Como alternativa, puedes obtener el ID del Dataset desde la consola de Google Cloud: Ve a la página Conjuntos de datos de Vertex AI y encuentra el número en la columna ID.

Ir a la página Conjuntos de datos

Exportar uno o más conjuntos de anotaciones

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • LOCATION: Es la ubicación en la que se almacena Dataset. Por ejemplo, us-central1.

  • PROJECT_ID: El ID del proyecto.

  • DATASET_ID: es el ID numérico del Dataset.

  • EXPORT_DIRECTORY: es el URI de Cloud Storage (que comienza con gs://) de un directorio en el que quieres que Vertex AI guarde los archivos de líneas JSONL exportados. Debe estar en un bucket de Cloud Storage al que puedas acceder, aunque no hace falta que el directorio ya esté creado.

  • FILTER: es una string de filtro que determina qué conjuntos de anotaciones se exportan.

    • Si quieres exportar metadatos y anotaciones para todos los conjuntos de anotaciones del Dataset, reemplaza FILTER por una string vacía (u omite el campo annotationsFilter del cuerpo de la solicitud por completo). Mediante esta acción, se le pide a Vertex AI crear un conjunto de archivos de líneas JSON para cada conjunto de anotaciones.

    • Si deseas exportar metadatos y anotaciones para un conjunto de anotaciones específico, reemplaza FILTER por lo siguiente:

      labels.aiplatform.googleapis.com/annotation_set_name=ANNOTATION_SET_ID
      

      Mediante esta acción, se le pide a Vertex AI que cree un conjunto de archivos de líneas JSONL para el conjunto de anotaciones con el ID numérico ANNOTATION_SET_ID.

      Para encontrar el ID numérico del conjunto de anotaciones que deseas especificar, visualiza el conjunto de anotaciones en la consola de Google Cloud y busca el valor que le sigue a annotationSetId en la URL.

HTTP method and URL:

POST http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export

Cuerpo JSON de la solicitud:

{
  "exportConfig": {
    "gcsDestination": {
      "outputUriPrefix": "EXPORT_DIRECTORY"
    },
    "annotationsFilter": "FILTER"
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export"

PowerShell

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "http://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export" | Select-Object -Expand Content

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.aiplatform.v1.ExportDataOperationMetadata",
    "genericMetadata": {
      "createTime": "2021-02-17T00:54:58.827429Z",
      "updateTime": "2021-02-17T00:54:58.827429Z"
    },
    "gcsOutputDirectory": "EXPORT_DIRECTORY/export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z"
  }
}

Algunas solicitudes inician operaciones de larga duración que requieren tiempo para completarse. Estas solicitudes devuelven un nombre de operación que puedes usar para ver el estado de la operación o cancelarla. Vertex AI proporciona métodos auxiliares para hacer llamadas en operaciones de larga duración. Para obtener más información, consulta Trabaja con operaciones de larga duración.

Explicación de los archivos exportados

Dentro del directorio de exportación que especificaste en la sección anterior, Vertex AI crea un directorio nuevo etiquetado con el nombre visible y una marca de tiempo de Dataset, por ejemplo, export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z. Dentro de este directorio, puedes encontrar un subdirectorio para cada conjunto de anotaciones que exportaste.

Para cada conjunto de anotaciones, puedes encontrar uno o más archivos de líneas JSON. Cada fila de cada archivo de líneas JSON representa un elemento de datos del conjunto de anotaciones. Cada elemento de datos puede contener los metadatos y las anotaciones que especificaste cuando importaste los datos a Vertex AI, así como los metadatos y las anotaciones que agregaste después de importar los datos. Por ejemplo, si solicitaste el etiquetado de datos de tu Dataset o si agregaste etiquetas o anotaciones de forma manual a Dataset en la consola de Google Cloud, entonces esta información se incluye en los archivos exportados.

Si exportas varios conjuntos de anotaciones, los mismos elementos de datos pueden aparecer en varios archivos de líneas JSON. Por ejemplo, si exportas una imagen Dataset con varios conjuntos de anotaciones, un archivo de líneas JSONL puede contener un elemento de datos con una anotación de clasificación de una sola etiqueta. Otro archivo de líneas JSONL para un conjunto de anotaciones diferente podría contener el mismo elemento de datos, pero con una anotación de detección de objetos en su lugar.

El formato de los archivos exportados coincide con el formato de los archivos de importación de líneas JSONL que puedes usar para importar datos a Vertex AI. Este formato depende del tipo de datos (imagen, tabular, de texto, de video) y del objetivo (como el seguimiento de objetos, la extracción de entidades o la clasificación). Por ejemplo, si exportas un conjunto de anotaciones para la clasificación de imágenes con una sola etiqueta, a cada línea de cada archivo de líneas JSONL se le asigna el formato según el archivo de esquema gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml, como se describe en Prepara datos de imagen.

Consulta las siguientes guías a fin de obtener más información sobre los diferentes formatos de líneas JSON para diferentes tipos de conjuntos de anotaciones:

¿Qué sigue?