Exporte metadados e anotações de um conjunto de dados

O Vertex AI permite exportar os metadados e os conjuntos de anotações de um recurso Dataset. Esta capacidade pode ser útil se quiser manter um registo de uma coleção específica de alterações, adições ou eliminações de anotações.

Quando exporta um Dataset, o Vertex AI cria um ou mais ficheiros JSON Lines que contêm os metadados e as anotações do Dataset e guarda estes ficheiros JSON Lines num diretório do Cloud Storage à sua escolha.

Pode exportar recursos de Dataset imagens. Não pode exportar recursos tabulares Dataset.

A exportação de um Dataset não cria cópias adicionais dos dados de imagem nos quais o Dataset se baseia. Os ficheiros JSON Lines criados pelos processos de exportação incluem os URIs do Google Cloud Storage originais dos dados que especificou quando importou esses dados para o Dataset.

Exporte um Dataset através da Google Cloud consola ou da API

Pode usar a Google Cloud consola ou a API Vertex AI para exportar um Dataset. Siga os passos no separador correspondente:

Consola

  1. Na Google Cloud consola, na secção Vertex AI, aceda à página Conjuntos de dados.

    Aceda à página Conjuntos de dados

  2. Na lista pendente Região, selecione a localização onde o Dataset está armazenado.

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

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

      Isto indica à Vertex AI para criar um conjunto de ficheiros JSON Lines para cada conjunto de anotações.

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

      1. Clique em Expandir nó para mostrar linhas para cada um dos conjuntos de anotações de Dataset.

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

      Isto indica ao Vertex AI para criar um conjunto de ficheiros JSON Lines para o conjunto de anotações que especificou.

  4. Na caixa de diálogo Exportar dados, introduza um diretório do Cloud Storage onde quer que o Vertex AI guarde os ficheiros JSON Lines exportados. Clique em Exportar.

REST

Obtenha o ID de Dataset

Para exportar um Dataset, tem de saber o ID numérico do Dataset. Se souber o nome a apresentar doDataset, mas não o ID, expanda a secção seguinte para saber como obter o ID através da API:

Obtenha o ID de um conjunto de dados a partir do respetivo nome a apresentar

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION: a localização onde o Dataset está armazenado. Por exemplo, us-central1.

  • PROJECT_ID: o seu ID do projeto.

  • DATASET_DISPLAY_NAME: o nome a apresentar do Dataset.

Método HTTP e URL:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Execute o seguinte comando:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://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 "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets?filter=displayName=DATASET_DISPLAY_NAME" | Select-Object -Expand Content

A resposta de exemplo seguinte foi truncada com ... para realçar onde pode encontrar o ID do Dataset: é o número que substitui DATASET_ID.

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

Em alternativa, pode obter o ID do Dataset Google Cloud na consola: Aceda à página Conjuntos de dados do Vertex AI e encontre o número na coluna ID.

Aceda à página Conjuntos de dados

Exporte um ou mais conjuntos de anotações

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • LOCATION: a localização onde o Dataset está armazenado. Por exemplo, us-central1.

  • PROJECT_ID: o seu ID do projeto.

  • DATASET_ID: o ID numérico do Dataset.

  • EXPORT_DIRECTORY: URI do Cloud Storage (começando por gs://) de um diretório onde quer que o Vertex AI guarde os ficheiros JSON Lines exportados. Tem de estar num contentor do Cloud Storage ao qual tem acesso, mas o diretório não tem de existir ainda.

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

    • Se quiser exportar metadados e anotações para todos os conjuntos de anotações de Dataset, substitua FILTER por uma string vazia (ou omita completamente o campo annotationsFilter do corpo do pedido). Isto indica à Vertex AI que crie um conjunto de ficheiros JSON Lines para cada conjunto de anotações.

    • Se 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
      

      Isto indica à Vertex AI para criar um conjunto de ficheiros JSON Lines 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 quer especificar, veja o conjunto de anotações na Google Cloud consola e procure o valor a seguir a annotationSetId no URL.

Método HTTP e URL:

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

Corpo JSON do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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 \
"https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export"

PowerShell

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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 "https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID:export" | Select-Object -Expand Content

Deve receber uma resposta JSON semelhante à seguinte:

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

Alguns pedidos iniciam operações de longa duração que requerem tempo para serem concluídas. Estes pedidos devolvem um nome da operação, que pode usar para ver o estado da operação ou cancelar a operação. A Vertex AI fornece métodos auxiliares para fazer chamadas contra operações de longa duração. Para mais informações, consulte o artigo Trabalhar com operações de longa duração.

Explicação dos ficheiros exportados

No diretório de exportação especificado na secção anterior, o Vertex AI cria um novo diretório etiquetado com o nome a apresentar do Dataset e uma data/hora; por exemplo, export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z. Neste diretório, pode encontrar um subdiretório para cada conjunto de anotações que exportou.

Para cada conjunto de anotações, pode encontrar um ou mais ficheiros JSON Lines. Cada linha de cada ficheiro JSON Lines representa um item de dados do conjunto de anotações. Cada item de dados pode conter metadados e anotações que especificou quando importou os dados para o Vertex AI, bem como metadados e anotações que adicionou após a importação dos dados. Por exemplo, se pediu a etiquetagem de dados para o seu Dataset ou se adicionou manualmente etiquetas ou anotações ao Dataset na consolaGoogle Cloud , estas informações são incluídas nos ficheiros exportados.

Se exportar vários conjuntos de anotações, os mesmos itens de dados podem aparecer em vários ficheiros JSON Lines. Por exemplo, se exportar uma imagem Dataset com vários conjuntos de anotações, um ficheiro JSON Lines pode conter um item de dados com uma anotação de classificação de etiqueta única. Outro ficheiro JSON Lines para um conjunto de anotações diferente pode conter o mesmo item de dados, mas com uma anotação de deteção de objetos.

O formato dos ficheiros exportados corresponde ao formato dos ficheiros de importação JSON Lines que pode usar para importar dados para o Vertex AI. Este formato depende do tipo de dados (imagem ou tabular) e do objetivo (como acompanhamento de objetos, extração de entidades ou classificação). Por exemplo, se exportar um conjunto de anotações para a classificação de imagens com uma única etiqueta, cada linha de cada ficheiro JSON Lines é formatada de acordo com o ficheiro de esquema, conforme descrito no artigo Preparar dados de imagens.gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml

O que se segue?