Bei der Texttransformation wird eine Textsequenz in eine andere Sequenz mit gleicher oder anderer Länge übersetzt oder konvertiert. Dazu werden Sequenz-in-Sequenz-Modelle (oder Seq2seq-Modelle) aus dem Bereich der Verarbeitung natürlicher Sprache (NLP) verwendet. Das Toolset "Textanalyse" in der Toolbox "GeoAI" enthält Werkzeuge zum Trainieren von Texttransformationsmodellen sowie für die Verwendung der Modelle zum Transformieren von Text aus einer Form in eine andere.
Mit dem Werkzeug Texttransformationsmodell trainieren werden NLP-Modelle für Sequenz-in-Sequenz-Tasks trainiert. Die trainierten Modelle können mit dem Werkzeug Text mit Deep Learning transformieren verwendet werden, um Text auf ähnliche Weise zu transformieren, zu übersetzen oder zusammenzufassen.
Potenzielle Anwendungsbereiche
Das Werkzeug hat folgende potenzielle Anwendungsbereiche:
- Falsche Straßenadressen mit Rechtschreibfehlern und nicht dem Standard entsprechender Formatierung können korrigiert und standardisiert werden. Dadurch kann die Genauigkeit beim Geokodieren dieser Adressen erhöht werden.
- Text in einer Fremdsprache kann übersetzt werden, damit Sie ihn besser verstehen (innerhalb der Grenzen von Maschinenübersetzung) oder weiter verarbeiten können.
- Rechtlich relevante Beschreibungen von Flurstücksgrenzen (wie "Metes and Bounds") können in Polygonzugdateien transformiert und automatisch verarbeitet werden, um die Geometrie von Flurstücken abzuleiten.
Texttransformationsmodelle in ArcGIS basieren auf der von Vaswani et al. in der richtungsweisenden Abhandlung Attention is All you Need vorgeschlagenen Transformer-Architektur. Dadurch werden die Modelle genauer und parallelisierbar, während gleichzeitig weniger beschriftete Daten für das Training benötigt werden.
Intern entsprechen Texttransformationsmodelle in ArcGIS Encoder-Decoder-Modellen. Die Attention-Layer des Encoders erhalten alle Wörter im Eingabetext, aber die Attention-Layer des Decoders können nur auf die Wörter vor dem zu verarbeitenden Wort zugreifen. Anschließend erstellt der Decoder aus den codierten Feature-Repräsentationen die Token-Ausgabesequenz. Einige bekannte Encoder-Decoder-Modelle sind BART und T5.
Encoder und Decoder können folgendermaßen beschrieben werden:
- Encoder: Der Encoder transformiert den Eingabetext in eine numerische Repräsentation in Form von Feature-Vektoren fester Länge. Diese numerische Repräsentation behält die semantische Bedeutung des Eingabetextes bei.
- Decoder: Der Decoder kombiniert die codierten Feature-Vektoren aus dem Encoder mit der Eingabesequenz, sodass eine Token-Ausgabesequenz entsteht.
Texttransformationsmodelle unterstützen darüber hinaus auch das Mistral-Modell-Backbone. Mistral ist ein Large Language Modell, das auf einer Transformer-Architektur basiert und als reines Decoder-Modell verwendet wird. Die Mistral-Architektur zeichnet sich durch folgende Komponenten aus:
- Sliding Window Attention: Verarbeitet lange Texte auf effiziente Weise, indem es diese in kleinere, überlappende Segmente aufteilt und dadurch Rechenaufwand und Speicherauslastung reduziert, wobei wichtige Kontexte erhalten bleiben.
- Grouped-Query Attention: Verbessert die Effizienz, indem ähnliche Abfragen in zusammengefasst werden. Dadurch wird die Anzahl von Aufmerksamkeitsberechnungen reduziert und die Verarbeitung beschleunigt.
- Byte-Fallback BPE (Byte Pair Encoding) Tokenizer: Wandelt Text in Token um, die das Modell verarbeiten kann.
Hinweis:
NLP-Modelle können beim Automatisieren der Analyse großer unstrukturierter Textmengen als effektive Werkzeuge dienen. Stellen Sie wie bei anderen Modelltypen sicher, dass die Modelle auf relevante Tasks mit angemessener menschlicher Überwachung und Transparenz bezüglich des Typs des Modells und der zum Trainieren des Modells verwendeten Trainings-Datasets angewendet werden.
Verwenden von Texttransformationsmodellen
Das Werkzeug Text mit Deep Learning transformieren kann verwendet werden, um ein trainiertes Texttransformationsmodell auf unstrukturierten Text anzuwenden und diesen in eine andere Sprache oder ein anderes Format zu transformieren. Sie können vortrainierte Texttransformationsmodelle aus ArcGIS Living Atlas of the World verwenden oder mit dem Werkzeug Texttransformationsmodell trainieren benutzerdefinierte Modelle trainieren.
Die Eingabe für das Werkzeug Text mit Deep Learning transformieren ist eine Feature-Class oder Tabelle, die zu transformierenden Text enthält. Als Eingabemodell kann eine JSON-Datei mit der Esri Modelldefinition (.emd) oder ein Deep-Learning-Modellpaket (.dlpk) verwendet werden. Das Modell enthält den Pfad zur Deep-Learning-Modelldatei (mit Modellgewichtungen) und andere Modellparameter. Bestimmte Modelle verfügen möglicherweise über zusätzliche Modellargumente. Das Werkzeug erstellt in der Eingabetabelle ein Feld, das den transformierten Text enthält.
Das Werkzeug kann zwar in CPUs ausgeführt werden, aber da Deep Learning rechenintensiv ist, wird für die Verarbeitung ein Grafikprozessor empfohlen. Um dieses Werkzeug mit einem Grafikprozessor auszuführen, legen Sie die Umgebungseinstellung Prozessortyp auf "GPU" fest. Wenn Sie mehrere Grafikprozessoren haben, geben Sie stattdessen die Umgebungseinstellung "GPU-ID" an.
Trainieren von Texttransformationsmodellen
Das Werkzeug Texttransformationsmodell trainieren kann zum Trainieren von NLP-Modellen für Texttransformation verwendet werden. Das Werkzeug verwendet maschinelles Lernen und trainiert das Modell durch Bereitstellen von Trainingsgebieten, die aus Paaren aus Eingabetext und der transformierten Zielausgabe bestehen. Mit dem Mistral-Modell-Backbone verwendet es In-Context-Learning. Es lenkt den Informationsgewinn und die Reaktionen des Modells mithilfe von Eingabeaufforderungen und durch die Bereitstellung von bestimmten Beispielen, anhand derer das gewünschte Ergebnis abgeleitet werden kann. Da das Trainieren von NLP-Modellen rechenintensiv ist, wird dafür ein Grafikprozessor empfohlen.
Die Trainingsdaten werden bereitgestellt in Form einer Eingabetabelle, die ein Textfeld enthält, das als Einflussvariable fungiert, und ein Beschriftungsfeld, das die Zielbeschriftung für jeden Eingabetext in der Tabelle enthält.
Beim Trainieren eines Texttransformationsmodells können Sie das Modell von Grund auf trainieren, ein trainiertes Modell optimieren oder In-Context-Learning verwenden. Im Allgemeinen gelten Sprachmodelle mit Transformer-Architektur als Few-Shot-Learner.
Wenn Sie jedoch Zugriff auf ein vortrainiertes Texttransformationsmodell haben, mit dem ein ähnlicher Task ausgeführt wird, können Sie dieses mit den neuen Trainingsdaten optimieren. Das Optimieren eines vorhandenen Modells ist oft schneller als das Trainieren eines neuen Modells und erfordert außerdem weniger Trainingsgebiete. Stellen Sie beim Optimieren eines vortrainierten Modells sicher, dass Sie das gleiche Backbone-Modell wie für das vortrainierte Modell verwenden.
Als vortrainiertes Modell kann eine Esri Modelldefinitionsdatei oder eine Deep-Learning-Paketdatei verwendet werden. Das Ausgabemodell wird außerdem in diesen Formaten im angegebenen Ordner für das Ausgabemodell gespeichert.
Das Trainieren von Deep-Learning-Modellen ist ein iterativer Prozess, bei dem die Eingabetrainingsdaten mehrmals durch das neuronale Netzwerk geleitet werden. Die einzelnen Trainingsdurchläufe der gesamten Trainingsdaten werden als Epoche bezeichnet. Mit dem Parameter Max. Epochen wird angegeben, wie oft das Modell die Trainingsdaten während des Trainings verarbeitet. Dies hängt vom zu trainierenden Modell, von der Komplexität des Tasks und von der Anzahl der Trainingsgebiete ab. Wenn Sie viele Trainingsgebiete haben, können Sie einen kleinen Wert verwenden. Generell ist es ratsam, wiederholt mit mehreren Epochen zu trainieren, bis der Validierungsverlust kontinuierlich abnimmt.
Mit dem Parameter Modell-Backbone wird das vorkonfigurierte neuronale Netzwerk angegeben, das als Encoder für das Modell dient und mit dem Feature-Repräsentationen des Eingabetextes extrahiert werden. Dieses Modell unterstützt T5-basierte Encoder, die auf der Transformer-Architektur basieren, unter teilweiser Beaufsichtigung mit großen Textmengen vortrainiert wurden und über ein gutes Sprachverständnis verfügen. Der Parameter Modell-Backbone unterstützt darüber hinaus auch das Mistral-LLM (Large Language Model). Mistral ist ein reiner Decoder-Transformer, der Sliding Window Attention für eine effiziente Verarbeitung von langen Texten, Grouped-Query Attention zur Optimierung von Berechnungen und Byte-Fallback BPE Tokenizer für den Umgang mit verschiedenen Texteingaben verwendet.
Das Modell wird in Batches trainiert, und mit dem Parameter Batch-Größe wird angegeben, wie viele Trainingsgebiete jeweils beim Training verarbeitet werden. Durch Erhöhen der Batch-Größe kann die Performance des Werkzeugs verbessert werden. Mit zunehmender Batch-Größe wird jedoch mehr Speicher verwendet. Wenn beim Trainieren des Modells die Fehlermeldung "Nicht genügend Arbeitsspeicher" angezeigt wird, verwenden Sie kleinere Batches.
Der Parameter Lernrate ist einer der wichtigsten Hyperparameter. Es handelt sich dabei um die Rate, mit der die Modellgewichtungen beim Training angepasst werden. Wenn Sie eine niedrige Lernrate angeben, wird das Modell nur langsam verbessert, und das Training kann viel Zeit beanspruchen, sodass Zeit und Ressourcen vergeudet werden. Eine hohe Lernrate kann kontraproduktiv sein und führt möglicherweise nicht zu guten Lernergebnissen. Bei hohen Lernraten können die Modellgewichtungen drastisch angepasst werden und zu fehlerhaften Ergebnissen führen. Oft empfiehlt es sich, keinen Wert für den Parameter Lernrate anzugeben, da das Werkzeug die Lernrate basierend auf der Abhandlung Cyclical Learning Rates for Training Neural Networks von Leslie N. Smith automatisch ermittelt.
Das Werkzeug verwendet einen Teil der Trainingsdaten (standardmäßig 10 Prozent) als Validierungssatz. Mit dem Parameter Validierungsprozentsatz können Sie die Menge der Trainingsdaten anpassen, die für die Validierung verwendet werden sollen. Beim Mistral-Modell müssen mindestens 50 Prozent der Daten für die Validierung reserviert werden, da Mistral zur Bewertung der Modell-Performance zwar einen kleineren Trainingssatz, dafür jedoch einen größeren Validierungssatz benötigt.
Standardmäßig verwendet das Werkzeug eine Methode, bei der das Modelltraining beendet wird, wenn sich das Modell in nachfolgenden Epochen nicht mehr verbessert. Dieses Verhalten können Sie deaktivieren, indem Sie den Parameter Beenden, wenn sich das Modell nicht mehr verbessert deaktivieren.
Sie können auch angeben, ob die Backbone-Layer im vortrainierten Modell fixiert werden sollen, sodass die Gewichtungen und Verzerrungen wie ursprünglich vorgesehen beibehalten werden. Standardmäßig werden die Layer des Backbone-Modells nicht fixiert, und die Gewichtungen und Verzerrungen des Wertes Modell-Backbone können geändert werden, um sie an die Trainingsgebiete anzupassen. Die Verarbeitung dauert zwar länger, führt aber in der Regel zu besseren Ergebnissen.
Textdaten enthalten oft Rauschen in Form von HTML-Tags und URLs. Sie können die Parameter HTML-Tags entfernen und URLs entfernen verwenden, um den Text vorzuverarbeiten und die Tags vor der Verarbeitung zu entfernen.
Referenzen
Vaswani, Ashish, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin. "Attention Is All You Need". 6. Dezember 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. Juli 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. Juli 2020. https://doi.org/10.48550/arxiv.2005.14165.
Smith, Leslie N. "Cyclical Learning Rates for Training Neural Networks". 4. April 2017. https://doi.org/10.48550/arxiv.1506.01186.
"Mistral." https://docs.mistral.ai/getting-started/open_weight_models/.