- 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
Ef Robots II: Wissensdegesterration und Feinabstimmung
In diesem zweiteiligen Beitrag wird untersucht, wie modernes NLP effizienter gestaltet werden kann, indem Modifikationen der gängigen, aber rechenintensiven Transformer-basierten Sprachmodellierungstechniken erkundet werden.
Der vorherige Beitrag:
- Es wurde erklärt, warum der Self-Attention-Mechanismus des Transformers einen hohen Rechenaufwand aufweist.
- Präsentation alternativer Überwachungsmechanismen, die effizienter in der Ausführung sind, ohne die Leistung erheblich zu beeinträchtigen.
Dieser Beitrag wird:
- Erkunden Sie Methoden, die kleine Modelle trainieren, um die Ausgaben großer Modelle zu reproduzieren.
- Erläutern Sie, wie Sprachmodelle effizient angepasst werden können.
- Geben Sie unsere Empfehlungen für Szenarien ab, in denen die verschiedenen effizienten Transformer-Ansätze verwendet werden sollten.
Der vorherige Beitrag enthielt eine kurze Einführung in die Entwicklung der semantischen Darstellung in NLP und einen Überblick über die Funktionsweise des Selbstaufmerkhaltungsmechanismus des Transformers. Wir empfehlen, zuerst diese Abschnitte für Leser zu lesen, die möglicherweise nicht vertraut sind. In diesem Beitrag werden auch einige der Notationen verwendet, die im vorherigen Beitrag eingeführt wurden.
Wissensdegesterierung ist ein Forschungsbereich zu effizienteren Transformern, der kleine Modelle (Schüler) trainiert, indem sie dazu angehalten werden, die Ausgaben großer Modelle (Lehrer) zu reproduzieren. Das ist eine Technik, die ursprünglich bei Klassifizierungsaufgaben in Computer Vision Verwendung gefunden hat, aber in mehreren Bereichen erfolgreich angewendet wurde, darunter auch NLP. Der typische Workflow sieht folgendermaßen aus:
- Trainieren Sie ein großes Modell mit generischen beschrifteten Daten.
- Trainieren Sie ein kleines Modell, um das große Modell mithilfe von aufgabenspezifischen Daten ohne Anmerkungen (und aufgabenspezifischer Daten mit Anmerkungen, falls verfügbar) zu imitieren.
Obwohl dieser Prozess immer noch das Training eines großen Modells beinhaltet, sind dies einmalige Kosten. Die häufigere Aufgabe, Vorhersagen zu treffen, wird das kleine Modell übernehmen, das deutlich effizienter in der Ausführung ist. Daher ist die Wissensdegesterierung eine besonders beliebte Technik für die Ausführung von Machine Learning in Umgebungen mit eingeschränkter Hardware, z. B. auf Mobilgeräten.
Betrachten wir ein Dokument x und eine Klassenbezeichnung y, wobei die Klassenbezeichnung zu einer von C Kategorien gehört (d. h y∈{1,2,…,C}). Geben Sie die Wahrscheinlichkeit an, mit der ein großes Modell f vorhersagt, dass Dokument x die Klassenbezeichnung y=c als p(c;f(x)) hat. Diese Wahrscheinlichkeit wird normalerweise mit einer Funktion des Formulars:
wobei I(c;y)=1 wenn y=c andernfalls 0 ist.
Beispiele für Zielfunktionen:
- Ein Ziel im Stil der maximalen Wahrscheinlichkeit:
- Dies entspricht der Minimierung der ML-Divergenz zwischen p(c;f) und p(c;g).
- Der negative mittlere Fehler (MSE) zwischen Protokollen:
Aufgabenspezifische Deaktivierung
Das biLSTM-SOFT- Modell führt eine aufgabenspezifische Deaktivierung durch, indem es versucht, die Vorhersagen eines bereits fein eingestellten BERT -Modells für Klassifizierungsaufgaben zu reproduzieren. Für das Teilnehmermodell wird ein einschichtiger bidirektionaler LSTM verwendet. Obwohl es sich um ein wiederkehrendes Modell handelt, ist es schnell in der Ausführung, da es nur eine Ebene hat.
Das Deaktivierungsziel ist die negative MSE zwischen den Protokollen des Lernenden und des Dozenten. Die Ausführung ist über 400-mal schneller als das BERT-Modell, aus dem es extrahiert wurde, aber die Genauigkeit/F1-Punkte sind um 4–7 Punkte schlechter (je nach Aufgabe).
Delegierung während des Vortrainings
Bisher wurde in diesem Beitrag die Wissensdegesterierung im Kontext von überwachtem Lernen vorgestellt, da sie in diesem Bereich am häufigsten verwendet wird. DisstilBERT führt jedoch sowohl in der Phase vor dem Training des Sprachmodells als auch in der Phase der Feinabstimmung eine Wissensdegesterierung durch.
Wie im Abschnitt „ Hintergrund “ des vorherigen Beitrags erläutert, wird BERT mithilfe von maskierter Sprachmodellierung vortrainiert. DisstilBERT behandelt die fehlenden Wörter als Klassenbezeichnungen und verwendet die Deaktivierungszielfunktion des Stils der maximalen Wahrscheinlichkeit. Es verwendet die von BERT vorhergesagten Wahrscheinlichkeitsverteilungen für die fehlenden Wörter als qualitative Ziele für das Deaktivierungsziel. Die Autoren fügen auch ein Cosinus-Einbettungsziel hinzu, das das kleine Modell dazu anhält, die Richtungen seiner Einbettungen an den von BERT erzeugten auszurichten.
DisstilBERT verwendet die gleiche grundlegende Architektur wie BERT, hat aber halb so viele Ebenen und ist etwa 38 % schneller in der Ausführung. Wenn es nur während des Vortrainings deklariert wird, behält es 97 % der Leistung von BERT bei. Die Verfasser stellten auch fest, dass die aufgabenspezifische Deaktivierung während der Feinabstimmung (mit einem BERT-Modell, das ebenfalls für dieselbe Aufgabe optimiert wurde) die Leistung zusätzlich steigerte.
Ausnutzen der Transformer-Architektur
WinzigBERT ist ein Ansatz, der DisstilBERT ähnelt, da er die Wissensdegesterierung sowohl in der Phase vor dem Training des Sprachmodells als auch in der Phase der Feinabstimmung durchführt. aber Daten aus den Zwischendarstellungen von BERT werden direkt übernommen (nicht nur aus den Endausgaben), indem Funktionen der Transformer-Architektur speziell ausgenutzt werden.
Wie bei DistilBERT verwendet BoobT die gleiche Architektur wie BERT, aber mit weniger Schichten. Zunächst wird eine Zuordnung von jeder Ebene des Lerner-Modells zu einer Ebene des Master-Modells definiert, d. h. jede Studio-Ebene wird einer Assistant-Ebene zugeordnet. Dann wird je nach Teilnehmerebene eine von drei Deaktivierungszielfunktionen verwendet:
- Einbetten von Ebenen
- Minimiert die MSE zwischen den Einbettungsmatrizen des Lernenden und des Dozenten.
- Achtung-Ebenen
- Minimiert die MSE zwischen den Matrizen der Aufmerksamkeit des Benutzers und des Benutzers (A in Gleichung (4) im vorherigen Beitrag) sowie die MSE zwischen den Ausgaben der Feedforward-Ebenen durch die Benutzer und Benutzer, die dem Selbstaufmerkungsvorgang folgen.
- Letzte Ebene (Vorhersage).
- Verwendet das Deaktivierungsziel der maximalen Wahrscheinlichkeit, um zu versuchen, den vorhergesagten Wahrscheinlichkeiten des Teilnehmers und des Dozenten zu entsprechen. Dies ist dasselbe wie DisstilBERT.
Im Vergleich zu dem BERT-Modell, aus dem es extrahiert wurde, ist WinyBERT 2- bis 9-mal schneller in der Ausführung (abhängig von der Anzahl der Ebenen und den Größen der ausgeblendeten Zustände). Es übertrifft DisstilBERT bei einer Vielzahl von Aufgaben durchgängig, was darauf hinweist, dass die Deinstallationsziele auf jeder Ebene im Vergleich zur letzten Ebene hilfreich sind.
Wie im Abschnitt „ Hintergrund “ des vorherigen Beitrags erläutert, besteht der letzte Schritt beim Training großer Sprachmodelle normalerweise in ihrer Feinabstimmung auf die gewünschte Aufgabe. Obwohl diese Phase relativ schnell durchgeführt werden kann, umfasst sie im Allgemeinen immer noch die Aktualisierung aller Parameter des Modells. Das bedeutet, dass die Hardwareanforderungen die gleichen wie für die Phasen vor dem Training sind. Da der Feinabstimmungsschritt in der Regel für jede Aufgabe separat ausgeführt wird, ist dies immer noch eine kostspielige Phase des Trainingsprozesses. Daher geht es in einer anderen Forschungsrichtung darum, die Anzahl der Parameter zu reduzieren, die während der Feinabstimmung aktualisiert werden müssen.
Feinabstimmung einer Teilmenge der Gewichtungen
Eine Möglichkeit, zu vermeiden, dass alle Parameter des Modells aktualisiert werden müssen, besteht einfach darin, einige der Ebenen zu sperren. Lee et al. eine empirische Studie zur Effektivität dieses Ansatzes durchführen. Sie finden, dass das Einfrieren der ersten 9 Ebenen und nur die Feinabstimmung der letzten 3 bei einem 12-schichtigen BERT-Modell bei den meisten Aufgaben mindestens 90 % der Leistung einer vollständigen Feinabstimmung erreicht. Das Einfrieren des gesamten Sprachmodells und das einfache Training der letzten Vorhersageebene führen jedoch bei allen Aufgaben zu einer erheblich schlechteren Leistung.
Aktualisieren nur der Bias-Terms
Die meisten Operationen in den meisten Neuralnetzwerkarchitekturen erfordern die Multiplikation einer Eingabe mit einer Matrix und das anschließende Hinzufügen eines Bias-Terms. Die Art und Weise, wie diese Vorgänge zusammengesetzt sind, definiert die Architektur.
In Transformers machen die Bias-Termine (z. B. die b -Termine in den Gleichungen (1)–(3) im vorherigen Beitrag) weniger als 0,1 % der Gesamtparameter aus. Daher schlägt Bitfit vor, diese nur während der Feinabstimmung zu aktualisieren und die restlichen Parameter einzufrieren. Bei begrenzten, mit Anmerkungen versehenen Trainingsdaten ist Bitfit konkurrenzfähig (und manchmal besser als) bei der Feinabstimmung des gesamten Modells. Bei großen Trainingsdatensätzen ist die Leistung nur geringfügig schlechter als bei der vollständigen Feinabstimmung.
Einfügen kleiner trainierbarer Netzwerke in den Transformer
Ein weiterer Satz parametereffizienter Feinabstimmungsmethoden friert das gesamte vortrainierte Sprachmodell ein, führt jedoch einen kleinen Satz zusätzlicher Parameter ein, die für die Aufgabe von Interesse trainiert werden. Adapter fügen dazu zwei zweischichtige Feedforward-Netzwerke in jede der Transformer-Schichten ein. Sie werden direkt vor und nach dem vorhandenen Feedforward-Netzwerk eingefügt, das dem Self-Attention-Mechanismus folgt. Die 2 Ebenen führen die folgenden Vorgänge durch:
- Die erste Ebene projiziert den ausgeblendeten Zustand des Transformers auf einen niedrigdimensionalen Roboter und wendet eine Nichtlinearität an.
- Die zweite Ebene projiziert den niedrigdimensionalen Symbol zurück auf die Größe des ausgeblendeten Zustands des Transformers.
Die Idee dahinter ist, dass das Einfügen von lernfähigen Parametern in die gesamte Transformer-Architektur (statt nur das Training der letzten Vorhersageebene) es dem Modell ermöglicht, seine internen Darstellungen auf die gleiche Weise wie bei der Feinabstimmung anzupassen, aber auf eine viel effizientere Weise. Die Adapterabstimmung ist nur ca. 0,4 % schlechter als die vollständige Feinabstimmung, mit nur 3,6 % der trainierten Parameter.
Diese beiden Beiträge haben mehrere verschiedene effiziente Transformer-Methoden behandelt. Wann könnte es angemessen sein, sie zu verwenden?
- Wenn Sie mit besonders langen Dokumenten arbeiten, empfehlen wir die Verwendung eines effizienten Warnmechanismus, wie z. B. der im vorherigen Beitrag beschriebene. Dadurch werden sowohl die Vortrainings- als auch die Inferenzzeiten reduziert. Die Leistung kann sogar besser sein, als die volle Aufmerksamkeit zu verwenden.
- Wenn Ihr Engpass im Arbeitsspeicher liegt (d. h. selbst ein Batch von kurzen Dokumenten verursacht Fehler außerhalb des Arbeitsspeichers), versuchen Sie es mit einem dedizierten Modell (z. B kleineBERT). Mit weniger Ebenen und niedrigerdimensionalen Darstellungen wird der Speicherbedarf des Modells reduziert und gleichzeitig schneller zu trainieren sein.
- Denken Sie jedoch daran, dass deklarierte Modelle immer noch ein vortrainiertes Modell in voller Größe erfordern, von dem Sie lernen können, und dass sie im Allgemeinen besser funktionieren, wenn sie sowohl während des Vortrainings als auch bei der Feinabstimmung deklariert werden.
- Wenn Sie in der Phase der Feinabstimmung nur begrenzte mit Anmerkungen versehene Daten haben, können Sie eine Feinabstimmungsmethode verwenden, bei der die meisten/alle Sprachmodellparameter eingefroren werden (z. B Adapter) verringert das Risiko einer Überanpassung und sollte in der Regel besser funktionieren als die Feinabstimmung des gesamten Modells.
- Wenn Sie viele überwachte nachgelagerte Aufgaben haben, empfehlen wir die Verwendung einer effizienten Feinabstimmungsmethode. Dadurch wird die Anzahl der Parameter reduziert, die für jede Aufgabe trainiert und gespeichert werden müssen.
- Obwohl die effizienten Feinabstimmungsmethoden möglicherweise schneller zu trainieren sind als die vollständige Feinabstimmung, verbessern sie im Allgemeinen nicht die Inferenzgeschwindigkeit (d. h Abrufen von Vorhersagen von einem trainierten Modell). Tatsächlich können einige von ihnen aufgrund des Einfügens zusätzlicher Ebenen für die Inferenz etwas langsamer sein.
In dieser zweiteiligen Serie geht es darum, wie man moderne Verarbeitung natürlicher Sprache (Natural Language Processing) allgemein zugänglich machen kann, indem effiziente Alternativen zu den beliebten aber rechenintensiven Transformer-basierten Sprachmodellierungstechniken erkundet werden.
Der vorherige Beitrag:
- Es wurde erklärt, warum der Self-Attention-Mechanismus des Transformers einen hohen Rechenaufwand aufweist.
- Präsentation alternativer Überwachungsmechanismen, die effizienter in der Ausführung sind, ohne die Leistung erheblich zu beeinträchtigen.
Dieser Beitrag:
- Es wurden Techniken zur Wissensdegesterierung erörtert, die kleine, effiziente Modelle trainieren, indem sie dazu angeregt werden, die Ausgaben ihrer größeren Pendants zu reproduzieren.
- Es wurden effiziente Methoden zur Feinabstimmung von Sprachmodellen erkundet, indem die Anzahl der zu aktualisierenden Parameter reduziert wurde.
- Bereitstellung unserer Empfehlungen für Szenarien, in denen die verschiedenen effizienten Transformer-Ansätze zu verwenden sind.
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.