- 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
Eingabeaufforderungsbasiertes Lernen mit Transformers
Die Machine-Learning-Modelle von Communications Mining verwenden eine Architektur namens Transformer, die in den letzten Jahren bei den meisten gängigen NLP-Aufgaben (Natural Language Processing) modernste Ergebnisse erzielt hat. Der Ansatz besteht darin, ein vortrainiertes Transformer-Sprachmodell zu nehmen und es auf die gewünschte Aufgabe abzustimmen.
In letzter Zeit haben wir uns mit dem „Auffordern“ befasst – einer erfolgsversprechenden Gruppe von Methoden, die sich immer größerer Beliebtheit erholen. Dabei wird die Aufgabe direkt in natürlicher Sprache angegeben, damit das vortrainierte Sprachmodell interpretiert und abgeschlossen werden kann.
Eingabeaufforderungsbasierte Methoden haben erhebliche potenzielle Vorteile – sollten Sie sie also verwenden? Dieser Beitrag wird:
- Veranschaulichen Sie den Unterschied zwischen traditioneller Feinabstimmung und Eingabeaufforderung.
- Erklären Sie die Einzelheiten der Funktionsweise einiger gängiger aufforderungsbasierter Methoden.
- Diskutieren Sie die Vor- und Nachteile von aufforderungsbasierten Methoden und geben Sie unsere Empfehlung ab, ob sie zu verwenden sind oder nicht.
In den letzten Jahren hat sich der Bereich NLP von der Verwendung vortrainierter statischer Worteinbettungen wie Word2vec undGloVe hin zur Verwendung großer Transformer-basierter Sprachmodelle wie BERT und GPT-3 verlagert.
Diese Sprachmodelle werden zunächst mithilfe von nicht annotierten Daten vortrainiert, mit dem Ziel, die semantische Bedeutung von Text-Sequences codieren zu können (z. B Sätze/Dokumente). Das Ziel des Vortrainings besteht darin, Darstellungen zu lernen, die im Allgemeinen für jede nachgelagerte Aufgabe nützlich sind.
Nach dem Vortraining wird das Sprachmodell in der Regel für eine nachgelagerte Aufgabe fein eingestellt (d. h. die vortrainierten Parameter werden weiter trainiert), z. B Absichtserkennung, Stimmungsklassifizierung, benannte allgemeine Felderkennung usw. Der Feinabstimmungsprozess erfordert mit Anmerkungen versehene Trainingsdaten, und das Modell wird für jede Aufgabe separat fein eingestellt.
Vor dem Training
Transformer funktionieren, indem zunächst jedes Wort in einer Text-Sequence als Zahlenvektor codiert wird, was als „Einbettung“ bezeichnet wird. Auf die Einbettungsebene folgt dann eine Sequence von Warnungsebenen, die zum Erstellen der internen Darstellungen der Sequence durch das Modell verwendet werden. Schließlich gibt es noch die Vorhersageebene, deren Zielfunktion von der Art des verwendeten Vortrainings abhängt.
Transformer werden auf unbeaufsichtigte Weise vortrainiert. Dieser Schritt wird meistens mit einer von zwei Trainingsarten durchgeführt:
- Maskierte Sprachmodellierung (ein Beispiel ist in Abbildung 1 dargestellt)
- Einige zufällig ausgewählte Wörter werden aus der Sequence entfernt und das Modell wird trainiert, um diese fehlenden Wörter vorherzusagen.
- Vorhersage des nächsten Wortes (ein Beispiel ist in Abbildung 2 dargestellt)
- Das Modell muss jedes Wort in der Sequence vorhersagen, abhängig von den vorangegangenen.
Feinabstimmung
Nachdem das Modell vortrainiert wurde, wird es für eine nachgelagerte, überwachte Aufgabe fein eingestellt (z. B Absichtserkennung). Dabei wird normalerweise die Darstellung am letzten Schritt einer Sequence (oder der Mittelwert der Darstellungen) durch ein kleines Feedforward-Netzwerk geleitet, um eine Vorhersage zu treffen (ein Beispiel finden Sie in Abbildung 3). Meist werden die Parameter sowohl des vortrainierten Sprachmodells als auch des Feedforward-Modells während des Feinabstimmungsprozesses aktualisiert.
Angenommen, wir haben ein vortrainiertes Sprachmodell, mit dem wir eine nachgelagerte Aufgabe ausführen möchten. Anstatt die Darstellungen aus dem Sprachmodell als Eingaben in ein anderes Modell zur Lösung der Aufgabe zu verwenden (wie oben beschrieben), könnten wir dessen Fähigkeit, natürliche Sprache zu modellieren, direkt nutzen, indem wir ihm eine „Eingabeaufforderung“ geben und es veranlassen, die Leerzeichen bzw um die Sequence abzuschließen (ein Beispiel ist in Abbildung 4 dargestellt).
Es ist auch möglich, Beispiele in der Eingabeaufforderung bereitzustellen, um dem Modell zu zeigen, wie die Aufgabe abgeschlossen werden soll (ein Beispiel finden Sie in Abbildung 5). Dies wird als K – Write Learning bezeichnet, wobei sich K auf die Anzahl der bereitgestellten Beispiele bezieht. Dies bedeutet, dass Abbildung 4 ein Beispiel für Null-Sshot-Lernen ist.
Bei der Verwendung von Eingabeaufforderungen kann das Modell noch fein eingestellt werden (auf die gleiche Weise wie oben beschrieben), aber wie wir unten sehen werden, ist dies oft nicht erforderlich.
Im weiteren Verlauf dieses Abschnitts werden einige beliebte aufforderungsbasierte Methoden beschrieben. eine umfassendere Abdeckung finden Sie in diesem Übersichtsartikel .
GPT-3
GPT-3 ist ein umfangreiches, Transformer-basiertes Sprachmodell, das mithilfe des Vorhersageziels für das nächste Wort auf einer gefilterten Version des Common Scraping-Datasets trainiert wird. GPT-3 ist nicht nur dafür bekannt, Textsequenzen von bemerkenswert hoher Qualität zu generieren, sondern wird auch verwendet, um überwachte Aufgaben in den Einstellungen Null-Slot, One-Shot und Weniger Aufnahme (10K100) ohne Feinabstimmung auszuführen. Die Autoren trainieren Modelle in verschiedenen Größen, wobei das größte 175 Milliarden Parameter hat.
Insgesamt erzielt GPT-3 gute Ergebnisse in den Einstellungen Null- und One-Shot. Bei der Einstellung von wenigen Treffern bietet sie manchmal eine bessere Leistung als moderne Modelle, obwohl sie möglicherweise bei großen, mit Anmerkungen versehenen Datasets fein eingestellt werden. Bei den meisten Aufgaben verbessert sich die Leistung von GPT-3 sowohl mit der Modellgröße als auch mit der Anzahl der in der Eingabeaufforderung angezeigten Beispiele.
Er hat jedoch auch Probleme mit bestimmten Aufgaben, insbesondere mit denen, die den Vergleich mehrerer Text-Sequences erfordern. Dazu gehören:
- Inferenz natürlicher Sprache
- Das Modell erhält zwei Sätze und muss entscheiden, ob der zweite den ersten beinhaltet, ihm widerspricht oder neutral ist.
- Leseverständnis
- Das Modell erhält einen Absatz und muss Fragen dazu beantworten.
Die Autoren nehmen an, dass dies daran liegt, dass GPT-3 für die Vorhersage des nächsten Worts trainiert wird, d. h. auf eine Weise, die von links nach rechts (statt bidirektional) läuft.
Training zur Musternutzung
Für eine bestimmte Aufgabe definiert Pattern Exploiting Training (PET) eine Reihe von Eingabeaufforderungen mit jeweils genau einem Masken-Token, die einem Sprachmodell unterzogen werden, das mit dem Maskierungs-Sprachmodellierungsziel vortrainiert wurde. Der HAA-Prozess funktioniert wie folgt:
- Optimieren Sie für jede Eingabeaufforderung ein separates Sprachmodell, um ein Set von Modellen für die Aufgabe zu erstellen.
- Verwenden Sie dieses Orchestrator von fein abgestimmten Modellen, um „weiche“ Beschriftungen für einen Satz von Datenpunkten ohne Anmerkungen zu generieren, ähnlich wie bei der Deaktivierung von Wissen.
- Verwenden Sie diese Soft Labels, um ein endgültiges Sprachmodell auf die im Abschnitt über die Feinabstimmung oben definierte Weise abzustimmen (d. h keine Eingabeaufforderungen verwenden).
HAA wurde auch auf die Verwendung von mehreren Masken-Tokens erweitert und funktioniert auch dann gut, wenn die Schritte 2 und 3 oben übersprungen werden (d. h. das Team der fein eingestellten Modelle aus Schritt 1 wird direkt als endgültiges Modell verwendet). Die Autoren verwenden ALBERT als Basis-Masktop-Sprachmodell und evaluieren HAA in der 32-Schuss-Einstellung. Bei den meisten Aufgaben im SuperGLUE -Betrachter bessert er GPT-3 aus, während er nur 0,1 % so viele Parameter hat.
Eingabeaufforderungsabstimmung
Im Gegensatz zu den Methoden, die wir bisher betrachtet haben, werden bei der Eingabeaufforderungsabstimmung die Eingabeaufforderungen, die in das Modell eingespeist werden, nicht manuell entworfen. Stattdessen werden zusätzliche lernbare Einbettungen verwendet, die der Sequence auf der Einbettungsebene direkt vorangestellt sind. Tatsächlich wird dadurch der Schritt des Schreibens der Eingabeaufforderungen in natürlicher Sprache übersprungen und stattdessen kann das Modell die optimale Eingabeaufforderung direkt auf der Einbettungsebene lernen.
Der Ansatz zur Eingabeaufforderung (dargestellt in Abbildung 6) basiert auf dem vortrainierten T5 -Sprachmodell. Dies ähnelt dem ursprünglichen Transformer, der für die Durchführung der Übersetzung entwickelt wurde. Das T5-Modell besteht aus zwei Komponenten:
- Der Encoder ordnet die Eingabe-Sequence mithilfe eines Selbstaufmerkmals-Mechanismus denaus, wobei die lernbaren Eingabeaufforderungseinbettungen auf der ersten Ebene eingefügt werden.
- Der Decoder generiert den Text, um das Beispiel basierend auf den Encoderdarstellungen zu klassifizieren, wobei erneut ein Attended-Mechanismus verwendet wird.
Das Modell wird auf einem vollständigen Dataset mit Anmerkungen für jede Aufgabe fein abgestimmt, aber nur die Eingabeaufforderungseinbettungen werden aktualisiert (der Rest des Modells, das den Großteil der Parameter enthält, wird nach dem Vortraining eingefroren). Die Eingabeaufforderungs-Abstimmung ist besser als GPT-3 mit wenigen Bildern. Das umfangreichste und Eingabeaufforderung-abgestimmte Modell entspricht der Leistung der vollständigen Feinabstimmung.
Aus praktischer Sicht besteht der größte Vorteil von aufforderungsbasierten Methoden darin, dass sie im Allgemeinen mit sehr kleinen Mengen an kommentierten Daten gut funktionieren. Mit GPT-3 ist es beispielsweise möglich, mit nur einem beschrifteten Beispiel eine Leistung auf dem neuesten Stand der Technik bei bestimmten Aufgaben zu erreichen. Obwohl es unpraktisch sein kann, ein Modell von der Größe GPT-3 in vielen Einstellungen auszuführen, ist es möglich, GPT-3 in der Einstellung für wenige Einstellungen mit einem viel kleineren Modell zu übertreffen, indem die HAA-Methode verwendet wird.
Aus Sicht der Modellierung kann festgestellt werden, dass die Verwendung von Eingabeaufforderungen eine natürlichere Möglichkeit ist, vortrainierte Sprachmodelle für nachgelagerte Aufgaben zu nutzen als die herkömmliche Feinabstimmung. Dies liegt daran, dass wir bei der Verwendung von Eingabeaufforderungen das Sprachmodell verwenden, um den Text zu generieren, der eine Aufgabe löst; Dafür wurde es auch im Vortrainingsverfahren trainiert. Im Gegensatz dazu kann die herkömmliche Feinabstimmung ( Abbildung 3) als weniger intuitive Möglichkeit zur Verwendung von Sprachmodellen für nachgelagerte Aufgaben betrachtet werden, da sie ein separates Modell mit einer völlig anderen Zielfunktion als das Vortrainingsverfahren verwendet.
Vorteile von Eingabeaufforderungsbasiertem Lernen
Obwohl Eingabeaufforderungsbasierte Methoden sehr erfolgversprechend sind und bei Aufgaben mit sehr wenigen beschrifteten Beispielen eine gute Leistung erbringen können, haben sie auch bestimmte Nachteile. Zum einen sind Sprachmodelle anfällig für „Halluzinationen“, d. h. sie können Text erzeugen, der unsinnig, voreingenommen oder anzüglich ist. Dadurch können solche Modelle in jeder realen Umgebung unbrauchbar werden. Es ist möglich, den von Sprachmodellen generierten Text einzuschränken. Je nach Aufgabe ist es jedoch möglicherweise nicht immer möglich, einen geeigneten Satz von Einschränkungen anzugeben und gleichzeitig die Leistung beizubehalten.
Ein weiterer Nachteil bei vielen dieser Methoden ist, dass die Eingabeaufforderungen selbst manuell gestaltet sind. Dies ist nicht nur in Bezug auf die Leistung wahrscheinlich nicht optimal, sondern die Auswahl der optimalen Eingabeaufforderung selbst erfordert mit Anmerkungen versehene Validierungsdaten. HAA umgeht dieses Problem durch die Verwendung eines Ganzen von Eingabeaufforderungen. Dies erfordert dann jedoch die Feinabstimmung eines separaten Sprachmodells für jede Eingabeaufforderung. „Soft“-Eingabeaufforderungsmethoden (z. B. Eingabeaufforderungs-Tuning) erfordern keine manuell gestalteten Eingabeaufforderungen, sondern größere Trainings-Datasets.
Methoden wie das oben beschriebene GPT-3 und das aktuelle PaLM- Modell fügen die mit Anmerkungen versehenen Beispiele als Teil der Eingabeaufforderung in natürlicher Sprache ein und führen keine Feinabstimmung des Sprachmodells selbst durch. Obwohl dies in der Lerneinstellung mit wenigen Einstellungen sehr gut funktioniert, kann dies suboptimal sein, wenn eine größere Anzahl von Beispielen mit Anmerkungen verfügbar ist. Dies liegt daran, dass nur eine kleine Anzahl von Beispielen in die Eingabeaufforderung eingefügt werden kann, bevor eine maximale Sequence-Länge erreicht ist. Dadurch wird das Modell auf die Durchführung des Lernens mit wenigen Treffern begrenzt.
In diesem Beitrag haben wir uns mit Eingabeaufforderungen befasst, die auf Eingabeaufforderungen basieren. Dabei wird die Aufgabe direkt in natürlicher Sprache angegeben, damit ein vortrainiertes Sprachmodell interpretiert und abgeschlossen werden kann.
Aufforderungen zeigen viel Potenzial für das Erreichen einer starker Leistung mit sehr wenigen beschrifteten Trainingsbeispielen. Diese Techniken basieren jedoch oft auf von Hand gestalteten Eingabeaufforderungen und können anfällig für Falschmeldungen sein, wodurch sie in der Praxis unsicher werden. Obwohl diese Methoden erfolgsversprechend zu sein scheinen, muss noch eine Menge Forschungsarbeit durchgeführt werden, um sie in die Praxis umsetzbar zu machen.
Bei Communications Mining forschen wir aktiv daran, Eingabeaufforderungen sicher in der Anwendung zu machen, präzise Genauigkeitsschätzungen bereitzustellen und strukturierte, verwertbare Daten zu generieren. Die Ergebnisse dieser Forschungsarbeit erscheinen in Kürze.
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.