Skip to main content

Fonctionnement de l’outil Transformation de texte

La transformation de texte est le processus de traduction ou de conversion d’une séquence de texte dans une autre séquence de longueur identique ou différente. Elle est obtenue à l’aide de modèles séquence-à-séquence (ou Seq2seq) dans le cadre du traitement du langage naturel. Le jeu d’outils Analyse de texte de la boîte d’outils GeoAI contient des outils qui permettent d’entraîner des modèles de transformation de texte et d’utiliser les modèles pour transformer un texte.

L’outil Entraîner le modèle de transformation de texte entraîne des modèles de traitement du langage naturel pour des tâches séquence-à-séquence. Les modèles entraînés peuvent être utilisés avec l’outil Transformer du texte à l’aide du Deep Learning pour transformer, traduire ou résumer du texte de la même manière.

Applications possibles

Les applications possibles de cet outil sont les suivantes :

  • Les noms de rue mal orthographiés et dont la forme n’est pas standard peuvent être corrigés et standardisés. Ainsi, la précision est accrue lors du géocodage de ces adresses.

  • Un texte en langue étrangère peut être traduit pour que vous puissiez mieux le comprendre (dans les limites de la traduction automatique) ou le traiter.

  • Les descriptions légales des frontières de parcelle (telles que les bornes et limites) peuvent être transformées en fichiers de cheminement et être traitées automatiquement pour déduire la géométrie des parcelles.

Organigramme du modèle de transformation de texte

Un modèle de transformation de texte pour la standardisation des adresses peut corriger les fautes d’orthographe et standardiser les noms de rue.

Les modèles de transformation de texte dans ArcGIS s’appuient sur l’architecture du transformeur proposée par Vaswani et al. dans l’article précurseur " intitulé Attention is All you Need ". Ainsi, les modèles sont plus précis et parallélisables et nécessitent moins de données étiquetées pour l’entraînement.

En interne, les modèles de transformation de texte dans ArcGIS sont des modèles de type encodeur-décodeur. Les couches d’attention de l’encodeur reçoivent tous les mots du texte en entrée alors que les couches d’attention du décodeur ne peuvent accéder aux mots qu’avant leur traitement. Ensuite, le décodeur convertit les représentations d’entité codées afin de produire une séquence de jetons en sortie. BART et T5 sont des modèles de type encodeur-décodeur réputés.

L’encodeur et le décodeur sont décrits comme suit :

  • Encodeur : l’encodeur transforme le texte en entrée en représentation numérique sous forme de vecteurs d’entité de longueur fixe. Cette représentation numérique conserve la signification sémantique du texte en entrée.

  • Décodeur : le décodeur prend les vecteurs d’entité codés fournis par l’encodeur et les combine à la séquence en entrée afin de produire une séquence de jetons en sortie.

Composants du modèle de transformation de texte

Les modèles de transformation de texte prennent également en charge le modèle de backbone Mistral. Mistral est un grand modèle de langage basé sur une architecture de transformeur et qui s’exécute comme modèle avec décodeur uniquement. Les principaux composants de l’architecture de Mistral sont notamment les suivants :

  • Attention par fenêtre coulissante (SWA) : gère avec efficacité les longs textes en les traitant sous forme de petits segments superposés, ce qui réduit le coût de calcul et l’utilisation de la mémoire tout en préservant le contexte important.

  • Attention de requête groupée (GQA) : améliore l’efficacité en agrégeant des requêtes similaires, ce qui réduit la quantité de calculs d’attention et accélère le traitement.

  • Tokenisation BPE (Byte-Pair Encoding) Byte-fallback : convertit du texte en jetons pour le modèle à traiter.

Remarque :

Les modèles de traitement du langage naturel peuvent être des outils efficaces dans le cadre de l’automatisation de l’analyse de grands volumes de texte non structuré. Comme pour les autres types de modèles, assurez-vous qu’ils sont appliqués aux tâches pertinentes avec le niveau approprié de supervision humaine et de transparence concernant le type de modèle et les jeux de données d’entraînement utilisés pour entraîner le modèle.

Utiliser des modèles de transformation de texte

Vous pouvez utiliser l’outil Transformer du texte à l’aide du Deep Learning pour appliquer un modèle de transformation de texte entraîné à un texte non structuré et le traduire dans une autre langue ou le convertir dans un autre format. Vous pouvez utiliser des modèles de transformation de texte pré-entraînés fournis par ArcGIS Living Atlas of the World ou entraîner des modèles personnalisés à l’aide de l’outil Train Text Transformation Model (Entraîner le modèle de transformation de texte).

L’entrée dans l’outil Transformer du texte à l’aide du Deep Learning est une table ou une classe d’entités contenant le texte à transformer. Le modèle en entrée peut être un fichier JSON de définition de modèle Esri (.emd) ou un paquetage de modèle de Deep Learning (.dlpk). Le modèle contient le chemin d’accès au fichier de modèle de Deep Learning (contenant les pondérations de modèle) et aux autres paramètres. Certains modèles peuvent présenter des arguments de modèle supplémentaires. L’outil crée dans la table en entrée un champ contenant le texte transformé.

L’outil peut s’exécuter sur des UC mais un GPU est recommandé pour le traitement car le Deep Learning sollicite d’importantes ressources de calcul. 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 le paramètre d’environnement GPU ID (ID de GPU) à la place.

Entraîner des modèles de transformation de texte

Vous pouvez utiliser l’outil Entraîner le modèle de transformation de texte afin d’entraîner des modèles de traitement du langage naturel pour la transformation de texte. Cet outil utilise une approche Machine Learning et entraîne le modèle en lui fournissant des échantillons d’entraînement composés de paires de texte en entrée et de sortie transformée cible. Avec le modèle de backbone Mistral, il utilise l’apprentissage en contexte, ce qui guide la compréhension et les réponses du modèle via des invites en entrée et en fournissant au modèle des exemples spécifiques qui l’aide à inférer la sortie souhaitée. L’entraînement de modèles de traitement du langage naturel est une tâche qui consomme beaucoup de ressources de calcul et un GPU est donc recommandé.

Les données d’entraînement sont fournies sous forme de table en entrée contenant un champ de texte qui sert de variable prédictive et un champ d’étiquette qui contient l’étiquette cible pour chaque texte en entrée dans la table.

Lors de l’entraînement d’un modèle de transformation de texte, vous pouvez entraîner le modèle à partir de zéro, optimiser un modèle entraîné ou utiliser l’apprentissage en contexte (ICL). En général, les modèles de langue qui utilisent l’architecture du transformeur sont considérés comme des apprenants utilisant le Few-Shot Learning (entraînement avec peu de données).

Toutefois, si vous avez accès à un modèle de transformation de texte pré-entraîné qui effectue une tâche similaire, vous pouvez l’optimiser à l’aide des nouvelles données d’entraînement. Il est souvent plus rapide d’affiner un modèle existant que d’entraîner un nouveau modèle, ce processus exigeant également moins de modèles d’entraînement. Au moment d’affiner un modèle pré-entraîné, veillez à conserver le même modèle de backbone que celui utilisé dans le modèle pré-entraîné.

Le modèle pré-entraîné peut être un fichier de définition de modèle Esri ou un fichier de paquetage de Deep Learning. Le modèle en sortie est également enregistré dans ces formats dans le dossier de modèle en sortie spécifié.

L’entraînement des modèles de Deep Learning est un processus itératif dans lequel les données d’entraînement en entrée sont transmises plusieurs fois par l’intermédiaire du réseau neuronal. Chaque phase d’entrainement transmettant l’intégralité des données d’entraînement est appelée époque. Le paramètre Max Epochs (Nombre maximal d’époques) spécifie le nombre maximal de fois que les données d’entraînement sont consultées par le modèle lors de son entraînement. Sa valeur dépend du modèle que vous entraînez, de la complexité de la tâche et du nombre d’échantillons d’entraînement. Si vous disposez de nombreux échantillons d’entraînement, vous pouvez utiliser une valeur faible. En général, il est judicieux de procéder à l’entraînement pour davantage d’époques de façon répétée, tant que la perte de validation continue de baisser.

Le paramètre Model Backbone (Backbone de modèle) spécifie le réseau neuronal préconfiguré qui fait office de codeur pour le modèle et extrait les représentations d’entités du texte en entrée. Ce modèle prend en charge les encodeurs reposant sur T5 qui s’appuient sur l’architecture du transformeur et qui sont pré-entraînés à l’aide de grands volumes de texte en mode semi-supervisé et possèdent une bonne compréhension de la langue. Le paramètre Modèle Backbone prend également en charge le grand modèle de langage (LLM) Mistral. Mistral est un transformeur avec décodeur uniquement qui utilise la technique Attention par fenêtre coulissante (SWA, Sliding Window Attention) pour traiter les longs textes avec efficacité, Attention de requête groupée (GQA, Grouped Query Attention) pour rationaliser les calculs et la tokenisation BPE (Byte-Pair Encoding) Byte-fallback pour gérer différentes entrées de texte.

L’entraînement du modèle a lieu par lots et le paramètre Taille de lot spécifie le nombre d’échantillons d’entraînement qui sont traités pour l’entraînement en une fois. 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ée est proportionnel à la taille de lot. En cas de saturation de la mémoire pendant l’entraînement du modèle, utilisez une taille de lot plus petite.

Le paramètre Vitesse d’apprentissage est l’un des hyperparamètres les plus importants. Il s’agit de la vitesse à laquelle les pondérations de modèle sont ajustées pendant l’entraînement. Si vous spécifiez une faible vitesse d’apprentissage, le modèle s’améliore lentement et l’entraînement peut prendre beaucoup de temps, ce qui entraîne une perte de temps et de ressources. Une vitesse d’entraînement élevée peut être contre-productive et le modèle risque de ne pas apprendre correctement. Avec des vitesses d’apprentissage élevées, les pondérations de modèle peuvent être ajustées de manière drastique, produisant des résultats erronés. Il est souvent plus judicieux de ne pas spécifier de valeur pour le paramètre Learning Rate (Vitesse d’apprentissage), car l’outil utilise un outil automatisé de recherche de la vitesse d’apprentissage, conformément à l’article de Leslie N. Smith intitulé "Cyclical Learning Rates for Training Neural Networks".

L’outil utilise une partie des données d’entraînement (10 pour cent par défaut) comme jeu de validation. Le paramètre Validation Percentage (Pourcentage de validation) permet d’ajuster la quantité de données d’entraînement à utiliser pour la validation. Pour le modèle Mistral, au moins 50 pour cent des données doivent être réservées à la validation, car Mistral requiert un ensemble d’entraînement plus restreint et s’appuie sur un ensemble de validation plus vaste pour évaluer les performances du modèle.

Par défaut, l’outil utilise une technique d’arrêt prématuré qui provoque l’arrêt de l’entraînement du modèle lorsque ce dernier ne s’améliore plus sur des époques d’entraînement successives. Vous pouvez désactiver ce comportement en désélectionnant le paramètre Arrêter lorsque le modèle ne s’améliore plus.

Vous pouvez également spécifier si les couches de backbone dans le modèle pré-entraîné vont être figées pour que la conception originale des pondérations et des biais soit conservée. Par défaut, les couches de modèle de backbone ne sont pas figées et les pondérations et biais de la valeur Model Backbone (Backbone du modèle) peuvent être modifiées pour correspondre aux modèles d’entraînement. Le traitement est plus long, mais produit généralement de meilleurs résultats.

Souvent, les données de texte contiennent du bruit sous la forme de balises HTML et d’URL. Vous pouvez utiliser les paramètres Supprimer les balises HTML et Supprimer les URL pour prétraiter le texte et retirer les balises avant le traitement.

Bibliographie

Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin. "Attention Is All You Need." 6 décembre 2017. https://arxiv.org/abs/1706.03762.

Raffel, Colin. et al. "Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer." 20 juillet 2020. https://doi.org/10.48550/arxiv.1910.10683.

"Encoder models." https://huggingface.co/course/chapter1/5?fw=pt.

Brown, Tom B. et al. "Language Models are Few-Shot Learners." 22 juillet 2020. https://doi.org/10.48550/arxiv.2005.14165.

Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks." 4 avril 2017. https://doi.org/10.48550/arxiv.1506.01186.

"Mistral." https://docs.mistral.ai/getting-started/open_weight_models/.