Esportazione di metadati e annotazioni da un set di dati

Vertex AI ti consente di esportare i metadati e i set di annotazioni da una risorsa Dataset. Questa funzionalità può essere utile se vuoi mantenere un registro di una raccolta specifica di modifiche, aggiunte o eliminazioni di annotazioni.

Quando esporti un Dataset, Vertex AI crea uno o più file JSON Lines che contengono i metadati e le annotazioni del Dataset e salva questi file JSON Lines in una directory Cloud Storage a tua scelta.

Puoi esportare risorse di immagini, testo e video Dataset. Non puoi esportare risorse tabellari Dataset.

L'esportazione di un Dataset non crea copie aggiuntive dei dati di immagini, testo o video su cui si basa il Dataset. I file JSON Lines creati dai processi di esportazione includono gli URI Cloud Storage originali per i tuoi dati specificati quando li hai importati in Dataset.

Esporta un Dataset utilizzando la console Google Cloud o l'API

Puoi utilizzare la console Google Cloud o l'API Vertex AI per esportare un Dataset. Segui i passaggi nella scheda corrispondente:

Console

  1. Nella console Google Cloud , nella sezione Vertex AI, vai alla pagina Set di dati.

    Vai alla pagina Set di dati

  2. Nell'elenco a discesa Regione, seleziona la posizione in cui è archiviato Dataset.

  3. Trova la riga di Dataset. Puoi esportare metadati e annotazioni per tutti i set di annotazioni o per un set di annotazioni specifico:

    • Se vuoi esportare i metadati e le annotazioni per tutti i Datasetset di annotazioni, fai clic su Mostra altro e poi su Esporta set di dati.

      In questo modo, Vertex AI crea un insieme di file JSON Lines per ogni set di annotazioni.

    • Se vuoi esportare metadati e annotazioni per un set di annotazioni specifico:

      1. Fai clic su Espandi nodo per mostrare le righe per ciascuno dei set di annotazioni di Dataset.

      2. Nella riga del set di annotazioni che vuoi esportare, fai clic su Visualizza altro e poi su Esporta set di annotazioni.

      In questo modo, Vertex AI crea un insieme di file JSON Lines per il set di annotazioni che hai specificato.

  4. Nella finestra di dialogo Esporta dati, inserisci una directory Cloud Storage in cui vuoi che Vertex AI salvi i file JSON Lines esportati. Fai clic su Esporta.

REST

Recuperare l'ID di Dataset

Per esportare un Dataset, devi conoscere il suo ID numerico.Dataset Se conosci il nome visualizzato diDataset, ma non l'ID, espandi la sezione seguente per scoprire come ottenere l'ID utilizzando l'API:

Recuperare l'ID di un set di dati dal nome visualizzato

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: la posizione in cui è archiviato il Dataset. Ad esempio: us-central1.

  • PROJECT_ID: il tuo ID progetto

  • DATASET_DISPLAY_NAME: Il nome visualizzato di Dataset.

Metodo HTTP e URL:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Esegui questo 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

Esegui questo 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

La seguente risposta di esempio è stata troncata con ... per evidenziare dove puoi trovare l'ID del tuo Dataset: è il numero che sostituisce DATASET_ID.

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

In alternativa, puoi ottenere l'ID di Dataset Google Cloud dalla console: Vai alla pagina Set di dati di Vertex AI e trova il numero nella colonna ID.

Vai alla pagina Set di dati

Esportare uno o più set di annotazioni

Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:

  • LOCATION: la posizione in cui è archiviato il Dataset. Ad esempio: us-central1.

  • PROJECT_ID: il tuo ID progetto

  • DATASET_ID: l'ID numerico di Dataset.

  • EXPORT_DIRECTORY: URI Cloud Storage (che inizia con gs://) di una directory in cui vuoi che Vertex AI salvi i file JSON Lines esportati. Deve trovarsi in un bucket Cloud Storage a cui hai accesso, ma la directory non deve ancora esistere.

  • FILTER: una stringa di filtro che determina quali set di annotazioni vengono esportati.

    • Se vuoi esportare metadati e annotazioni per tutti i Dataset's annotation sets, sostituisci FILTER con una stringa vuota (o ometti completamente il campo annotationsFilter dal corpo della richiesta). In questo modo, Vertex AI crea un insieme di file JSON Lines per ogni set di annotazioni.

    • Se vuoi esportare metadati e annotazioni per un set di annotazioni specifico, sostituisci FILTER con quanto segue:

      labels.aiplatform.googleapis.com/annotation_set_name=ANNOTATION_SET_ID
      

      In questo modo, Vertex AI crea un insieme di file JSON Lines per il set di annotazioni con l'ID numerico ANNOTATION_SET_ID.

      Per trovare l'ID numerico del set di annotazioni che vuoi specificare, visualizza il set di annotazioni nella console Google Cloud e cerca il valore che segue annotationSetId nell'URL.

Metodo HTTP e URL:

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

Corpo JSON della richiesta:

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

Per inviare la richiesta, scegli una di queste opzioni:

curl

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

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

Salva il corpo della richiesta in un file denominato request.json, quindi esegui il comando seguente:

$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

Dovresti ricevere una risposta JSON simile alla seguente:

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

Alcune richieste avviano operazioni a lunga esecuzione che richiedono tempo per essere completate. Queste richieste restituiscono un nome dell'operazione, che puoi utilizzare per visualizzare lo stato o annullare l'operazione. Vertex AI fornisce metodi helper per effettuare chiamate alle operazioni di lunga durata. Per ulteriori informazioni, consulta Utilizzo di operazioni a lunga esecuzione.

Spiegazione dei file esportati

All'interno della directory di esportazione specificata nella sezione precedente, Vertex AI crea una nuova directory etichettata con il nome visualizzato di Dataset e un timestamp, ad esempio export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z. All'interno di questa directory, puoi trovare una sottodirectory per ogni set di annotazioni che hai esportato.

Per ogni set di annotazioni, puoi trovare uno o più file JSON Lines. Ogni riga di ogni file JSON Lines rappresenta un elemento di dati del set di annotazioni. Ogni elemento di dati può contenere metadati e annotazioni specificati durante l'importazione dei dati in Vertex AI, nonché metadati e annotazioni aggiunti dopo l'importazione dei dati. Ad esempio, se hai richiesto l'etichettatura dei dati per il tuo Dataset o se hai aggiunto manualmente etichette o annotazioni al Dataset nella consoleGoogle Cloud , queste informazioni vengono incluse nei file esportati.

Se esporti più set di annotazioni, gli stessi elementi di dati potrebbero essere visualizzati in più file JSON Lines. Ad esempio, se esporti un'immagine Dataset con più set di annotazioni, un file JSON Lines potrebbe contenere un elemento di dati con un'annotazione di classificazione a singola etichetta; un altro file JSON Lines per un set di annotazioni diverso potrebbe contenere lo stesso elemento di dati, ma con un'annotazione di rilevamento degli oggetti.

Il formato dei file esportati corrisponde a quello dei file di importazione JSON Lines che puoi utilizzare per importare dati in Vertex AI. Questo formato dipende dal tipo di dati (immagine, tabellare, testo, video) e dall'obiettivo (ad esempio rilevamento di oggetti, estrazione di entità o classificazione). Ad esempio, se esporti un set di annotazioni per la classificazione di immagini con una sola etichetta, ogni riga di ogni file JSON Lines viene formattata in base al file schema gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml, come descritto in Preparazione dei dati delle immagini.

Per scoprire di più sui diversi formati delle righe JSON per i vari tipi di set di annotazioni, consulta le seguenti guide:

Passaggi successivi