Exportar metadados e anotações em um conjunto de dados

A Vertex AI permite exportar os conjuntos de metadados e anotações de um recurso Dataset. Essa funcionalidade pode ser útil quando você quer manter um registro de uma coleção específica de alterações, adições ou exclusões de anotações.

Quando você exporta um Dataset, a Vertex AI cria um ou mais arquivos de Linhas JSON que contêm os metadados e as anotações de Dataset e salva esses arquivos de Linhas JSON em um diretório do Cloud Storage de sua escolha.

É possível exportar recursos de imagem, texto e vídeo Dataset. Não é possível exportar recursos tabulares Dataset.

Exportar um Dataset não cria cópias adicionais dos dados de imagem, texto ou vídeo em que seu Dataset é baseado. Os arquivos de linhas JSON criados pelos processos de exportação incluem os URIs originais do Cloud Storage para seus dados que você especificou ao importar esses dados para Dataset.

Exporte um Dataset usando o Console do Google Cloud ou a API

É possível usar o Console do Google Cloud ou a API Vertex AI para exportar um Dataset. Siga as etapas na guia correspondente:

Console

  1. No Console do Google Cloud, na seção da Vertex AI, acesse a página Conjuntos de dados.

    Acessar a página "Conjuntos de dados"

  2. Na lista suspensa Região, selecione o local onde a Dataset é armazenada.

  3. Encontre a linha do Dataset. É possível exportar metadados e anotações para todos os conjuntos de anotações ou para um conjunto específico:

    • Se você quiser exportar metadados e anotações para todos os conjuntos de anotações de Dataset, clique em Ver mais e e clique em Exportar conjunto de dados.

      Isso instrui a Vertex AI a criar um conjunto de arquivos JSON Lines para cada conjunto de anotações.

    • Se você quiser exportar metadados e anotações para um conjunto de anotações específico, faça o seguinte:

      1. Clique em Expandir nó para exibir linhas para cada um dos conjuntos de anotação de Dataset.

      2. Na linha do conjunto de anotações que você quer exportar, clique em Visualizar mais e, em seguida, em Exportar conjunto de anotações.

      Isso instrui a Vertex AI a criar um conjunto de arquivos de Linhas JSON para o conjunto de anotações especificado.

  4. Na caixa de diálogo Exportar dados, insira um diretório do Cloud Storage em que a Vertex AI salvará os arquivos de linhas JSON exportados. Clique em Exportar.

REST

Ver o ID de Dataset

Para exportar um Dataset, você precisa saber o código numérico de Dataset. Se você sabe o nome de exibição do Dataset, mas não o código, expanda a seção a seguir para saber como conseguir o código usando a API:

Consiga o ID de Dataset a partir do nome de exibição

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION: o local onde o Dataset é armazenado. Por exemplo, us-central1.

  • PROJECT_ID: o ID do projeto.

  • DATASET_DISPLAY_NAME: o nome de exibição do Dataset.

Método HTTP e URL:

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

Para enviar a solicitação, escolha uma destas opções:

curl

execute o seguinte 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

execute o seguinte 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

A resposta de exemplo a seguir foi truncada com ... para enfatizar onde você pode encontrar o ID de Dataset: é o número que assume o lugar de DATASET_ID.

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

Como alternativa, é possível conseguir o ID de Dataset no Console do Google Cloud: acesse a página Conjuntos de dados da Vertex AI e encontre o número na coluna ID.

Acessar a página "Conjuntos de dados"

Exportar um ou mais conjuntos de anotações

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • LOCATION: o local onde o Dataset é armazenado. Por exemplo, us-central1.

  • PROJECT_ID: o ID do projeto.

  • DATASET_ID: o ID numérico de Dataset.

  • EXPORT_DIRECTORY: URI do Cloud Storage (que começa com gs://) de um diretório em que você quer que a Vertex AI salve os arquivos de linhas JSON exportados. Ele precisa estar em um bucket do Cloud Storage a que você tem acesso, mas o diretório ainda não precisa existir.

  • FILTER: uma string de filtro que determina quais conjuntos de anotações são exportados.

    • Se quiser exportar metadados e anotações para todos os conjuntos de anotações de Dataset, substituir FILTER por uma string vazia ou omitir o campo annotationsFilter do corpo da solicitação totalmente. Isso instrui a Vertex AI a criar um conjunto de arquivos JSON Lines para cada conjunto de anotações.

    • Se você quiser exportar metadados e anotações para um conjunto de anotações específico, substitua FILTER pelo seguinte:

      labels.aiplatform.googleapis.com/annotation_set_name=ANNOTATION_SET_ID
      

      Isso faz com que a Vertex AI crie um conjunto de arquivos de linhas JSON para o conjunto de anotações com o ID numérico ANNOTATION_SET_ID.

      Para encontrar o ID numérico do conjunto de anotações que você quer especificar, veja o conjunto de anotações no Console do Google Cloud e procure o valor após annotationSetId no URL.

Método HTTP e URL:

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

Corpo JSON da solicitação:

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

Para enviar a solicitação, escolha uma destas opções:

curl

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

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

Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:

$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

Você receberá uma resposta JSON semelhante a esta:

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

Algumas solicitações iniciam operações de longa duração que exigem tempo para serem concluídas. Essas solicitações retornam um nome de operação, que pode ser usado para ver o status da operação ou cancelá-la. A Vertex AI oferece métodos auxiliares para realizar chamadas em operações de longa duração. Para mais informações, consulte Como trabalhar com operações de longa duração.

Explicação sobre os arquivos exportados

No diretório de exportação especificado na seção anterior, a Vertex AI cria um novo diretório rotulado com o nome de exibição de Dataset e um carimbo de data/hora. Por exemplo, export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z. Nesse diretório, você pode encontrar um subdiretório para cada conjunto de anotações exportado.

Para cada conjunto de anotações, é possível encontrar um ou mais arquivos JSON Lines. Cada linha de cada arquivo JSON Lines representa um item de dados do conjunto de anotações. Cada item de dados pode conter metadados e anotações que você especificou ao importar os dados para a Vertex AI, além dos metadados e anotações adicionados depois da importação dos dados. Por exemplo, se você solicitou rótulos de dados para Dataset ou se tiver adicionado rótulos ou anotações manualmente ao Dataset no Console do Google Cloud, essas informações estão incluídas nos arquivos exportados.

Se você exportar vários conjuntos de anotações, os mesmos itens de dados poderão aparecer em vários arquivos de linhas JSON. Por exemplo, se você exportar uma imagem Dataset com vários conjuntos de anotações, um arquivo de linhas JSON poderá conter um item de dados com uma anotação de classificação de rótulo único, outro arquivo de linhas JSON para um conjunto de anotações diferente pode conter o mesmo item de dados, mas com uma anotação de detecção de objetos.

O formato dos arquivos exportados corresponde ao formato dos arquivos de importação de Linhas JSON que pode ser usado para importar dados para a Vertex AI. Esse formato depende do tipo de dados (imagem, tabular, texto ou vídeo) e do objetivo (como rastreamento de objetos, extração de entidade ou classificação). Por exemplo, se você exportar um conjunto de anotações para classificação de imagens de rótulo único, cada linha de cada arquivo de Linhas JSON será formatada de acordo com o arquivo de esquema gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml, conforme descrito em Como preparar dados de imagem.

Para saber mais sobre os diferentes formatos de linhas JSON para diferentes tipos de conjuntos de anotações, consulte os seguintes guias:

A seguir