- API-Dokumentation
- Einleitung
- Verwenden der API
- API-Tutorial
- Zusammenfassung
- Quellen
- Datasets
- Anmerkungen
- Anhänge (Attachments)
- Vorhersagen
- Erstellen Sie einen Stream
- Aktualisieren Sie einen Stream
- Rufen Sie einen Stream nach Namen ab
- Rufen Sie alle Streams ab
- Löschen Sie einen Stream
- Ergebnisse aus Stream abrufen
- Kommentare aus einem Stream abrufen (Legacy)
- Bringen Sie einen Stream vor
- Einen Stream zurücksetzen
- Kennzeichnen Sie eine Ausnahme
- Entfernen Sie das Tag einer Ausnahme
- Prüfungsereignisse
- Alle Benutzer abrufen
- CLI
- Integrationsleitfäden
- Exchange Integration mit einem Azure-Dienstbenutzer
- Exchange-Integration mit der Azure-Anwendungsauthentifizierung
- Echtzeit-Automatisierung
- Abrufen von Daten für Tableau mit Python
- Elasticsearch-Integration
- Selbst gehostete EWS-Integration
- UiPath Automatisierungs-Framework
- UiPath Marketplace-Aktivitäten
- offizielle UiPath-Aktivitäten
- Blog
- Wie Maschinen lernen, Wörter zu verstehen: eine Anleitung zu Einbettungen in NLP
- Eingabeaufforderungsbasiertes Lernen mit Transformers
- Ef Robots II: Wissensdegesterration und Feinabstimmung
- Effiziente Transformer I: Warnmechanismen
- Tief hierarchische, nicht überwachte Absichtsmodellierung: Nutzen ohne Trainingsdaten
- Beheben der Anmerkungsverzerrung durch Communications Mining
- Aktives Lernen: Bessere ML-Modelle in weniger Zeit
- Auf Zahlen kommt es an – Bewertung der Modellleistung mit Metriken
- Darum ist Modellvalidierung wichtig
- Vergleich von Communications Mining und Google AutoML für die Ermittlung von Konversationsdaten
Communications Mining-Entwicklerhandbuch
Effiziente Transformer I: Warnmechanismen
Das Geschäft läuft über die Kommunikation. Kunden melden sich, wenn sie etwas brauchen. Kollegen vernetzen sich, um ihre Arbeit zu erledigen. Unsere Vision bei Communications Mining besteht darin, die Ökonomie der Servicearbeit im Unternehmen grundlegend zu verändern – den Wert jeder Interaktion zu erschließen und den Service effizient und skalierbar zu machen. Dies erreichen wir, indem wir den Zugang zu hochmodernen NLP und NLU demokratisieren.
Insbesondere verwenden die Modelle von Communications Mining Deep Learning-Architekturen namens Transformers. Transformer ermöglichen enorme Verbesserungen der NLU-Leistung. Sie sind jedoch auch sehr rechenintensiv – sowohl beim Training der Modelle zum Erlernen neuer Konzepte als auch bei deren Verwendung für Vorhersagen. In dieser zweiteiligen Serie werden mehrere Techniken vorgestellt, um die Geschwindigkeit zu erhöhen und die Rechenkosten für die Verwendung dieser großen Transformer-Architekturen zu reduzieren.
Dieser Beitrag wird:
- Präsentieren Sie eine kurze Entwicklung der Einbettung von Modellen in NLP.
- Beschreiben Sie, warum der Self-Attention-Mechanismus des Transformers einen hohen Rechenaufwand hat.
- Überprüfen Sie Änderungen der klassischen Transformer-Architektur, die recheneffizienter zu trainieren und auszuführen sind, ohne die Leistung erheblich zu beeinträchtigen.
Im nächsten Beitrag werden zusätzliche Berechnungs- und Näherungstechniken behandelt, die zu weiteren Effizienzsteigerungen führen. Der nächste Beitrag:
- Erkunden Sie Deaktivierungstechniken, bei denen kleinere Modelle trainiert werden, um die Leistung größerer Modelle zu nähern.
- Erklären Sie effiziente Feinabstimmungstechniken, bei denen Parameteraktualisierungen eingeschränkt sind.
- Geben Sie unsere Empfehlungen für die Verwendung jeder dieser Methoden.
In den letzten zehn Jahren sind NLP-Methoden bei der Lösung einer Vielzahl von Aufgaben erheblich besser geworden. Dies ist zum großen Teil auf eine Verlagerung von manuell geführten, auf Feature-Engineering basierenden Ansätzen hin zu Methoden, die auf Machine Learning basieren, zurückzuführen. Die größten Leistungsverbesserungen sind auf Fortschritte beim nicht überwachten vortrainierten Lernen der semantischen Darstellung zurückzuführen. Dabei wird ein Modell trainiert, das Sequenzen in natürlicher Sprache abbildet (z. B Wörter, Sätze) zu Vektoren (Zahlenfolgen), die ihre semantische Bedeutung darstellen. Diese Vektoren können dann verwendet werden, um die Aufgabe von Interesse auszuführen, z. B Absichtserkennung, Stimmungsklassifizierung, benannte allgemeine Felderkennung usw.
Worteinbettungen
Der Paradigmenwechsel begann in den 2010er-Jahren mit Methoden zur Worteinbettung wie Word2vec und Global. Diese Techniken verwenden große Datasets in natürlicher Sprache, um Einbettungen (ein anderes Wort für Vektoren) von Wörtern auf unbeaufsichtigte Weise zu lernen. Die Einbettungen codieren semantische Informationen basierend auf den Kontexten, in denen die Wörter häufig vorkommen. Beispielsweise kommt das Wort „Computer“ häufig neben Wörtern wie „Tastatur“, „Software“ und „Internet“ vor; Diese gemeinsamen benachbarten Wörter verkörpern die Informationen, die durch die Einbettung von „computer“ codiert werden sollen.
Klassische Worteinbettungen haben einen wesentlichen Nachteil: Sie sind statisch, d. h. die Einbettung eines bestimmten Wortes ist immer gleich. Denken Sie zum Beispiel an das Wort „Bank“ – dies kann sich auf das Flussufer oder auf ein Finanzinstitut beziehen; die Einbettung müsste beide Bedeutungen codieren.
Kontextbezogene Einbettungen
Um diese Schwachstelle zu beheben, wurden Methoden für die kontextbezogene Einbettung entwickelt. Diese haben je nach Sequence eine unterschiedliche Einbettung für jedes Wort (z. B Satz, Dokument), in dem er vorkommt. Diese Arbeit hat alles verändert; Es ist jetzt äußerst selten, moderne Methoden zu finden, die nicht auf kontextbezogenen Einbettungen angewiesen sind.
Eine der ersten gängigen Techniken zur kontextbezogenen Einbettung war ElMo, bei der ein RNN-Modell (Recurrent Neural Network) auf einem großen Korpus in natürlicher Sprache unter Verwendung eines Vorhersageziels für das nächste Wort vortrainiert wird. Die internen Darstellungen dieses Modells werden dann als Eingaben für (normalerweise kleine) Modelle zur Durchführung überwachter Aufgaben verwendet. Seinerzeit wurde dieser Ansatz bei mehreren Aufgaben erheblich gegenüber dem vorherigen Stand der Technik verbessert.
RNNs verarbeiten jedes Wort in einer Sequence nacheinander, daher können sie bei langen Dokumenten langsam sein. Infolgedessen sind Modelle wie BERT und RoBERTa zu den bevorzugten Ansätzen geworden, die die wiederkehrende Komponente von ElMo durch den benutzerfreundlicheren Transformer für parallele Berechnungen ersetzen. Diese Modelle werden in der Regel mit einem maskierten Sprachmodellierungsziel vortrainiert – eine Teilmenge von Wörtern in einer Sequence wird entfernt, und das Modell hat die Aufgabe, die fehlenden Wörter vorherzusagen.
Moderne Transformer-basierte Sprachmodelle sind jedoch im Allgemeinen sehr umfangreich – sie können Milliarden von Parametern enthalten und sind sehr rechenintensiv in der Ausführung. Der typische Workflow sieht folgendermaßen aus:
- Trainieren Sie das Sprachmodell an einem generischen Dataset ohne Anmerkungen vor.
- Trainieren Sie das Sprachmodell außerdem auf einem domänenspezifischen Dataset ohne Anmerkungen.
- Optimieren Sie das Sprachmodell mithilfe von mit Anmerkungen versehenen Daten, um die überwachte Aufgabe von Interesse auszuführen.
Obwohl der erste dieser Schritte in der Regel einmalige Kosten verursacht, sind dies die beiden letzten nicht. Und während die Rechenleistung niedriger wird, werden die Transformer-Architekturen größer. Das bedeutet, dass die Kosten für hochmoderne Leistung nicht unbedingt sinken.
Daher wird in diesem Beitrag eine Reihe von Techniken vorgestellt, die den Rechenaufwand reduzieren und gleichzeitig die Auswirkungen auf die Leistung minimieren.
Die Transformer-Architektur beginnt mit einer lernbaren Einbettungsschicht. Jede nachfolgende Ebene erstellt ihre internen Darstellungen mithilfe eines „Selbst-Attended“-Mechanismus, d. h. die Darstellung für jedes Wort betrachtet jedes andere Wort in der Sequence (ein Beispiel finden Sie in Abbildung 1). Jede Self-Attention-Ebene umfasst mehrere „Heads“ (jeder Head erledigt seine eigene Selbst-Attended-Aufgabe).
Diese werden zu den NxD-Matrizen Q, K und V bzw. V verkettet. Die Attended-Matrix wird wie folgt berechnet:
Die Ausgabe der Selbstaufmerkbarkeitsebene wird dann wie folgt berechnet:
Die endgültige Ausgabe für jede Ebene wird berechnet, indem die Self-Attended-Ausgaben für jeden Kopf verkettet und diese über ein kleines Feedforward-Netzwerk eingespeist werden.
Obwohl die Berechnung (im Gegensatz zu RNNs) parallel durchgeführt werden kann, zeigt Abbildung 1, dass N2 Selbstaufmerkmal-Operationen für eine Sequence mit N Wörtern durchgeführt werden müssen. Das heißt, die Rechenkomplexität skaliert quadratisch mit der Satzlänge. Wenn man bedenkt, dass moderne Übertrager Dutzende von Ebenen mit jeweils Dutzenden von Headern und Tausenden von Dimensionen verwenden, müssen Sie viele Operationen durchführen, selbst für eine einzelne Sequence.
Natürlich zielt eine Reihe von Forschungsarbeiten darauf ab, diese N2-Kompliziertheit durch einfachere Self-Attended-Mechanismen zu reduzieren. Dies ist das umfangreichste Forschungsfeld zu effizienten Transformer-Architekturen. Einige gängige Ansätze werden unten beschrieben; eine umfassendere Abdeckung finden Sie in diesem Übersichtsartikel .
Achten Sie Block für Block
Eine Möglichkeit, die Anzahl der Vorgänge zu reduzieren, besteht darin, einzuschränken, wie viele Wörter in der Sequence der Selbstaufmerkhaltungsmechanismus betrachtet. BlockBERT segmentiert dazu die Sequence in Teile. Bei einem bestimmten Achten-Head betrachtet der Aufmerksamkeitsmechanismus innerhalb eines Abschnitts nur die Wörter innerhalb eines der Abschnitte (ein Beispiel finden Sie in Abbildung 2). Jeder Aufmerksamkeitskopf auf jeder Ebene pervertiert die Teile, die der Aufmerksamkeitsmechanismus betrachtet. Das bedeutet, dass nach Dutzenden von Ebenen die Einbettung für jedes Wort wahrscheinlich die gesamte Sequence umfasst hat. Je nach Modellgröße ist BlockBERT im Vergleich zu RoBERTa 12 %–25 % schneller im Training, benötigt 19 %–36 % weniger Speicher und schneidet bei der Beantwortung von Fragen fast ebenso gut ab (F1-Punktzahl sind ca. 0,8 Punkte niedriger bei SQuAD 2.0). ).
Kombinieren mehrerer Aufmerksamkeitsmuster
In ähnlicher Weise schränkt der Longformer auch ein, wie viele Wörter der Selbstaufmerkmal-Mechanismus betrachtet. Dazu werden mehrere einfache Achtungsmuster kombiniert (ein Beispiel finden Sie in Abbildung 3).
- Schiebefenster
- Achten Sie nur auf die k benachbarten Wörter.
- Erweitertes Schiebefenster
- Achten Sie auf jedes l-te Wort bis zu einem vordefinierten Grenzwert.
- Globale Aufmerksamkeit
- Achten Sie an einigen vorab ausgewählten Positionen auf die gesamte Sequence.
- Achten Sie an jeder Position auf die vorab ausgewählten Positionen.
Bei dieser Kombination von Aufmerksamkeitsmustern hat die Einbettung für jedes Wort nach mehreren Ebenen wahrscheinlich die gesamte Sequence umfasst. Insbesondere bei langen Sequences ist der Longformer viel schneller und verbraucht weniger Speicher als RoBERTa. Überraschenderweise übertrifft der Longformer RoBERTa bei einer Vielzahl von Aufgaben – Beantworten von Fragen, Koreferenzauflösung und Stimmungsklassifizierung.
BiBder ist ein weiterer bekannter Ansatz und dem Longformer sehr ähnlich. Allerdings wird anstelle des erweiterten Schiebefensters ein Muster mit zufälliger Aufmerksamkeit verwendet (d. h. jede Darstellung kümmert sich um eine feste Anzahl zufälliger Wörter in der Sequence).
Es wird eine Annäherung mit niedriger Stufe verwendet
Ein anderer Ansatz als der bisher vorgestellte ist der Linux- Linformer, der auf dem Theoretischen Ergebnis basiert, dass der Selbstaufmerkhaltungsvorgang einen niedrigen Rang hat. Der LinuxInformer projiziert die Schlüssel- und Wertmatrizen (K und V) linear nach unten, während sich die Längendimension auf eine kürzere Sequence (feste Länge) ändert, auf die die volle Aufmerksamkeit angewendet werden kann (ein Beispiel finden Sie in Abbildung 4). Im Vergleich zur Standard-Security-Automation ist der Linker bei kurzen Sequences 1,3–3-mal schneller und bei langen Sequences 3–20-mal schneller in der Ausführung. Bei einer Vielzahl von Textklassifizierungsaufgaben ist die Leistung ähnlich (und bei bestimmten Aufgaben etwas besser als) RoBERTa.
In dieser zweiteiligen Serie wird untersucht, wie modernes NLP effizienter gestaltet werden kann, indem Modifikationen der gängigen, aber rechenintensiven Sprachmodellierungstechniken auf Transformer-Basis erkundet werden. Dieser Beitrag:
- Präsentation einer kurzen Entwicklung im Bereich des Lernens der semantischen Darstellung in NLP, einschließlich traditioneller Worteinbettungen und kontextbezogener Einbettungsmodelle.
- Es wurde der Self-Attention-Mechanismus erklärt, der das Herzstück der Transformer-Architektur ist, und warum er rechenintensiv in der Ausführung ist.
- Erkundung alternativer Beobachtungsmechanismen, die rechnungsmäßig effizienter sind, ohne die Leistung zu beeinträchtigen.
Im nächsten Beitrag geht es um:
- Eine Übersicht über Methoden, die kleine Modelle trainieren, um die Ausgaben großer Modelle zu reproduzieren.
- So werden Sprachmodelle auf Parameter-effiziente Weise optimiert.
- Unsere Empfehlungen für Szenarien, in denen die verschiedenen effizienten Transformer-Ansätze zum Einsatz kommen sollten.
Wenn Sie Communications Mining in Ihrem Unternehmen ausprobieren möchten, melden Sie sich für eine Testversion an oder sehen Sie sich die Demo an.