Préparer des données textuelles d'entraînement

Cette page explique comment préparer des données textuelles à utiliser dans un ensemble de données Vertex AI. Le format des données textuelles d'entrée dépend de l'objectif à accomplir. Par exemple, le processus de préparation des données pour la classification de texte est différent de celui utilisé pour l'analyse des sentiments.

Les sections suivantes décrivent les exigences applicables aux données, les recommandations et les fichiers d'entrée pour chaque objectif.

Classification à étiquette unique

Pour la classification à étiquette unique, les données d'entraînement comprennent des documents et la catégorie de classification qui s'applique à ces documents. La classification à étiquette unique permet d'attribuer une seule étiquette à un document.

Exigences en matière de données

  • Vous devez fournir au minimum 20 ou au maximum 1 000 000 de documents d'entraînement.
  • Vous devez fournir au minimum 2 ou au maximum 5000 étiquettes uniques.
  • Vous devez appliquer chaque étiquette à au moins 10 documents.
  • Pour la classification multi-étiquette, vous pouvez appliquer une ou plusieurs étiquettes à un document.
  • Vous pouvez intégrer directement les documents ou faire référence à des fichiers TXT situés dans des buckets Cloud Storage.

Bonnes pratiques pour les données textuelles utilisées afin d'entraîner des modèles AutoML

Les recommandations suivantes s'appliquent aux ensembles de données utilisés pour entraîner les modèles AutoML.

  • Utilisez des données d'entraînement aussi variées que les données sur lesquelles les prédictions seront effectuées. Incluez des documents de différentes longueurs, des documents rédigés par des auteurs différents, dans des styles différents ou avec des formulations différentes, etc…
  • Utilisez des documents qu'un lecteur humain pourrait classifier aisément. Les modèles AutoML ne peuvent généralement pas prédire les étiquettes de catégorie que des humains ne sauraient pas attribuer. Si un humain ne peut pas apprendre à attribuer une étiquette à un document en le lisant, il est probable que votre modèle ne pourra pas le faire non plus.
  • Fournissez autant de documents d'entraînement que possible pour chaque étiquette. Vous pouvez améliorer le score de confiance du modèle en utilisant davantage d'exemples par étiquette. Entraînez un modèle en utilisant 50 exemples par étiquette puis évaluez les résultats. Ajoutez plus d'exemples et renouvellez le processus d'entraînement jusqu'à atteindre vos objectifs de précision, ce qui peut nécessiter des centaines, voire même 1 000 exemples par étiquette.
  • Le modèle fonctionne de manière optimale s'il existe au maximum 100 fois plus de documents pour l'étiquette la plus courante que pour l'étiquette la moins courante. Nous recommandons de supprimer les étiquettes sont la fréquence est très faible.
  • Pensez à inclure une étiquette hors domaine (par exemple, None_of_the_above) pour les documents ne correspondant à aucune des étiquettes définies. Par exemple, si vous n'étiquetez que des documents relatifs aux arts et au divertissement, mais que votre ensemble de données contient des documents relatifs à d'autres sujets, tels que le sport ou la technologie, attribuez une étiquette None_of_the_above (Aucune des étiquettes ci-dessus) à ces documents. Sans ce type d'étiquette, le modèle entraîné tentera d'attribuer à chaque document l'une des étiquettes définies, y compris aux documents pour lesquels ces étiquettes ne conviennent pas.
  • Si vous avez un grand nombre de documents ne correspondant actuellement pas à vos étiquettes, filtrez-les afin de ne pas biaiser les prédictions de votre modèle avec une étiquette hors domaine. Vous pouvez par exemple utiliser un modèle de filtrage capable de prédire si un document correspond à l'ensemble d'étiquettes actuel ou s'il est hors domaine. Après le filtrage, vous pouvez utiliser un autre modèle qui ne classe que les documents du domaine.

Fichiers d'entrée

La classification à étiquette unique est compatible avec les fichiers d'entrée JSONL ou CSV. Vous ne pouvez spécifier qu'une seule étiquette (annotation) par document. Les sections suivantes décrivent les fichiers d'entrée et fournissent des exemples pour chaque type de fichier.

JSONL

Le format, les noms de champ et les types de valeurs pour les fichiers JSONL sont déterminés par un fichier de schéma qui est un fichier YAML publiquement accessible.

Vous pouvez télécharger le fichier de schéma pour la classification à étiquette unique à partir de l'emplacement Cloud Storage suivant :
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_single_label_io_format_1.0.0.yaml

Exemple JSONL

L'exemple suivant montre comment utiliser le schéma pour créer votre propre fichier JSONL. L'exemple inclut des sauts de ligne pour des raisons de lisibilité. Dans vos fichiers JSON, n'incluez des sauts de ligne qu'après chaque document. Le champ facultatif dataItemResourceLabels peut par exemple spécifier ml_use.


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

CSV

Chaque ligne d'un fichier CSV fait référence à un seul document. L'exemple suivant montre le format général d'un fichier CSV valide. La colonne ml_use est facultative.

[ml_use],gcs_file_uri|"inline_text",label

L'extrait suivant est un exemple de fichier CSV d'entrée.

test,gs://path_to_file,label1
test,"inline_text",label2
training,gs://path_to_file,label3
validation,gs://path_to_file,label1

Classification multi-étiquette

Pour la classification multi-étiquette, les données d'entraînement sont constituées par des documents et les catégories de classification associées. La classification multi-étiquettes permet d'attribuer une ou plusieurs étiquettes à un document.

Exigences en matière de données

  • Vous devez fournir au minimum 20 ou au maximum 1 000 000 de documents d'entraînement.
  • Vous devez fournir au minimum 2 ou au maximum 5000 étiquettes uniques.
  • Vous devez appliquer chaque étiquette à au moins 10 documents.
  • Pour la classification multi-étiquette, vous pouvez appliquer une ou plusieurs étiquettes à un document.
  • Vous pouvez intégrer directement les documents ou faire référence à des fichiers TXT situés dans des buckets Cloud Storage.

Bonnes pratiques pour les données textuelles utilisées afin d'entraîner des modèles AutoML

Les recommandations suivantes s'appliquent aux ensembles de données utilisés pour entraîner les modèles AutoML.

  • Utilisez des données d'entraînement aussi variées que les données sur lesquelles les prédictions seront effectuées. Incluez des documents de différentes longueurs, des documents rédigés par des auteurs différents, dans des styles différents ou avec des formulations différentes, etc…
  • Utilisez des documents qu'un lecteur humain pourrait classifier aisément. Les modèles AutoML ne peuvent généralement pas prédire les étiquettes de catégorie que des humains ne sauraient pas attribuer. Si un humain ne peut pas apprendre à attribuer une étiquette à un document en le lisant, il est probable que votre modèle ne pourra pas le faire non plus.
  • Lorsque vous utilisez la classification multi-étiquettes, appliquez toutes les étiquettes pertinentes à chaque document. Par exemple, si vous étiquetez des documents contenant des informations détaillées sur des produits pharmaceutiques, vous pouvez avoir un document avec les étiquettes Dosage et Side Effects.
  • Fournissez autant de documents d'entraînement que possible pour chaque étiquette. Vous pouvez améliorer le score de confiance du modèle en utilisant davantage d'exemples par étiquette. Les scores de confiance élevés sont particulièrement utiles lorsque le modèle renvoie plusieurs étiquettes lors de la classification d'un document. Entraînez un modèle en utilisant 50 exemples par étiquette puis évaluez les résultats. Ajoutez plus d'exemples et renouvellez le processus d'entraînement jusqu'à atteindre vos objectifs de précision, ce qui peut nécessiter des centaines, voire même 1 000 exemples par étiquette.
  • Le modèle fonctionne de manière optimale s'il existe au maximum 100 fois plus de documents pour l'étiquette la plus courante que pour l'étiquette la moins courante. Nous recommandons de supprimer les étiquettes sont la fréquence est très faible.
  • Pensez à inclure une étiquette hors domaine (par exemple, None_of_the_above) pour les documents ne correspondant à aucune des étiquettes définies. Par exemple, si vous n'étiquetez que des documents relatifs aux arts et au divertissement, mais que votre ensemble de données contient des documents relatifs à d'autres sujets, tels que le sport ou la technologie, attribuez une étiquette None_of_the_above (Aucune des étiquettes ci-dessus) à ces documents. Sans ce type d'étiquette, le modèle entraîné tentera d'attribuer à chaque document l'une des étiquettes définies, y compris aux documents pour lesquels ces étiquettes ne conviennent pas.
  • Si vous avez un grand nombre de documents ne correspondant actuellement pas à vos étiquettes, filtrez-les afin de ne pas biaiser les prédictions de votre modèle avec une étiquette hors domaine. Vous pouvez par exemple utiliser un modèle de filtrage capable de prédire si un document correspond à l'ensemble d'étiquettes actuel ou s'il est hors domaine. Après le filtrage, vous pouvez utiliser un autre modèle qui ne classe que les documents du domaine.

Fichiers d'entrée

La classification multi-étiquettes est compatible avec les fichiers d'entrée JSONL ou CSV. Vous pouvez spécifier plusieurs étiquettes (annotation) pour un document donné. Les sections suivantes décrivent les fichiers d'entrée et fournissent des exemples pour chaque type de fichier.

JSONL

Le format, les noms de champ et les types de valeurs pour les fichiers JSONL sont déterminés par un fichier de schéma qui est un fichier YAML publiquement accessible.

Vous pouvez télécharger le fichier de schéma pour la classification multi-étiquette à partir de l'emplacement Cloud Storage suivant :
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_classification_multi_label_io_format_1.0.0.yaml

Exemple JSONL

L'exemple suivant montre comment utiliser le schéma pour créer votre propre fichier JSONL. L'exemple inclut des sauts de ligne pour des raisons de lisibilité. Dans vos fichiers JSON, n'incluez des sauts de ligne qu'après chaque document. Le champ facultatif dataItemResourceLabels peut par exemple spécifier ml_use.


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

CSV

Chaque ligne d'un fichier CSV fait référence à un seul document. L'exemple suivant montre le format général d'un fichier CSV valide. La colonne ml_use est facultative.

[ml_use],gcs_file_uri|"inline_text",label1,label2,...

L'extrait suivant est un exemple de fichier CSV d'entrée.

test,gs://path_to_file,label1,label2
test,"inline_text",label3
training,gs://path_to_file,label1,label2,label3
validation,gs://path_to_file,label4,label5

Extraction d'entités

Les données d'entraînement pour l'extraction d'entités se composent de documents annotés avec les étiquettes qui identifient les types d'entités que votre modèle doit identifier. Par exemple, vous pouvez créer un modèle d'extraction d'entités visant à identifier la terminologie spécialisée dans les documents juridiques ou les brevets. Les annotations spécifient les emplacements des entités que vous étiquetez et les étiquettes elles-mêmes.

Si vous annotez des documents structurés ou semi-structurés dans un ensemble de données utilisé pour entraîner des modèles AutoML, comme par exemple des factures ou des contrats, Vertex AI peut considérer la position d'une annotation comme un facteur contribuant à la validité de l'étiquette. Par exemple, un contrat immobilier comporte à la fois une date d'acceptation et une date de clôture. Vertex AI peut apprendre à distinguer les entités en fonction de la position spatiale de l'annotation.

Exigences en matière de données

  • Vous devez fournir au minimum 50 ou au maximum 100 000 documents d'entraînement.
  • Vous devez fournir au minimum 1 ou au maximum 100 étiquettes uniques pour annoter les entités que vous souhaitez extraire.
  • Vous pouvez utiliser une étiquette pour annoter entre 1 et 10 mots.
  • Les noms des étiquettes peuvent comporter entre 2 et 30 caractères.
  • Vous pouvez inclure des annotations directement dans vos fichiers JSONL ou les ajouter ultérieurement à l'aide de Google Cloud Console après l'importation des documents.
  • Vous pouvez intégrer directement les documents ou faire référence à des fichiers TXT situés dans des buckets Cloud Storage.

Bonnes pratiques pour les données textuelles utilisées afin d'entraîner des modèles AutoML

Les recommandations suivantes s'appliquent aux ensembles de données utilisés pour entraîner les modèles AutoML.

  • Utilisez chaque étiquette au moins 200 fois dans votre ensemble de données d'entraînement.
  • Annotez chaque occurrence des entités que le modèle doit identifier.

Fichiers d'entrée

Les types de fichiers d'entrée pour l'extraction d'entités doivent être au format JSONL. Le format, les noms de champ et les types de valeurs des fichiers JSONL sont déterminés par un fichier de schéma qui est un fichier YAML publiquement accessible.

Vous pouvez télécharger le fichier de schéma pour l'extraction d'entités à l'emplacement Cloud Storage suivant :
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_extraction_io_format_1.0.0.yaml.

L'exemple suivant montre comment utiliser le schéma pour créer votre propre fichier JSONL. L'exemple inclut des sauts de ligne pour des raisons de lisibilité. Dans vos fichiers JSON, n'incluez des sauts de ligne qu'après chaque document. Le champ facultatif dataItemResourceLabels peut par exemple spécifier ml_use.


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

Vous pouvez également annoter des documents à l'aide de Google Cloud Console. Créez un fichier JSONL ne contenant que du contenu (sans le champ textSegmentAnnotations). Les documents sont importés dans Vertex AI sans aucune annotation.

Analyse des sentiments

Les données d'entraînement pour l'analyse des sentiments se composent de documents associés à une valeur de sentiment indiquant le sentiment du contenu. Par exemple, vous pouvez disposer de tweets sur un domaine particulier comme le voyage par avion. Chaque tweet est associé à une valeur de sentiment qui indique si le tweet est positif, négatif ou neutre.

Exigences en matière de données

  • Vous devez fournir au minimum 10 ou au maximum 100 000 documents d'entraînement au total.
  • Une valeur de sentiment doit être un entier compris entre 0 et 10. La valeur de sentiment maximale est votre choix. Par exemple, si vous souhaitez déterminer si le sentiment est négatif, positif ou neutre, vous pouvez attribuer aux données d'entraînement des étiquettes représentant des scores de sentiment de 0 (négatif), 1 (neutre) ou 2 (positif). Le score de sentiment maximal pour cet ensemble de données est 2. Si vous souhaitez capturer davantage de précision, par exemple avec cinq niveaux de sentiment, vous pouvez étiqueter les documents de 0 (sentiment le plus négatif) à 4 (sentiment le plus positif).
  • Vous devez appliquer chaque valeur de sentiment à un minimum de 10 documents.
  • Les valeurs de score de sentiment doivent être des nombres entiers consécutifs à partir de zéro. Si vous constatez des écarts dans les scores ou s'ils ne commencent pas à partir de zéro, vous devez remapper vos scores pour obtenir des entiers consécutifs à partir de zéro.
  • Vous pouvez intégrer directement les documents ou faire référence à des fichiers TXT situés dans des buckets Cloud Storage.

Bonnes pratiques pour les données textuelles utilisées afin d'entraîner des modèles AutoML

Les recommandations suivantes s'appliquent aux ensembles de données utilisés pour entraîner les modèles AutoML.

  • Fournissez au moins 100 documents par valeur de sentiment.
  • Utilisez un nombre équilibré de documents pour chaque score de sentiment. Le fait d'avoir plus d'exemples pour certains scores de sentiment peut introduire un biais dans le modèle.

Fichiers d'entrée

Les types de fichiers d'entrée pour l'analyse des sentiments peuvent être JSONL ou CSV.

JSONL

Le format, les noms de champ et les types de valeurs pour les fichiers JSONL sont déterminés par un fichier de schéma qui est un fichier YAML publiquement accessible.

Vous pouvez télécharger le fichier de schéma pour l'analyse des sentiments à partir de l'emplacement Cloud Storage suivant :
gs://google-cloud-aiplatform/schema/dataset/ioformat/text_sentiment_io_format_1.0.0.yaml

Exemple JSONL

L'exemple suivant montre comment utiliser le schéma pour créer votre propre fichier JSONL. L'exemple inclut des sauts de ligne pour des raisons de lisibilité. Dans vos fichiers JSON, n'incluez des sauts de ligne qu'après chaque document. Le champ facultatif dataItemResourceLabels peut par exemple spécifier ml_use.


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

CSV

Chaque ligne d'un fichier CSV fait référence à un seul document. L'exemple suivant montre le format général d'un fichier CSV valide. La colonne ml_use est facultative.

[ml_use],gcs_file_uri|"inline_text",sentiment,sentimentMax

L'extrait suivant est un exemple de fichier CSV d'entrée.

test,gs://path_to_file,sentiment_value,sentiment_max_value
test,"inline_text",sentiment_value,sentiment_max_value
training,gs://path_to_file,sentiment_value,sentiment_max_value
validation,gs://path_to_file,sentiment_value,sentiment_max_value

Étape suivante