Beschleunigen Sie mit BERT: NLP-Optimierungsmodelle

Veröffentlicht: 2022-03-11

Beschleunigung von NLP mit BERT: Weltklasse-Ergebnisse mit 100-mal weniger Daten

Beim Erstellen von Deep-Learning-Klassifizierungsmodellen für die Verarbeitung natürlicher Sprache (NLP) gibt es zwei Hauptschwierigkeiten.

  1. Datensammlung (Tausende oder Millionen von klassifizierten Datenpunkten erhalten)
  2. Architektur und Training für Deep Learning

Unsere Fähigkeit, komplexe Deep-Learning-Modelle zu erstellen, die in der Lage sind, die Komplexität von Sprache zu verstehen, erforderte in der Regel jahrelange Erfahrung in diesen Bereichen. Je schwieriger Ihr Problem, je vielfältiger Ihr Output, desto mehr Zeit müssen Sie für jeden dieser Schritte aufwenden.

Die Datenerhebung ist mühsam, zeitaufwändig, teuer und der limitierende Faktor Nummer eins für erfolgreiche NLP-Projekte. Das Vorbereiten von Daten, das Erstellen belastbarer Pipelines, das Treffen von Entscheidungen unter Hunderten von möglichen Vorbereitungsoptionen und das Bereitstellen des „Modells“ kann selbst mit talentierten Ingenieuren für maschinelles Lernen leicht Monate dauern. Schließlich erfordern das Training und die Optimierung von Deep-Learning-Modellen eine Kombination aus intuitivem Verständnis, technischem Fachwissen und der Fähigkeit, an einem Problem festzuhalten.

In diesem Artikel behandeln wir

  1. Trends im Deep Learning für NLP: Wie Transferlernen Weltklasse-Modelle zu Open Source macht
  2. Einführung in BERT: Eine Einführung in das bisher leistungsfähigste NLP-„Werkzeug“ – Bidirektionale Encoderdarstellungen von Transformatoren (BERT)
  3. Wie BERT funktioniert und warum es die Art und Weise verändern wird, wie Unternehmen NLP-Projekte durchführen

Trends im Deep Learning

Natürlich begann die Optimierung dieses Prozesses mit zunehmender Genauigkeit. LSTM-Netzwerke (Long-Short Term Memory) haben viele NLP-Aufgaben revolutioniert, aber sie waren (und sind) unglaublich datenhungrig. Das Optimieren und Trainieren dieser Modelle kann auf großen und teuren Maschinen Tage oder Wochen dauern. Schließlich ist die Bereitstellung dieser großen Modelle in der Produktion kostspielig und umständlich.

Um diese komplexitätserzeugenden Faktoren zu reduzieren, wird im Bereich Computer Vision seit langem auf Transfer Learning zurückgegriffen. Transfer Learning ist die Fähigkeit, ein Modell zu verwenden, das für eine andere, aber ähnliche Aufgabe trainiert wurde, um Ihre Lösung für eine neue zu beschleunigen. Es erfordert weitaus weniger Aufwand, ein Modell neu zu trainieren, das bereits Bäume kategorisieren kann, als ein neues Modell zu trainieren, um Büsche von Grund auf zu erkennen.

Stellen Sie sich ein Szenario vor, in dem jemand noch nie einen Busch, aber viele Bäume in seinem Leben gesehen hat. Sie würden es viel einfacher finden, ihnen zu erklären, wie ein Busch aussieht, in Bezug auf das, was sie über Bäume wissen, als einen Busch von Grund auf neu zu beschreiben. Transferlernen ist eine sehr menschliche Art des Lernens, daher ist es intuitiv sinnvoll, dass dies bei Deep-Learning-Aufgaben funktionieren würde.

BERT bedeutet, dass Sie weniger Daten benötigen, weniger Schulungszeit benötigen und mehr geschäftlichen Nutzen erzielen. Die Qualität von NLP-Produkten, die jedes Unternehmen aufbauen kann, ist Weltklasse geworden.

In kommt BERT

BERT verwendet sogenannte Transformer und ist darauf ausgelegt, Satzkodierungen zu erzeugen. Im Wesentlichen ist BERT ein Sprachmodell, das auf einem bestimmten Deep-Learning-Modell basiert. Es wurde speziell entwickelt, um eine kontextbezogene, numerische Darstellung eines Satzes oder einer Reihe von Sätzen zu geben. Diese digitale Darstellung ist die Eingabe für ein flaches und unkompliziertes Modell. Darüber hinaus sind die Ergebnisse in der Regel überlegen und erfordern einen Bruchteil der Eingabedaten für eine noch zu lösende Aufgabe.

Stellen Sie sich vor, Sie könnten statt eines Jahres einen Tag damit verbringen, Daten zu sammeln und Modelle um Datensätze herum erstellen, von denen Sie sonst nie genug Daten hätten, um ein LSTM-Modell zu erstellen. Die Anzahl der NLP-Aufgaben, die sich einem Unternehmen eröffnen würden, das sich zuvor die erforderliche Entwicklungszeit und das erforderliche Fachwissen nicht leisten konnte, ist überwältigend.

BERT vs. LSTM illustriert

Wie BERT funktioniert

Im traditionellen NLP sind Wortvektoren der Ausgangspunkt für das Modelltraining. Wortvektoren sind eine Liste von Zahlen [0,55, 0,24, 0,90, …], die versuchen, numerisch darzustellen, was dieses Wort bedeutet. Mit einer numerischen Darstellung können wir diese Wörter beim Trainieren komplexer Modelle verwenden, und mit großen Wortvektoren können wir Informationen über Wörter in unsere Modelle einbetten.

BERT macht etwas Ähnliches (tatsächlich ist sein Ausgangspunkt Wortvektoren), aber es erstellt eine numerische Darstellung eines ganzen Eingabesatzes (oder Sätzen).

Im Vergleich zu LSTM-Modellen macht BERT vieles anders.

  1. Es liest alle Wörter auf einmal und nicht von links nach rechts oder von rechts nach links
  2. 15 % der Wörter werden zufällig ausgewählt, um während der Trainingszeit „maskiert“ zu werden (buchstäblich durch das [MASK]-Token ersetzt).
    • 10 % der zufällig ausgewählten Wörter bleiben unverändert
    • 10 % der maskierten Wörter werden durch zufällige Wörter ersetzt
    • (a) und (b) arbeiten zusammen, um das Modell zu zwingen, jedes Wort im Satz vorherzusagen (Modelle sind faul)
  3. BERT versucht dann, alle Wörter im Satz vorherzusagen, und nur die maskierten Wörter tragen zur Verlustfunktion bei – einschließlich der unveränderten und zufällig ersetzten Wörter
  4. Das Modell wurde auf die Vorhersage des nächsten Satzes abgestimmt. In diesem Schritt versucht das Modell festzustellen, ob ein gegebener Satz der nächste Satz im Text ist

Die Konvergenz ist langsam und BERT braucht lange zum Trainieren. Allerdings lernt es die Kontextzusammenhänge im Text viel besser. Wortvektoren sind sehr flache Darstellungen, die die Komplexität begrenzen, die sie modellieren können – BERT hat diese Einschränkung nicht.

Die meisten Unternehmen können die vortrainierten Modelle nutzen, die mehrere GPUs nutzten und Tage brauchten, um sie für ihre Anwendung zu trainieren. Es gibt wenige Fälle, in denen vorhandene BERT-Modelle nicht direkt verwendet oder auf einen bestimmten Anwendungsfall abgestimmt werden können. BERT ermöglicht es einem Team, Lösungen um das Zehnfache zu beschleunigen. Man kann in einem Bruchteil der Zeit eine Geschäftslösung identifizieren, einen Machbarkeitsnachweis erstellen und dieses Konzept schließlich in die Produktion überführen.

Implementierung von BERT und Vergleich des Geschäftswerts

Da sich dieser Artikel auf die geschäftliche und technische Anwendung des Baus eines realen Produkts konzentriert, werden wir zwei Modelle erstellen und trainieren, um den Vergleichswert besser zu verstehen.

  1. BERT: Die einfachste BERT-Pipeline. Wir verarbeiten Text auf standardmäßige Weise, wir erzeugen die BERT-Satzcodierungen und speisen diese Satzcodierungen in ein flaches neuronales Netzwerk ein
  2. LSTM: Die Standardarchitektur Embed – Encode – Attend – Predict (Bild oben)

Die Aufgabe? Vorhersage des Ursprungs von Filmen basierend auf ihrer Handlung von IMDB. Unser Datensatz umfasst Filme amerikanischer, australischer, britischer, kanadischer, japanischer, chinesischer, südkoreanischer und russischer zusätzlich zu sechzehn anderen Filmen mit insgesamt 24 Ursprüngen. Wir haben insgesamt knapp 35.000 Trainingsbeispiele.

Hier ist ein Beispielausschnitt aus einem Plot.

Vor Tausenden von Jahren versuchen Steppenwolf und seine Legionen von Parademons, die Erde mit den kombinierten Energien von drei Mutterkisten zu übernehmen. Sie werden von einer vereinten Armee vereitelt, zu der die olympischen Götter, Amazonen, Atlanter, die Menschheit und das Green Lantern Corps gehören. Nachdem die Steppenwolf-Armee zurückgeschlagen wurde, werden die Mutterkisten getrennt und an Orten auf dem Planeten versteckt. In der Gegenwart trauert die Menschheit um Superman, dessen Tod die Reaktivierung der Mother Boxes und Steppenwolfs Rückkehr zur Erde auslöst, um die Gunst seines Meisters Darkseid wiederzugewinnen. Steppenwolf zielt darauf ab, die Artefakte zu sammeln, um „The Unity“ zu bilden, die die Ökologie der Erde zerstören und sie nach dem Bild von…

Wenn Sie es nicht erraten haben, ist dies die Handlung der Justice League – eines amerikanischen Films.

Die Ergebnisse

Wir trainierten eine Vielzahl von Parametern, um zu verstehen, wie die Ergebnisse auf unterschiedliche Datenmengen und Modellgrößen reagierten. Wie bereits erwähnt, besteht der bedeutendste Mehrwert von BERT darin, dass weitaus weniger Daten benötigt werden.

Für das LSTM-Modell haben wir das größtmögliche Modell auf unserer GPU trainiert und die Größe des Vokabulars und die Wortlänge variiert, um das Modell mit der besten Leistung zu finden. Für das BERT-Modell hatten wir nicht mehr als eine einzige Schicht.

Wir haben unser Testset für alle diese Beispiele angepasst, sodass wir immer dasselbe Trainingsset bewerten.

Ergebnisse bei Verwendung von BERT NLP

Bei dieser Aufgabe erreicht das mit BERT-Satzkodierungen trainierte Modell nach nur 1000 Samples einen beeindruckenden F1-Score von 0,84. Das LSTM-Netzwerk überschreitet niemals 0,60. Noch beeindruckender ist, dass das Training der BERT-Modelle durchschnittlich 1/20 der Zeit in Anspruch nahm als die Vorbereitung der LSTM-Modelle.

Fazit

In jeder Hinsicht deuten diese Ergebnisse auf eine Revolution im NLP hin. Mit 100-mal weniger Daten und 20-mal weniger Trainingszeit haben wir Weltklasse-Ergebnisse erzielt. Die Fähigkeit, qualitativ hochwertige Modelle in Sekunden oder Minuten statt in Stunden oder Tagen zu trainieren, eröffnet NLP Bereiche, in denen es sich vorher nicht leisten konnte.

BERT hat viel mehr Verwendungsmöglichkeiten als die in diesem Beitrag. Es gibt mehrsprachige Modelle. Es kann verwendet werden, um viele verschiedene NLP-Aufgaben zu lösen, entweder einzeln wie in diesem Beitrag oder gleichzeitig mit mehreren Ausgängen. BERT-Satzcodierungen werden zu einem Eckpfeiler vieler zukünftiger NLP-Projekte.

Der Code hinter diesem Beitrag ist auf Github verfügbar. Ich ermutige die Leser auch, sich Bert-as-a-Service anzusehen, das ein Eckpfeiler beim Erstellen der BERT-Satzcodierungen für diesen Beitrag war.

Verwandt: Das Beste aus vortrainierten Modellen herausholen