Entraîner le modèle de transformation de texte (GeoAI)

Synthèse

Entraîne un modèle de transformation de texte pour transformer, traduire ou résumer du texte.

En savoir plus sur le fonctionnement de l’outil Transformation de texte

Utilisation

  • Cet outil requiert l’installation des frameworks de Deep Learning. Pour configurer votre machine afin d’utiliser des frameworks de Deep Learning dans AllSource, consultez la rubrique Installer les frameworks de Deep Learning pour ArcGIS.

  • Cet outil permet également d’optimiser un modèle entraîné existant.

  • Pour exécuter cet outil avec l’unité de traitement graphique, définissez le paramètre d’environnement Type de processeur sur GPU. Si vous avez plusieurs unités de traitement graphique, spécifiez plutôt le paramètre d’environnement ID de GPU.

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

  • 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 la FAQ sur le Deep Learning.

Paramètres

ÉtiquetteExplicationType de données
Table en entrée

Table ou classe d’entités contenant un champ de texte qui comporte le texte en entrée pour le modèle et un champ d’étiquette qui comporte le texte transformé cible.

Feature Layer; Table View
Champ de texte

Champ de texte dans la table ou la classe d’entités en entrée qui contient le texte en entrée que le modèle doit transformer.

Field
Champ d’étiquette

Champ de texte dans la table ou la classe d’entités en entrée qui contient le texte transformé cible pour l’entraînement du modèle.

Field
Modèle en sortie

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

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

Modèle pré-entraîné qui est utilisé pour optimiser 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é qui effectue une tâche similaire peut être optimisé pour s’ajuster aux données d’entraînement. 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 backbone que ceux qui serviront à entraîner le nouveau modèle.

File
Nombre maximal d’époques
(Facultatif)

Nombre maximal d’époques pour lesquelles le modèle est entraîné. Si le nombre maximal d’époques est égal à 1, le jeu de données va et vient une fois à travers le réseau neuronal. La valeur par défaut est 5.

Long
Backbone du modèle
(Facultatif)

Spécifie le réseau neuronal préconfiguré à utiliser comme architecture pour entraîner le nouveau modèle.

  • t5-smallLe nouveau modèle sera entraîné avec le réseau neuronal T5. T5 est un framework unifié qui convertit chaque problème linguistique en un format texte à texte. t5-small est le petit modèle de T5.
  • t5-baseLe nouveau modèle sera entraîné avec le réseau neuronal T5. T5 est un framework unifié qui convertit chaque problème linguistique en un format texte à texte. t5-base est le modèle intermédiaire de T5.
  • t5-largeLe nouveau modèle sera entraîné avec le réseau neuronal T5. T5 est un framework unifié qui convertit chaque problème linguistique en un format texte à texte. t5-large est le grand modèle de T5.
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.

Il est possible d’augmenter la taille de lot pour améliorer les performances de l’outil. Il convient toutefois de noter que le volume de mémoire utilisé est proportionnel à la taille de lot. Si un message d’erreur s’affiche pour mémoire insuffisante, utilisez 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 lors de l’entraînement du modèle.

Reportez-vous aux arguments de mots-clés dans la documentation SequenceToSequence pour prendre connaissance de la liste des arguments de modèle pris en charge que vous pouvez utiliser.

Value Table
Vitesse d’apprentissage
(Facultatif)

Taille d’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éduite automatiquement.

Double
Pourcentage de validation
(Facultatif)

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

Double
Arrêter lorsque le modèle ne s’améliore plus
(Facultatif)

Indique si l’entraînement du modèle s’arrête lorsque ce dernier cesse de s’améliorer ou continue jusqu’à atteindre la valeur du paramètre Nombre maximal d’époques.

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

Spécifie si les couches backbone dans le modèle pré-entraîné sont figées afin que les pondérations et les biais conservent leur conception d’origine.

  • Activé : les couches backbone ne sont pas figées, et les pondérations et biais de la valeur du paramètre Backbone du modèle peuvent être altérés pour s’ajuster aux échantillons d’entraînement. Le temps de traitement est plus long, mais les résultats obtenus sont généralement meilleurs. Il s’agit de l’option par défaut.
  • Désactivé : les couches backbone sont figées et les pondérations et biais prédéfinis de la valeur de paramètre Backbone du modèle ne sont pas altérés lors de l’entraînement.

Boolean
Supprimer les balises HTML
(Facultatif)

Indique si les balises HTML seront ou non supprimées 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
Supprimer les URL
(Facultatif)

Indique si les URL seront ou non supprimées 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.TrainTextTransformationModel(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

Table ou classe d’entités contenant un champ de texte qui comporte le texte en entrée pour le modèle et un champ d’étiquette qui comporte le texte transformé cible.

Feature Layer; Table View
text_field

Champ de texte dans la table ou la classe d’entités en entrée qui contient le texte en entrée que le modèle doit transformer.

Field
label_field

Champ de texte dans la table ou la classe d’entités en entrée qui contient le texte transformé cible pour l’entraînement du modèle.

Field
out_model

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

Folder
pretrained_model_file
(Facultatif)

Modèle pré-entraîné qui est utilisé pour optimiser 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é qui effectue une tâche similaire peut être optimisé pour s’ajuster aux données d’entraînement. 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 backbone que ceux qui serviront à entraîner le nouveau modèle.

File
max_epochs
(Facultatif)

Nombre maximal d’époques pour lesquelles le modèle est entraîné. Si le nombre maximal d’époques est égal à 1, le jeu de données va et vient une fois à travers le réseau neuronal. La valeur par défaut est 5.

Long
model_backbone
(Facultatif)

Spécifie le réseau neuronal préconfiguré à utiliser comme architecture pour entraîner le nouveau modèle.

  • t5-smallLe nouveau modèle sera entraîné avec le réseau neuronal T5. T5 est un framework unifié qui convertit chaque problème linguistique en un format texte à texte. t5-small est le petit modèle de T5.
  • t5-baseLe nouveau modèle sera entraîné avec le réseau neuronal T5. T5 est un framework unifié qui convertit chaque problème linguistique en un format texte à texte. t5-base est le modèle intermédiaire de T5.
  • t5-largeLe nouveau modèle sera entraîné avec le réseau neuronal T5. T5 est un framework unifié qui convertit chaque problème linguistique en un format texte à texte. t5-large est le grand modèle de T5.
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.

Il est possible d’augmenter la taille de lot pour améliorer les performances de l’outil. Il convient toutefois de noter que le volume de mémoire utilisé est proportionnel à la taille de lot. Si un message d’erreur s’affiche pour mémoire insuffisante, utilisez 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 lors de l’entraînement du modèle.

Reportez-vous aux arguments de mots-clés dans la documentation SequenceToSequence pour prendre connaissance de la liste des arguments de modèle pris en charge que vous pouvez utiliser.

Value Table
learning_rate
(Facultatif)

Taille d’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éduite automatiquement.

Double
validation_percentage
(Facultatif)

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

Double
stop_training
(Facultatif)

Indique si l’entraînement du modèle s’arrête lorsque ce dernier cesse de s’améliorer ou continue jusqu’à atteindre la valeur du paramètre max_epochs.

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

Spécifie si les couches backbone dans le modèle pré-entraîné sont figées afin que les pondérations et les biais conservent leur conception d’origine.

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

Indique si les balises HTML seront ou non supprimées 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 seront ou non supprimées 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

Exemple d’utilisation de la fonction TrainTextTransformationModel (fenêtre Python)

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

# Name: TrainTextTransformation.py
# Description: Train a sequence-to-sequence model to translate text from English to German.  
#
# Requirements: ArcGIS Pro Advanced license

# Import system modules
import arcpy
import os

# Set local variables
in_table = "training_data.csv"
out_folder = "c\\texttransformer"

# Run Train Text Transformation Model
arcpy.geoai.TrainTextTransformationModel(in_table, out_folder, max_epochs=2,
         text_field="input", label_field="target", batch_size=16)