Utiliser des ensembles de données gérés

Cette page explique comment utiliser des ensembles de données gérés par Vertex AI pour entraîner vos modèles personnalisés. Les ensembles de données gérés offrent les avantages suivants :

  • Gérez vos ensembles de données de manière centralisée.
  • Créez facilement des libellés et plusieurs ensembles d'annotations.
  • Créez des tâches d'étiquetage manuel à l'aide de l'étiquetage de données intégré.
  • Assurez la traçabilité des modèles de gouvernance et de développement itératif.
  • Comparer les performances des modèles en entraînant des modèles AutoML et des modèles personnalisés à l'aide des mêmes ensembles de données.
  • Générez des statistiques et des visualisations de données.
  • Répartir automatiquement les données en ensembles d'entraînement, de test et de validation.

Avant de commencer

Avant de pouvoir utiliser un ensemble de données géré dans votre application d'entraînement, vous devez créer l'ensemble de données. Vous devez créer l'ensemble de données et le pipeline d'entraînement que vous utilisez pour l'entraînement dans la même région. Vous devez utiliser une région où les ressources Dataset sont disponibles.

Accéder à un ensemble de données à partir de l'application d'entraînement

Lorsque vous créez un pipeline d'entraînement personnalisé, vous pouvez spécifier que votre application d'entraînement utilise un ensemble de données d'IA Vertex.

Lors de l'exécution, Vertex AI transmet les métadonnées de votre ensemble de données à l'application d'entraînement en définissant les variables d'environnement suivantes dans votre conteneur d'entraînement.

  • AIP_DATA_FORMAT : format d'exportation de votre ensemble de données. Les valeurs possibles incluent jsonl, csv ou bigquery.
  • AIP_TRAINING_DATA_URI : URI BigQuery de vos données d'entraînement ou URI Cloud Storage de votre fichier de données d'entraînement.
  • AIP_VALIDATION_DATA_URI : URI BigQuery de vos données de validation ou URI Cloud Storage de votre fichier de données de validation.
  • AIP_TEST_DATA_URI : URI BigQuery de vos données de test ou URI Cloud Storage de votre fichier de données de test.

Si le AIP_DATA_FORMAT de votre ensemble de données est jsonl ou csv, les valeurs d'URI de données font référence aux URI Cloud Storage, comme gs://bucket_name/path/training-*. Pour que la taille de chaque fichier de données soit relativement petite, l'IA Vertex divise l'ensemble de données en plusieurs fichiers. Étant donné que vos données d'entraînement, de validation ou de test peuvent être divisées en plusieurs fichiers, les URI sont fournis au format générique.

Découvrez comment télécharger des objets à l'aide des exemples de code Cloud Storage.

Si votre AIP_DATA_FORMAT est défini sur bigquery, les valeurs d'URI de données font référence aux URI BigQuery, tels que bq://project.dataset.table.

En savoir plus sur la pagination dans les données BigQuery.

Format de l'ensemble de données

Les sections suivantes vous permettent d'en savoir plus sur la mise en forme des données par Vertex AI lors de la transmission d'un ensemble de données à l'application d'entraînement.

Ensembles de données d'images

Les ensembles de données d'images sont transmis à votre application d'entraînement au format JSON Lines. Sélectionnez l'onglet correspondant à l'objectif de votre ensemble de données pour en savoir plus sur la mise en forme de votre ensemble de données par Vertex AI.

Classification à étiquette unique

L'IA Vertex utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de classification d'images à étiquette unique. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_single_label_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotation": {
    "displayName": "LABEL",
    "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
   },
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

Remarques sur les champs :

  • imageGcsUri : URI Cloud Storage de cette image.
  • annotationResourceLabels : contient un nombre indéfini de paires de chaînes clé/valeur. Vertex AI utilise ce champ pour spécifier l'ensemble d'annotations.
  • dataItemResourceLabels : contient un nombre indéfini de paires de chaînes clé/valeur. Spécifie l'utilisation du machine learning de l'élément de données (entraînement, test ou validation).

Exemple JSON Lines


{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotation": {"displayName": "daisy"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotation": {"displayName": "dandelion"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotation": {"displayName": "roses"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotation": {"displayName": "sunflowers"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotation": {"displayName": "tulips"}, "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

Classification multi-étiquette

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de classification d'images multi-étiquette. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_classification_multi_label_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "classificationAnnotations": [
    {
      "displayName": "LABEL1",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "flower_type"
      }
    },
    {
      "displayName": "LABEL2",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name":"displayName",
        "label_type": "image_shot_type"
      }
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training/test/validation"
  }
}

Remarques sur les champs :

  • imageGcsUri : URI Cloud Storage de cette image.
  • annotationResourceLabels : contient un nombre indéfini de paires de chaînes clé/valeur. Vertex AI utilise ce champ pour spécifier l'ensemble d'annotations.
  • dataItemResourceLabels : contient un nombre indéfini de paires de chaînes clé/valeur. Spécifie l'utilisation du machine learning de l'élément de données (entraînement, test ou validation).

Exemple JSON Lines


{"imageGcsUri": "gs://bucket/filename1.jpeg",  "classificationAnnotations": [{"displayName": "daisy"}, {"displayName": "full_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif",  "classificationAnnotations": [{"displayName": "dandelion"}, {"displayName": "medium_shot"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png",  "classificationAnnotations": [{"displayName": "roses"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.bmp",  "classificationAnnotations": [{"displayName": "sunflowers"}, {"displayName": "closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename5.tiff",  "classificationAnnotations": [{"displayName": "tulips"}, {"displayName": "extreme_closeup"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

Détection d'objets

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de détection d'objets. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/image_bounding_box_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.


{
  "imageGcsUri": "gs://bucket/filename.ext",
  "boundingBoxAnnotations": [
    {
      "displayName": "OBJECT1_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX",
      "annotationResourceLabels": {
        "aiplatform.googleapis.com/annotation_set_name": "displayName",
        "env": "prod"
      }
    },
    {
      "displayName": "OBJECT2_LABEL",
      "xMin": "X_MIN",
      "yMin": "Y_MIN",
      "xMax": "X_MAX",
      "yMax": "Y_MAX"
    }
  ],
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "test/train/validation"
  }
}

Remarques sur les champs :

  • imageGcsUri : URI Cloud Storage de cette image.
  • annotationResourceLabels : contient un nombre indéfini de paires de chaînes clé/valeur. Vertex AI utilise ce champ pour spécifier l'ensemble d'annotations.
  • dataItemResourceLabels : contient un nombre indéfini de paires de chaînes clé/valeur. Spécifie l'utilisation du machine learning de l'élément de données (entraînement, test ou validation).

Exemple JSON Lines


{"imageGcsUri": "gs://bucket/filename1.jpeg", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.3", "yMin": "0.3", "xMax": "0.7", "yMax": "0.6"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
{"imageGcsUri": "gs://bucket/filename2.gif", "boundingBoxAnnotations": [{"displayName": "Tomato", "xMin": "0.8", "yMin": "0.2", "xMax": "1.0", "yMax": "0.4"},{"displayName": "Salad", "xMin": "0.0", "yMin": "0.0", "xMax": "1.0", "yMax": "1.0"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename3.png", "boundingBoxAnnotations": [{"displayName": "Baked goods", "xMin": "0.5", "yMin": "0.7", "xMax": "0.8", "yMax": "0.8"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"imageGcsUri": "gs://bucket/filename4.tiff", "boundingBoxAnnotations": [{"displayName": "Salad", "xMin": "0.1", "yMin": "0.2", "xMax": "0.8", "yMax": "0.9"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "validation"}}
...

Ensembles de données tabulaires

Vertex AI transmet les données tabulaires à votre application d'entraînement au format CSV, ou sous la forme d'un URI à une table ou une vue BigQuery. Pour en savoir plus sur le format et les conditions requises pour la source de données, consultez la page Préparer la source d'importation. Reportez-vous à l'ensemble de données dans Google Cloud Console pour plus d'informations sur le schéma de l'ensemble de données.

Ensembles de données textuelles

Les ensembles de données textuelles sont transmis à l'application d'entraînement au format JSON Lines. Sélectionnez l'onglet correspondant à l'objectif de votre ensemble de données pour en savoir plus sur la mise en forme de votre ensemble de données par Vertex AI.

Classification à étiquette unique

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de classification d'images à étiquette unique. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.

{
  "classificationAnnotation": {
    "displayName": "label"
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotation": {
    "displayName": "label2"
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

Classification multi-étiquette

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de classification de texte multi-étiquette. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.

{
  "classificationAnnotations": [{
    "displayName": "label1"
    },{
    "displayName": "label2"
  }],
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "classificationAnnotations": [{
    "displayName": "label2"
    },{
    "displayName": "label3"
  }],
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

Extraction d'entités

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données d'extraction d'entités. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml.

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.

{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textContent": "inline_text",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}
{
    "textSegmentAnnotations": [
      {
        "startOffset":number,
        "endOffset":number,
        "displayName": "label"
      },
      ...
    ],
    "textGcsUri": "gcs_uri_to_file",
    "dataItemResourceLabels": {
      "aiplatform.googleapis.com/ml_use": "training|test|validation"
    }
}

Analyse des sentiments

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données d'analyse des sentiments. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_text_sentiment_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.

{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textContent": "inline_text",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}
{
  "sentimentAnnotation": {
    "sentiment": number,
    "sentimentMax": number
  },
  "textGcsUri": "gcs_uri_to_file",
  "dataItemResourceLabels": {
    "aiplatform.googleapis.com/ml_use": "training|test|validation"
  }
}

Ensembles de données vidéo

Les ensembles de données vidéo sont transmis à votre application d'entraînement au format JSON Lines. Sélectionnez l'onglet correspondant à l'objectif de votre ensemble de données pour en savoir plus sur la mise en forme de votre ensemble de données par Vertex AI.

Reconnaissance des actions

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de reconnaissance d'actions. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/video_action_recognition_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.


{
  "videoGcsUri': "gs://bucket/filename.ext",
  "timeSegments": [{
    "startTime": "start_time_of_fully_annotated_segment",
    "endTime": "end_time_of_segment"}],
  "timeSegmentAnnotations": [{
    "displayName": "LABEL",
    "startTime": "start_time_of_segment",
    "endTime": "end_time_of_segment"
  }],
  "dataItemResourceLabels": {
    "ml_use": "train|test"
  }
}

Remarque : Les segments de temps sont utilisés pour calculer l'horodatage des actions. Les valeurs startTime et endTime de timeSegmentAnnotations peuvent être égales et correspondent à l'image clé de l'action.

Exemple JSON Lines


{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"ml_use": "training"}}
{"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"ml_use": "test"}}
...

Classification

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de classification. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/video_classification_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.


{
	"videoGcsUri": "gs://bucket/filename.ext",
	"timeSegmentAnnotations": [{
		"displayName": "LABEL",
		"startTime": "start_time_of_segment",
		"endTime": "end_time_of_segment"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

Exemple JSON Lines – Classification de vidéos :


{"videoGcsUri": "gs://demo/video1.mp4", "timeSegmentAnnotations": [{"displayName": "cartwheel", "startTime": "1.0s", "endTime": "12.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{"videoGcsUri": "gs://demo/video2.mp4", "timeSegmentAnnotations": [{"displayName": "swing", "startTime": "4.0s", "endTime": "9.0s"}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

Suivi des objets

Vertex AI utilise le schéma accessible au public suivant lors de l'exportation d'un ensemble de données de suivi d'objets. Ce schéma détermine le format des fichiers d'exportation de données. La structure du schéma suit le schéma OpenAPI.

gs://google-cloud-aiplatform/schema/dataset/ioformat/object_tracking_io_format_1.0.0.yaml

Chaque élément de données de votre ensemble de données exporté utilise le format suivant. L'exemple inclut des sauts de ligne pour des raisons de lisibilité.


{
	"videoGcsUri": "gs://bucket/filename.ext",
	"TemporalBoundingBoxAnnotations": [{
		"displayName": "LABEL",
		"xMin": "leftmost_coordinate_of_the_bounding box",
		"xMax": "rightmost_coordinate_of_the_bounding box",
		"yMin": "topmost_coordinate_of_the_bounding box",
		"yMax": "bottommost_coordinate_of_the_bounding box",
		"timeOffset": "timeframe_object-detected"
                "instanceId": "instance_of_object
                "annotationResourceLabels": "resource_labels"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

Exemple JSON Lines


{'videoGcsUri': 'gs://demo-data/video1.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '4.000000s', 'xMin': '0.668912', 'yMin': '0.560642', 'xMax': '1.000000', 'yMax': '1.000000'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{'videoGcsUri': 'gs://demo-data/video2.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '71.000000s', 'xMin': '0.679056', 'yMin': '0.070957', 'xMax': '0.801716', 'yMax': '0.290358'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

Étape suivante