Entraîner un modèle de classification de texte (GeoAI)

Synthèse

Entraîner un modèle de classification de texte à une seule ou plusieurs étiquettes pour attribuer une étiquette ou une catégorie prédéfinie au texte non structuré.

En savoir plus sur le fonctionnement de la classification de texte

Utilisation

  • Cet outil requiert l’installation des structures d’apprentissage profond. Pour configurer votre machine afin d’utiliser des structures d’apprentissage profond dans ArcGIS Pro, consultez la rubrique Installer les structures d’apprentissage profond pour ArcGIS.

  • Cet outil peut également être utilisé pour affiner un modèle entraîné existant.

  • Pour exécuter cet outil avec un processeur graphique, définissez l’environnement Processor Type (Type de processeur) sur GPU. Si vous disposez de plusieurs GPU, indiquez l’environnement GPU ID (ID de GPU) à la place.

  • L’entrée de l’outil est une table ou une classe d’entités contenant des données d’entraînement, avec une zone de texte contenant le texte en entrée et un champ d’étiquette contenant les étiquettes de la classe cible.

  • Pour en savoir plus sur les exigences relatives à l’exécution de cet outil, ainsi que sur les problèmes que vous pouvez rencontrer, consultez les rubriques FAQ Apprentissage profond. .

Paramètres

ÉtiquetteExplicationType de données
Input Table (Table en entrée)

Classe d’entités ou table contenant un champ de texte avec le texte en entrée du modèle et un champ d’étiquette contenant les étiquettes de la classe cible.

Feature Layer; Table View
Text Field (Champ de texte)

Champ de texte dans la classe d’entités en entrée ou table qui contient le texte qui sera classé par le modèle.

Field
Champ d’étiquette

Champ de texte dans la classe d’entités en entrée ou table qui contient les étiquettes de la classe cible pour l’entraînement du modèle. Dans le cas d’une classification de texte à plusieurs étiquettes, spécifiez plusieurs champs de texte.

Field
Output Model (Modèle en sortie)

Emplacement du dossier en sortie qui va contenir le modèle entraîné.

Folder
Pretrained Model File (Fichier de modèle pré-entraîné)
(Facultatif)

Modèle pré-entraîné qui sera utilisé pour affiner le nouveau modèle. L’entrée peut être un fichier de définition de modèle Esri (.emd) ou un fichier de paquetage de Deep Learning (.dlpk).

Un modèle pré-entraîné avec des classes similaires peut être affiné en vue de son adaptation au nouveau modèle. Le modèle pré-entraîné doit avoir été entraîné avec le même type de modèle et le même modèle d’architecture que ceux qui seront utilisés pour entraîner le nouveau modèle.

File
Max Epochs (Nombre maximal d’époques)
(Facultatif)

Nombre maximal d’époques pour lequel le modèle sera entraîné. Une valeur maximale d’époques de 1 signifie que le jeu de données va et vient une fois sur le réseau neuronal. La valeur par défaut est 5.

Long
Model Backbon (Modèle de backbone)
(Facultatif)

Spécifie le réseau neuronal préconfiguré qui servira d’encodeur pour le modèle et extraira les représentations d’entité du texte en entrée sous la forme de vecteurs de longueur fixe. Ces vecteurs sont ensuite transmis sous forme d’entrée au modèle de classification.

  • bert-base-casedLe modèle sera entraîné à l’aide du réseau neuronal BERT. BERT est pré-entraîné à l’aide de l’objectif de modélisation linguistique masqué et de la prédiction de phrase suivante.
  • roberta-baseLe modèle sera entraîné à l’aide du réseau neuronal RoBERTa. RoBERTa modifie les hyperparamètres clés de BERT, ce qui permet d’éliminer l’objectif de pré-entraînement et l’entraînement de la phrase suivante avec de petits lots et des vitesses d’apprentissage plus importantes.
  • albert-base-v1Le modèle sera entraîné à l’aide du réseau neuronal ALBERT. ALBERT utilise une perte auto-supervisée axée sur la modélisation de la cohérence entre les phrases, ce qui rend ce réseau neuronal plus évolutif que BERT.
  • xlnet-base-casedLe modèle sera entraîné à l’aide du réseau neuronal XLNet. XLNet est une méthode de pré-entraînement auto-régressive généralisée. Il permet d’apprendre des contextes bidirectionnels en optimisant la probabilité attendue sur toutes les permutations de l’ordre de factorisation, ce qui remédie aux inconvénients de BERT
  • xlm-roberta-baseLe modèle sera entraîné à l’aide du réseau neuronal XLM-RoBERTa. XLM-RoBERTa est un modèle multilingue entraîné sur 100 langues différentes. Contrairement à certains modèles multilingues XLM, il ne nécessite pas de tenseurs linguistiques pour savoir quelle est la langue utilisée et il identifie la langue correcte à partir des identifiants en entrée.
  • distilroberta-baseLe modèle sera entraîné à l’aide du réseau neuronal DistilRoBERTa. DistilRoBERTa est un modèle linguistique anglais entraîné sous la supervision de roberta-base uniquement sur OpenWebTextCorpus, reproduction du jeu de données WebText d’OpenAI.
  • distilbert-base-casedLe modèle sera entraîné à l’aide du réseau neuronal DistilBERT. DistilBERT est un modèle de représentation linguistique plus petit à usage général.
String
Taille de lot
(Facultatif)

Nombre d’échantillons d’entraînement qui seront traités en une fois La valeur par défaut est de 2.

L’augmentation de la taille du lot peut améliorer les performances de l’outil. Cependant, plus la taille augmente, plus la mémoire utilisée est importante. Si une erreur se produit en raison d’une mémoire insuffisante, utillisez une taille de lot plus petite.

Double
Arguments du modèle
(Facultatif)

Arguments supplémentaires pour l’initialisation du modèle, tels que seq_len pour la longueur de séquence maximale des données d’entraînement, qui seront pris en compte pour l’entraînement du modèle.

Voir les arguments de mot-clé dans la documentation TextClassifier pour obtenir la liste des arguments de modèle pris en charge qui peuvent être utilisés.

Value Table
Learning Rate (Vitesse d’apprentissage)
(Facultatif)

Taille de l’intervalle indiquant dans quelle mesure les pondérations du modèle seront ajustées au cours du processus d’entraînement Si aucune valeur n’est spécifiée, une vitesse d’apprentissage optimale est déterminée automatiquement.

Double
Validation Percentage (Pourcentage de validation)
(Facultatif)

Pourcentage d’échantillons d’entraînement qui sera utilisé pour valider le modèle. La valeur par défaut est 10.

Double
Stop when model stops improving (Arrêter lorsque le modèle ne s’améliore plus)
(Facultatif)

Spécifie si l’entraînement du modèle s’arrête lorsque le modèle ne s’améliore plus ou tant que la valeur de paramètre Max Epochs (Nombre maximal d’époques) n’a pas été atteinte.

  • Activé : l’entraînement du modèle s’arrête lorsque le modèle ne s’améliore plus, quelle que soit la valeur de paramètre Max Epochs (Nombre maximal d’époques) spécifiée. Il s’agit de l’option par défaut.
  • Désactivé : l’entraînement du modèle continue jusqu’à ce que la valeur de paramètre Max Epochs (Nombre maximal d’époques) soit atteinte.
Boolean
Make model backbone trainable (Adapter le backbone du modèle pour l’entraînement)
(Facultatif)

Indique si les couches de backbone dans le modèle pré-entraîné sont figées pour que la conception originale des pondérations et des biais soit conservée.

  • Les couches de backbone ne sont pas figées et les pondérations et biais de la valeur de paramètre Backbone Model (Modèle de backbone) peuvent être modifiés pour s’adapter aux échantillons d’entraînement. Le traitement est plus long, mais produit généralement de meilleurs résultats. Il s’agit de l’option par défaut.
  • Désactivé : les couches de backbone sont figées et les pondérations et biais prédéfinis de la valeur de paramètre Model Backbone (Modèle de backbone) ne sont pas modifiés pour s’adapter pendant l’entraînement.

Boolean
Remove HTML Tags (Supprimer les balises HTML)
(Facultatif)

Indique si les balises HTML sont supprimées ou non du texte en entrée

  • Activé : les balises HTML du texte en entrée seront supprimées Il s’agit de l’option par défaut.
  • Désactivé : les balises HTML du texte en entrée ne seront pas supprimées

Boolean
Remove URLs (Supprimer les URL)
(Facultatif)

Indique si les URL sont supprimées ou non du texte en entrée

  • Activé : les URL du texte en entrée seront supprimées. Il s’agit de l’option par défaut.
  • Désactivé : les URL du texte en entrée ne seront pas supprimées.

Boolean

arcpy.geoai.TrainTextClassificationModel(in_table, text_field, label_field, out_model, {pretrained_model_file}, {max_epochs}, {model_backbone}, {batch_size}, {model_arguments}, {learning_rate}, {validation_percentage}, {stop_training}, {make_trainable}, {remove_html_tags}, {remove_urls})
NomExplicationType de données
in_table

Classe d’entités ou table contenant un champ de texte avec le texte en entrée du modèle et un champ d’étiquette contenant les étiquettes de la classe cible.

Feature Layer; Table View
text_field

Champ de texte dans la classe d’entités en entrée ou table qui contient le texte qui sera classé par le modèle.

Field
label_field
[label_field,...]

Champ de texte dans la classe d’entités en entrée ou table qui contient les étiquettes de la classe cible pour l’entraînement du modèle. Dans le cas d’une classification de texte à plusieurs étiquettes, spécifiez plusieurs champs de texte.

Field
out_model

Emplacement du dossier en sortie qui va contenir le modèle entraîné.

Folder
pretrained_model_file
(Facultatif)

Modèle pré-entraîné qui sera utilisé pour affiner le nouveau modèle. L’entrée peut être un fichier de définition de modèle Esri (.emd) ou un fichier de paquetage de Deep Learning (.dlpk).

Un modèle pré-entraîné avec des classes similaires peut être affiné en vue de son adaptation au nouveau modèle. Le modèle pré-entraîné doit avoir été entraîné avec le même type de modèle et le même modèle d’architecture que ceux qui seront utilisés pour entraîner le nouveau modèle.

File
max_epochs
(Facultatif)

Nombre maximal d’époques pour lequel le modèle sera entraîné. Une valeur maximale d’époques de 1 signifie que le jeu de données va et vient une fois sur le réseau neuronal. La valeur par défaut est 5.

Long
model_backbone
(Facultatif)

Spécifie le réseau neuronal préconfiguré qui servira d’encodeur pour le modèle et extraira les représentations d’entité du texte en entrée sous la forme de vecteurs de longueur fixe. Ces vecteurs sont ensuite transmis sous forme d’entrée au modèle de classification.

  • bert-base-casedLe modèle sera entraîné à l’aide du réseau neuronal BERT. BERT est pré-entraîné à l’aide de l’objectif de modélisation linguistique masqué et de la prédiction de phrase suivante.
  • roberta-baseLe modèle sera entraîné à l’aide du réseau neuronal RoBERTa. RoBERTa modifie les hyperparamètres clés de BERT, ce qui permet d’éliminer l’objectif de pré-entraînement et l’entraînement de la phrase suivante avec de petits lots et des vitesses d’apprentissage plus importantes.
  • albert-base-v1Le modèle sera entraîné à l’aide du réseau neuronal ALBERT. ALBERT utilise une perte auto-supervisée axée sur la modélisation de la cohérence entre les phrases, ce qui rend ce réseau neuronal plus évolutif que BERT.
  • xlnet-base-casedLe modèle sera entraîné à l’aide du réseau neuronal XLNet. XLNet est une méthode de pré-entraînement auto-régressive généralisée. Il permet d’apprendre des contextes bidirectionnels en optimisant la probabilité attendue sur toutes les permutations de l’ordre de factorisation, ce qui remédie aux inconvénients de BERT
  • xlm-roberta-baseLe modèle sera entraîné à l’aide du réseau neuronal XLM-RoBERTa. XLM-RoBERTa est un modèle multilingue entraîné sur 100 langues différentes. Contrairement à certains modèles multilingues XLM, il ne nécessite pas de tenseurs linguistiques pour savoir quelle est la langue utilisée et il identifie la langue correcte à partir des identifiants en entrée.
  • distilroberta-baseLe modèle sera entraîné à l’aide du réseau neuronal DistilRoBERTa. DistilRoBERTa est un modèle linguistique anglais entraîné sous la supervision de roberta-base uniquement sur OpenWebTextCorpus, reproduction du jeu de données WebText d’OpenAI.
  • distilbert-base-casedLe modèle sera entraîné à l’aide du réseau neuronal DistilBERT. DistilBERT est un modèle de représentation linguistique plus petit à usage général.
String
batch_size
(Facultatif)

Nombre d’échantillons d’entraînement qui seront traités en une fois La valeur par défaut est de 2.

L’augmentation de la taille du lot peut améliorer les performances de l’outil. Cependant, plus la taille augmente, plus la mémoire utilisée est importante. Si une erreur se produit en raison d’une mémoire insuffisante, utillisez une taille de lot plus petite.

Double
model_arguments
[model_arguments,...]
(Facultatif)

Arguments supplémentaires pour l’initialisation du modèle, tels que seq_len pour la longueur de séquence maximale des données d’entraînement, qui seront pris en compte pour l’entraînement du modèle.

Voir les arguments de mot-clé dans la documentation TextClassifier pour obtenir la liste des arguments de modèle pris en charge qui peuvent être utilisés.

Value Table
learning_rate
(Facultatif)

Taille de l’intervalle indiquant dans quelle mesure les pondérations du modèle seront ajustées au cours du processus d’entraînement Si aucune valeur n’est spécifiée, une vitesse d’apprentissage optimale est déterminée automatiquement.

Double
validation_percentage
(Facultatif)

Pourcentage d’échantillons d’entraînement qui sera utilisé pour valider le modèle. La valeur par défaut est 10.

Double
stop_training
(Facultatif)

Spécifie si l’entraînement du modèle s’arrête lorsque le modèle ne s’améliore plus ou tant que la valeur de paramètre max_epochsn’a pas été atteinte.

  • STOP_TRAININGL’entraînement du modèle s’arrête lorsque le modèle ne s’améliore plus, quelle que soit la valeur de paramètre max_epochs spécifiée. Il s’agit de l’option par défaut.
  • CONTINUE_TRAININGL’entraînement du modèle continue jusqu’à ce que la valeur de paramètre max_epochs soit atteinte.
Boolean
make_trainable
(Facultatif)

Indique si les couches de backbone dans le modèle pré-entraîné sont figées pour que la conception originale des pondérations et des biais soit conservée.

  • TRAIN_MODEL_BACKBONELes couches de backbone ne sont pas figées et les pondérations et biais de la valeur de paramètre model_backbone peuvent être modifiés pour s’adapter aux échantillons d’entraînement. Le traitement est plus long, mais produit généralement de meilleurs résultats. Il s’agit de l’option par défaut.
  • FREEZE_MODEL_BACKBONELes couches de backbone sont figées et les pondérations et biais prédéfinis de la valeur de paramètre model_backbone ne sont pas modifiés pour s’adapter pendant l’entraînement.
Boolean
remove_html_tags
(Facultatif)

Indique si les balises HTML sont supprimées ou non du texte en entrée

  • REMOVE_HTML_TAGSLes balises HTML du texte en entrée seront supprimées Il s’agit de l’option par défaut.
  • DO_NOT_REMOVE_HTML_TAGSLes balises HTML du texte en entrée ne seront pas supprimées
Boolean
remove_urls
(Facultatif)

Indique si les URL sont supprimées ou non du texte en entrée

  • REMOVE_URLSLes URL du texte en entrée seront supprimées. Il s’agit de l’option par défaut.
  • DO_NOT_REMOVE_URLSLes URL du texte en entrée ne seront pas supprimées.
Boolean

Exemple de code

TrainTextClassificationModel (fenêtre Python)

Le script de fenêtre Python suivant illustre l’utilisation de la fonction TrainTextClassificationModel.

# Name: TrainTextClassification.py
# Description: Train a text classifier model to classify text in different classes.  
#
# Requirements: ArcGIS Pro Advanced license

# Import system modules
import arcpy
import os

arcpy.env.workspace = "C:/textanalysisexamples/data"

# Set local variables
in_table = "training_data_textclassifier.csv"
out_folder = "c\\textclassifier"

# Run Train Text Classification Model
arcpy.geoai.TrainTextClassificationModel(in_table, out_folder, 
            max_epochs=2, text_field="Address", label_field="Country", batch_size=16)

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Oui

Rubriques connexes