Exporter des métadonnées et des annotations à partir d'un ensemble de données

Vertex AI vous permet d'exporter les ensembles de métadonnées et d'annotations à partir d'une ressource Dataset. Cette fonctionnalité peut être utile si vous souhaitez conserver un enregistrement d'un ensemble spécifique de modifications, d'ajouts ou de suppressions d'annotations.

Lorsque vous exportez un Dataset, Vertex AI crée un ou plusieurs fichiers JSON Lines contenant les métadonnées et les annotations de votre Dataset, puis les enregistre dans le répertoire Cloud Storage de votre choix.

Vous pouvez exporter des ressources Dataset d'image, de texte et de vidéo. Vous ne pouvez pas exporter de ressources Dataset tabulaires.

L'exportation d'un fichier Dataset ne crée pas de copies supplémentaires des données d'image, de texte ou de vidéo sur lesquelles se base votre Dataset. Les fichiers JSON Lines créés par les processus d'exportation incluent les URI Cloud Storage d'origine des données que vous avez spécifiées lors de l'importation des données dans Dataset.

Exporter un Dataset à l'aide de la console Google Cloud ou de l'API

Vous pouvez exporter un Dataset à l'aide de Google Cloud Console ou de l'API Vertex AI. Suivez les étapes indiquées dans l'onglet correspondant :

Console

  1. Dans Google Cloud Console, dans la section Vertex AI, accédez à la page Ensembles de données.

    Accéder à la page Ensembles de données

  2. Dans la liste déroulante Région, sélectionnez l'emplacement où le Dataset est stocké.

  3. Recherchez la ligne du Dataset. Vous pouvez exporter les métadonnées et les annotations pour tous les ensembles d'annotations ou pour un ensemble d'annotations spécifique :

    • Si vous souhaitez exporter les métadonnées et les annotations de tous les ensembles d'annotations du Dataset, cliquez sur Afficher plus puis cliquez sur Exporter l'ensemble de données.

      Cela indique à Vertex AI de créer un ensemble de fichiers JSON Lines pour chaque ensemble d'annotations.

    • Si vous souhaitez exporter des métadonnées et des annotations pour un ensemble d'annotations spécifique, procédez comme suit :

      1. Cliquez sur Développer le nœud pour afficher les lignes de chacun des ensembles d'annotations du Dataset.

      2. Sur la ligne de l'ensemble d'annotations que vous souhaitez exporter, cliquez sur Afficher plus puis sur Exporter l'ensemble d'annotations.

      Cela indique à Vertex AI de créer un ensemble de fichiers JSON Lines pour l'ensemble d'annotations que vous avez spécifié.

  4. Dans la boîte de dialogue Exporter des données, saisissez un répertoire Cloud Storage dans lequel vous souhaitez que Vertex AI enregistre les fichiers JSON Lines exportés. Cliquez sur Exporter.

REST

Obtenir l'ID d'un Dataset

Pour exporter un Dataset, vous devez connaître l'ID numérique de ce Dataset. Si vous connaissez le nom à afficher du Dataset mais pas son ID, développez la section suivante pour savoir comment obtenir l'ID en utilisant l'API :

Obtenir l'ID d'un Dataset à partir de son nom à afficher

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION : emplacement de stockage de Dataset. Exemple :us-central1

  • PROJECT_ID : l'ID de votre projet.

  • DATASET_DISPLAY_NAME : nom à afficher de Dataset.

Méthode HTTP et URL :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Exécutez la commande suivante :

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

Exécutez la commande suivante :

$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

L'exemple de réponse suivant a été tronqué avec ... pour mettre l'accent sur l'emplacement de l'ID du Dataset : il s'agit du numéro qui remplace DATASET_ID.

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

Vous pouvez également obtenir l'ID du Dataset à partir de la console Google Cloud. Pour ce faire, accédez à la page Ensembles de données de Vertex AI et recherchez le numéro dans la colonne ID.

Accéder à la page Ensembles de données

Exporter un ou plusieurs ensembles d'annotations

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • LOCATION : emplacement de stockage de Dataset. Exemple :us-central1

  • PROJECT_ID : l'ID de votre projet.

  • DATASET_ID : ID numérique du Dataset.

  • EXPORT_DIRECTORY : URI Cloud Storage (commençant par gs://) du répertoire dans lequel vous souhaitez que l'IA Vertex enregistre les fichiers JSON Lines exportés. Il doit se trouver dans un bucket Cloud Storage auquel vous avez accès, mais le répertoire n'a pas besoin d'exister.

  • FILTER : chaîne de filtre qui détermine les ensembles d'annotations à exporter.

    • Si vous souhaitez exporter les métadonnées et les annotations pour tous les ensembles d'annotations du Dataset, remplacez FILTER par une chaîne vide (ou omettre le champ annotationsFilter du corps de la requête). Cela indique à Vertex AI de créer un ensemble de fichiers JSON Lines pour chaque ensemble d'annotations.

    • Si vous souhaitez exporter des métadonnées et des annotations pour un ensemble d'annotations spécifique, remplacez FILTER par l'élément suivant :

      labels.aiplatform.googleapis.com/annotation_set_name=ANNOTATION_SET_ID
      

      Cela indique à Vertex AI de créer un ensemble de fichiers JSON Lines pour l'ensemble d'annotations avec l'ID numérique ANNOTATION_SET_ID.

      Pour trouver l'ID numérique de l'ensemble d'annotations que vous souhaitez spécifier, affichez l'ensemble d'annotations dans la console Google Cloud et recherchez la valeur qui suit annotationSetId dans l'URL.

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, choisissez l'une des options suivantes :

curl

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

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

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$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

Vous devriez recevoir une réponse JSON de ce type :

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

Certaines requêtes démarrent des opérations de longue durée qui nécessitent du temps. Ces requêtes renvoient un nom d'opération, que vous pouvez utiliser pour afficher l'état de l'opération ou pour annuler l'opération. Vertex AI propose des méthodes d'assistance pour appeler les opérations de longue durée. Pour en savoir plus, consultez la section Travailler avec des opérations de longue durée.

Présentation des fichiers exportés

Dans le répertoire d'exportation que vous avez spécifié dans la section précédente, Vertex AI crée un nouveau répertoire avec le nom à afficher du Dataset et un horodatage, comme par exemple export-data-DATASET_DISPLAY_NAME-2021-02-17T00:54:58.734772Z. Ce répertoire contient un sous-répertoire pour chaque ensemble d'annotations que vous avez exporté.

Vous pouvez trouver un ou plusieurs fichiers JSON Lines pour chaque ensemble d'annotations. Chaque ligne de chaque fichier JSON Lines représente un élément de données de l'ensemble d'annotations. Chaque élément de données peut contenir des métadonnées et des annotations que vous avez spécifiées lors de l'importation des données dans Vertex AI, ainsi que des métadonnées et des annotations que vous avez ajoutées après l'importation des données. Par exemple, si vous avez demandé l'étiquetage de données pour votre Dataset ou si vous avez ajouté manuellement des étiquettes ou des annotations au Dataset dans la console Google Cloud, ces informations sont incluses dans les fichiers exportés.

Si vous exportez plusieurs ensembles d'annotations, les mêmes éléments de données peuvent apparaître dans plusieurs fichiers JSON Lines. Par exemple, si vous exportez une image Dataset avec plusieurs ensembles d'annotations, un fichier JSON Lines peut contenir un élément de données avec une annotation de classification à étiquette unique alors qu'un autre fichier JSON Lines d'un autre ensemble d'annotations peut contenir le même élément de données mais avec une annotation de détection d'objet.

Le format des fichiers exportés correspond au format des fichiers d'importation JSON Lines que vous pouvez utiliser pour importer des données dans Vertex AI. Ce format dépend du type de données (image, tabulaire, texte, vidéo) et de leur objectif (tel que le suivi des objets, l'extraction d'entités ou la classification). Par exemple, si vous exportez un ensemble d'annotations pour la classification d'images à étiquette unique, chaque ligne de chaque fichier JSON Lines est formatée conformément au fichier de schéma gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml, comme décrit dans Préparer des données d'image.

Pour en savoir plus sur les différents formats de lignes JSON pour différents types d'ensembles d'annotations, consultez les guides suivants :

Étape suivante