Erkunden Sie die Architektur von Transformers, den Modellen, die die Datenverarbeitung durch Selbstaufmerksamkeitsmechanismen revolutioniert haben.
Dank der Entstehung und schnellen Weiterentwicklung von Transformer-Modellen erlebt der Bereich des Deep Learning einen radikalen Wandel.
Diese bahnbrechenden Architekturen haben nicht nur die Standards in der Verarbeitung natürlicher Sprache (NLP) neu definiert, sondern auch ihren Horizont erweitert, um zahlreiche Facetten der künstlichen Intelligenz zu revolutionieren.
Transformer-Modelle zeichnen sich durch einzigartige Aufmerksamkeitsmechanismen und die Fähigkeit zur Parallelverarbeitung aus und sind ein Beweis für die innovativen Fortschritte beim Verstehen und Generieren der menschlichen Sprache mit einer Genauigkeit und Effizienz, die bisher unerreicht war.
Die Transformer-Architektur tauchte 2017 erstmals im Artikel „Attention is all you need“ von Google auf und bildet das Herzstück bahnbrechender Modelle wie ChatGPT, die in der KI-Community für neue Begeisterung sorgten. Sie war maßgeblich an OpenAIs hochmodernen Sprachmodellen beteiligt und spielte eine Schlüsselrolle bei DeepMinds AlphaStar.
In diesem transformativen Zeitalter der KI kann die Bedeutung von Transformer-Modellen für angehende Datenwissenschaftler und NLP-Praktiker nicht genug betont werden.
Da es sich um eines der Kerngebiete der meisten aktuellen Technologiesprünge handelt, zielt dieser Artikel darauf ab, die Geheimnisse hinter diesen Modellen zu entschlüsseln.
Was sind transformers?
Transformer wurden ursprünglich entwickelt, um das Problem der Sequenztransduktion oder neuronalen maschinellen Übersetzung zu lösen. Das heißt, sie sind für alle Aufgaben gedacht, bei denen eine Eingabesequenz in eine Ausgabesequenz umgewandelt wird. Aus diesem Grund werden sie „Transformer“ genannt.
Aber beginnen wir von Anfang an.
Was sind Transformer-Modelle?
Ein Transformer-Modell ist ein neuronales Netzwerk, das den Kontext sequentieller Daten lernt und daraus neue Daten generiert.
Einfach gesagt:
Ein Transformer ist eine Art künstliches Intelligenzmodell, das lernt, menschenähnlichen Text zu verstehen und zu generieren, indem es Muster in großen Mengen von Textdaten analysiert.
Transformer sind ein aktuelles NLP-Modell auf dem neuesten Stand der Technik und gelten als Weiterentwicklung der Encoder-Decoder-Architektur. Während die Encoder-Decoder-Architektur jedoch hauptsächlich auf rekurrenten neuronalen Netzwerken (RNNs) basiert, um sequentielle Informationen zu extrahieren, fehlt Transformern diese Rekurrenz vollständig.
Also, wie machen sie das?
Sie sind speziell darauf ausgelegt, Kontext und Bedeutung zu erfassen, indem sie die Beziehung zwischen verschiedenen Elementen analysieren, und stützen sich dabei fast ausschließlich auf eine mathematische Technik namens Aufmerksamkeit.
Historischer Zusammenhang
Transformer-Modelle stammen aus einem Forschungspapier von Google aus dem Jahr 2017 und sind eine der neuesten und einflussreichsten Entwicklungen im Bereich des maschinellen Lernens. Das erste Transformer-Modell wurde in dem einflussreichen Papier „Attention is All You Need“ erläutert.
Dieses bahnbrechende Konzept war nicht nur eine theoretische Weiterentwicklung, sondern fand auch praktische Umsetzung, insbesondere im Tensor2Tensor- Paket von TensorFlow. Darüber hinaus leistete die Harvard NLP-Gruppe einen Beitrag zu diesem aufstrebenden Bereich, indem sie einen kommentierten Leitfaden zum Papier anbot, ergänzt durch eine PyTorch-Implementierung. In unserem separaten Tutorial erfahren Sie mehr darüber, wie Sie einen Transformer von Grund auf implementieren .
Ihre Einführung hat zu einem deutlichen Aufschwung in diesem Bereich geführt, der oft als Transformer AI bezeichnet wird. Dieses revolutionäre Modell legte den Grundstein für nachfolgende Durchbrüche im Bereich großer Sprachmodelle, einschließlich BERT. Bereits 2018 wurden diese Entwicklungen als Wendepunkt in der NLP gefeiert.
Im Jahr 2020 kündigten Forscher von OpenAI GPT-3 an. Innerhalb weniger Wochen wurde die Vielseitigkeit von GPT-3 schnell demonstriert, als Menschen es zum Erstellen von Gedichten, Programmen, Liedern, Websites und mehr verwendeten, was die Fantasie von Benutzern weltweit anregte.
In einem Artikel aus dem Jahr 2021 haben Wissenschaftler der Stanford University diese Innovationen treffend als Grundlagenmodelle bezeichnet und damit ihre grundlegende Rolle bei der Neugestaltung der KI unterstrichen. Ihre Arbeit zeigt, wie Transformer-Modelle nicht nur das Feld revolutioniert, sondern auch die Grenzen des Machbaren in der künstlichen Intelligenz erweitert und eine neue Ära der Möglichkeiten eingeläutet haben.
„ Wir leben in einer Zeit, in der einfache Methoden wie neuronale Netze uns eine Explosion neuer Möglichkeiten eröffnen “, sagt Ashish Vaswani, Unternehmer und ehemaliger leitender Wissenschaftler bei Google.
Der Wechsel von RNN-Modellen wie LSTM zu Transformers für NLP-Probleme
Zum Zeitpunkt der Einführung des Transformer-Modells waren RNNs der bevorzugte Ansatz für die Verarbeitung sequenzieller Daten, die durch eine bestimmte Reihenfolge ihrer Eingabe gekennzeichnet sind.
RNNs funktionieren ähnlich wie ein Feedforward-Neuralnetzwerk, verarbeiten die Eingaben jedoch sequenziell, jeweils ein Element nach dem anderen.
Transformer wurden von der Encoder-Decoder-Architektur in RNNs inspiriert. Anstatt jedoch Rekurrenz zu verwenden, basiert das Transformer-Modell vollständig auf dem Aufmerksamkeitsmechanismus.
Neben der Verbesserung der RNN-Leistung haben Transformers eine neue Architektur zur Lösung vieler anderer Aufgaben bereitgestellt, wie etwa Textzusammenfassung, Bildbeschriftung und Spracherkennung.
Was sind also die Hauptprobleme von RNNs? Sie sind für NLP-Aufgaben aus zwei Hauptgründen ziemlich ineffektiv:
- Sie verarbeiten die Eingabedaten sequenziell, also nacheinander. Bei einem derart wiederkehrenden Prozess werden moderne Grafikprozessoren (GPUs), die für parallele Berechnungen entwickelt wurden, nicht genutzt. Das Training solcher Modelle ist daher recht langsam.
- Wenn die Elemente weit voneinander entfernt sind, werden sie ziemlich ineffektiv. Das liegt daran, dass bei jedem Schritt Informationen weitergegeben werden und je länger die Kette ist, desto wahrscheinlicher ist es, dass Informationen entlang der Kette verloren gehen.
Der Wechsel von rekurrierenden neuronalen Netzwerken (RNNs) wie LSTM zu Transformern in der NLP wird durch diese beiden Hauptprobleme und die Fähigkeit von Transformern, beide zu bewerten, indem sie die Verbesserungen des Aufmerksamkeitsmechanismus ausnutzen, vorangetrieben:
- Achten Sie auf bestimmte Wörter, egal wie weit sie entfernt sind.
- Steigern Sie die Leistungsgeschwindigkeit.
Daher wurden Transformers zu einer natürlichen Verbesserung von RNNs.
Sehen wir uns als Nächstes an, wie transformers funktionieren.
Die Transformer-Architektur
Überblick
Transformer wurden ursprünglich für die Sequenztransduktion oder neuronale maschinelle Übersetzung entwickelt und eignen sich hervorragend für die Umwandlung von Eingabesequenzen in Ausgabesequenzen. Es handelt sich um das erste Transduktionsmodell, das sich vollständig auf Selbstaufmerksamkeit verlässt, um Darstellungen seiner Eingabe und Ausgabe zu berechnen, ohne sequenzausgerichtete RNNs oder Faltung zu verwenden. Das wichtigste Kernmerkmal der Transformer-Architektur besteht darin, dass sie das Encoder-Decoder-Modell beibehalten.
Wenn wir einen Transformer zur Sprachübersetzung als einfache Blackbox betrachten, würde er einen Satz in einer Sprache, beispielsweise Englisch, als Eingabe verwenden und seine Übersetzung in Englisch ausgeben.
Wenn wir ein wenig eintauchen, stellen wir fest, dass diese Blackbox aus zwei Hauptteilen besteht:
- Der Encoder nimmt unsere Eingabe entgegen und gibt eine Matrixdarstellung dieser Eingabe aus. Beispielsweise der englische Satz „Wie geht es dir?“
- Der Decoder nimmt diese codierte Darstellung auf und generiert iterativ eine Ausgabe. In unserem Beispiel der übersetzte Satz „¿Cómo estás?“
Allerdings sind sowohl der Encoder als auch der Decoder tatsächlich ein Stapel mit mehreren Schichten (für beide die gleiche Anzahl). Alle Encoder weisen dieselbe Struktur auf, und die Eingabe gelangt in jeden von ihnen und wird an den nächsten weitergegeben. Alle Decoder weisen ebenfalls dieselbe Struktur auf und erhalten die Eingabe vom letzten Encoder und vom vorherigen Decoder.
Die ursprüngliche Architektur bestand aus 6 Encodern und 6 Decodern, aber wir können so viele Schichten replizieren, wie wir wollen. Nehmen wir also an, es gibt jeweils N Schichten.
Nachdem wir nun eine allgemeine Vorstellung von der gesamten Transformer-Architektur haben, konzentrieren wir uns auf Encoder und Decoder, um ihren Arbeitsablauf besser zu verstehen:
Der Encoder-Workflow
Der Encoder ist eine grundlegende Komponente der Transformer-Architektur. Die Hauptfunktion des Encoders besteht darin, die Eingabetoken in kontextualisierte Darstellungen umzuwandeln. Im Gegensatz zu früheren Modellen, die Token unabhängig voneinander verarbeiteten, erfasst der Transformer-Encoder den Kontext jedes Tokens in Bezug auf die gesamte Sequenz.
Seine Strukturzusammensetzung besteht wie folgt:
Lassen Sie uns den Arbeitsablauf in die grundlegendsten Schritte unterteilen:
SCHRITT 1 – Einbettungen eingeben
Die Einbettung erfolgt nur im untersten Encoder. Der Encoder beginnt damit, Eingabetoken – Wörter oder Teilwörter – mithilfe von Einbettungsebenen in Vektoren umzuwandeln. Diese Einbettungen erfassen die semantische Bedeutung der Token und wandeln sie in numerische Vektoren um.
Alle Encoder erhalten eine Liste von Vektoren, jeder mit einer Größe von 512 (feste Größe). Im unteren Encoder wären das die Wort-Embeddings, in anderen Encodern wäre es die Ausgabe des Encoders, der direkt darunter liegt.
SCHRITT 2 – Positionscodierung
Da Transformer keinen Wiederholungsmechanismus wie RNNs haben, verwenden sie Positionscodierungen, die den Eingabeeinbettungen hinzugefügt werden, um Informationen über die Position jedes Tokens in der Sequenz bereitzustellen. Dadurch können sie die Position jedes Wortes innerhalb des Satzes verstehen.
Zu diesem Zweck schlugen die Forscher vor, eine Kombination verschiedener Sinus- und Cosinusfunktionen zu verwenden, um Positionsvektoren zu erstellen. Dadurch könnte dieser Positionsencoder für Sätze beliebiger Länge verwendet werden.
Bei diesem Ansatz wird jede Dimension durch einzigartige Frequenzen und Offsets der Welle dargestellt, wobei die Werte im Bereich von -1 bis 1 liegen und effektiv jede Position darstellen.
SCHRITT 3 – Stapel von Encoder-Ebenen
Der Transformer-Encoder besteht aus einem Stapel identischer Schichten (6 im ursprünglichen Transformer-Modell).
Die Encoder-Schicht dient dazu, alle Eingabesequenzen in eine kontinuierliche, abstrakte Darstellung umzuwandeln, die die gelernten Informationen aus der gesamten Sequenz kapselt. Diese Schicht besteht aus zwei Untermodulen:
- Ein mehrköpfiger Aufmerksamkeitsmechanismus.
- Ein vollständig verbundenes Netzwerk.
Darüber hinaus werden Restverbindungen um jede Unterschicht herum eingebaut, worauf dann eine Schichtnormalisierung folgt.
SCHRITT 3.1 Mehrköpfiger Selbstaufmerksamkeitsmechanismus
Im Encoder nutzt die mehrköpfige Aufmerksamkeit einen speziellen Aufmerksamkeitsmechanismus, der als Selbstaufmerksamkeit bezeichnet wird. Dieser Ansatz ermöglicht es den Modellen, jedes Wort in der Eingabe mit anderen Wörtern in Beziehung zu setzen. In einem bestimmten Beispiel könnte das Modell beispielsweise lernen, das Wort „sind“ mit „du“ zu verbinden.
Dieser Mechanismus ermöglicht es dem Encoder, sich bei der Verarbeitung jedes Tokens auf unterschiedliche Teile der Eingabesequenz zu konzentrieren. Er berechnet Aufmerksamkeitswerte basierend auf:
- Eine Abfrage ist ein Vektor, der ein bestimmtes Wort oder Token aus der Eingabesequenz im Aufmerksamkeitsmechanismus darstellt.
- Ein Schlüssel ist auch ein Vektor im Aufmerksamkeitsmechanismus, der jedem Wort oder Token in der Eingabesequenz entspricht.
- Jeder Wert ist einem Schlüssel zugeordnet und wird zum Erstellen der Ausgabe der Aufmerksamkeitsebene verwendet. Wenn eine Abfrage und ein Schlüssel gut übereinstimmen, was im Wesentlichen bedeutet, dass sie einen hohen Aufmerksamkeitswert haben, wird der entsprechende Wert in der Ausgabe hervorgehoben.
Dieses erste Self-Attention-Modul ermöglicht es dem Modell, Kontextinformationen aus der gesamten Sequenz zu erfassen. Anstatt eine einzelne Aufmerksamkeitsfunktion auszuführen, werden Abfragen, Schlüssel und Werte h-mal linear projiziert. Auf jeder dieser projizierten Versionen von Abfragen, Schlüsseln und Werten wird der Aufmerksamkeitsmechanismus parallel ausgeführt, was h-dimensionale Ausgabewerte ergibt.
Die detaillierte Architektur sieht wie folgt aus:
Matrixmultiplikation (MatMul) – Skalarprodukt aus Abfrage und Schlüssel
Sobald die Abfrage-, Schlüssel- und Wertevektoren durch eine lineare Schicht geleitet wurden, wird eine Skalarproduktmatrixmultiplikation zwischen den Abfragen und Schlüsseln durchgeführt, was zur Erstellung einer Punktematrix führt.
Die Punktematrix legt fest, wie viel Gewicht jedes Wort auf andere Wörter legen soll. Daher wird jedem Wort im Verhältnis zu anderen Wörtern innerhalb desselben Zeitschritts ein Punktwert zugewiesen. Ein höherer Punktwert bedeutet eine stärkere Betonung.
Dieser Prozess ordnet die Abfragen effektiv den entsprechenden Schlüsseln zu.
Reduzierung der Aufmerksamkeitswerte
Die Werte werden dann herunterskaliert, indem sie durch die Quadratwurzel der Dimension der Abfrage- und Schlüsselvektoren geteilt werden. Dieser Schritt wird durchgeführt, um stabilere Gradienten zu gewährleisten, da die Multiplikation von Werten zu übermäßig großen Effekten führen kann.
Anwendung von Softmax auf die angepassten Werte
Anschließend wird eine Softmax-Funktion auf die angepassten Werte angewendet, um die Aufmerksamkeitsgewichte zu ermitteln. Dies führt zu Wahrscheinlichkeitswerten im Bereich von 0 bis 1. Die Softmax-Funktion betont höhere Werte und verringert niedrigere Werte. Dadurch verbessert das Modell die Fähigkeit, effektiv zu bestimmen, welchen Wörtern mehr Aufmerksamkeit gewidmet werden sollte.
Kombinieren von Softmax-Ergebnissen mit dem Wertevektor
Der nächste Schritt des Aufmerksamkeitsmechanismus besteht darin, dass die aus der Softmax-Funktion abgeleiteten Gewichte mit dem Wertevektor multipliziert werden, woraus ein Ausgabevektor resultiert.
Dabei werden nur die Wörter mit hohen Softmax-Werten beibehalten. Abschließend wird dieser Ausgabevektor zur weiteren Verarbeitung in eine lineare Schicht eingespeist.
Und wir erhalten endlich die Ausgabe des Aufmerksamkeitsmechanismus!
Sie fragen sich vielleicht, warum es Multi-Head Attention heißt?
Denken Sie daran, dass wir unsere Abfragen, Schlüssel und Werte h-mal aufschlüsseln, bevor der gesamte Prozess beginnt. Dieser Prozess, bekannt als Selbstaufmerksamkeit, geschieht separat in jeder dieser kleineren Phasen oder „Köpfe“. Jeder Kopf arbeitet seine Magie unabhängig und zaubert einen Ausgabevektor hervor.
Dieses Ensemble durchläuft eine letzte lineare Schicht, ähnlich einem Filter, der die kollektive Leistung fein abstimmt. Das Schöne dabei ist die Vielfalt des Lernens in jedem Kopf, die das Encodermodell mit einem robusten und vielschichtigen Verständnis bereichert.
SCHRITT 3.2 Normalisierung und Restverbindungen
Auf jede Unterschicht in einer Encoderschicht folgt ein Normalisierungsschritt. Außerdem wird jede Unterschichtausgabe zu ihrer Eingabe hinzugefügt (Restverbindung), um das Problem des verschwindenden Gradienten zu mildern und tiefere Modelle zu ermöglichen. Dieser Prozess wird auch nach dem Feedforward-Neuralnetzwerk wiederholt.
SCHRITT 3.3 Feedforward-Neuronales Netzwerk
Die Reise der normalisierten Restausgabe wird fortgesetzt, während sie durch ein punktweises Feedforward-Netzwerk navigiert, eine entscheidende Phase für weitere Verfeinerungen.
Stellen Sie sich dieses Netzwerk als ein Duo linearer Schichten vor, zwischen denen eine ReLU-Aktivierung eingebettet ist, die als Brücke fungiert. Nach der Verarbeitung begibt sich die Ausgabe auf einen bekannten Pfad: Sie kehrt zurück und verschmilzt mit der Eingabe des punktweisen Feedforward-Netzwerks.
Auf dieses Wiedersehen folgt eine weitere Normalisierungsrunde, um sicherzustellen, dass alles gut eingestellt und für die nächsten Schritte synchron ist.
SCHRITT 4 – Ausgabe des Encoders
Die Ausgabe der letzten Encoderschicht ist eine Reihe von Vektoren, von denen jeder die Eingabesequenz mit einem umfassenden Kontextverständnis darstellt. Diese Ausgabe wird dann als Eingabe für den Decoder in einem Transformer-Modell verwendet.
Diese sorgfältige Kodierung ebnet dem Decoder den Weg und weist ihn an, beim Dekodieren auf die richtigen Wörter in der Eingabe zu achten.
Stellen Sie es sich wie den Bau eines Turms vor, in dem Sie N Encoder-Schichten stapeln können. Jede Schicht in diesem Stapel erhält die Möglichkeit, verschiedene Facetten der Aufmerksamkeit zu erkunden und zu lernen, ähnlich wie Wissensschichten. Dies diversifiziert nicht nur das Verständnis, sondern könnte auch die Vorhersagefähigkeiten des Transformatornetzwerks erheblich verbessern.
Der Decoder-Workflow
Die Rolle des Decoders besteht darin, Textsequenzen zu erstellen. Wie der Encoder ist der Decoder mit einem ähnlichen Satz von Unterschichten ausgestattet. Er verfügt über zwei mehrköpfige Aufmerksamkeitsschichten, eine punktweise Feedforward-Schicht und enthält sowohl Restverbindungen als auch Schichtnormalisierung nach jeder Unterschicht.
Die Funktionsweise dieser Komponenten ähnelt den Schichten des Encoders, allerdings mit einem Unterschied: Jede mehrköpfige Aufmerksamkeitsschicht im Decoder hat ihre eigene einzigartige Aufgabe.
Der letzte Prozess des Decoders umfasst eine lineare Schicht, die als Klassifikator dient und durch eine Softmax-Funktion zur Berechnung der Wahrscheinlichkeiten verschiedener Wörter abgerundet wird.
Der Transformer-Decoder verfügt über eine Struktur, die speziell darauf ausgelegt ist, diese Ausgabe durch schrittweises Dekodieren der kodierten Informationen zu erzeugen.
Es ist wichtig zu beachten, dass der Decoder autoregressiv arbeitet und seinen Prozess mit einem Starttoken startet. Er verwendet geschickt eine Liste zuvor generierter Ausgaben als Eingaben, zusammen mit den Ausgaben des Encoders, die reich an Aufmerksamkeitsinformationen aus der ursprünglichen Eingabe sind.
Dieser sequentielle Dekodierungstanz wird fortgesetzt, bis der Decoder einen entscheidenden Moment erreicht: die Generierung eines Tokens, das das Ende seiner Ausgabeerstellung signalisiert.
SCHRITT 1 – Ausgabeeinbettungen
Am Anfang des Decoders läuft der Prozess genauso ab wie beim Encoder. Hier durchläuft der Input zunächst eine Einbettungsschicht
SCHRITT 2 – Positionscodierung
Nach der Einbettung durchläuft der Input, genau wie der Decoder, die Positionscodierungsschicht. Diese Sequenz ist darauf ausgelegt, Positionseinbettungen zu erzeugen.
Diese Positionseinbettungen werden dann in die erste Multi-Head-Aufmerksamkeitsschicht des Decoders geleitet, wo die für die Eingabe des Decoders spezifischen Aufmerksamkeitswerte sorgfältig berechnet werden.
SCHRITT 3 – Stapel von Decoder-Ebenen
Der Decoder besteht aus einem Stapel identischer Schichten (6 im ursprünglichen Transformer-Modell). Jede Schicht hat drei Hauptunterkomponenten:
SCHRITT 3.1 Maskierter Selbstaufmerksamkeitsmechanismus
Dies ähnelt dem Self-Attention-Mechanismus im Encoder, weist jedoch einen entscheidenden Unterschied auf: Es verhindert, dass Positionen auf nachfolgende Positionen achten, was bedeutet, dass jedes Wort in der Sequenz nicht von zukünftigen Token beeinflusst wird.
Wenn beispielsweise die Aufmerksamkeitswerte für das Wort „are“ berechnet werden, ist es wichtig, dass „are“ keinen Blick auf „you“ erhascht, da „you“ ein nachfolgendes Wort in der Sequenz ist.
Diese Maskierung stellt sicher, dass die Vorhersagen für eine bestimmte Position nur von bekannten Ausgaben an davor liegenden Positionen abhängen können.
SCHRITT 3.2 – Encoder-Decoder Multi-Head Attention oder Cross Attention
In der zweiten mehrköpfigen Aufmerksamkeitsschicht des Decoders sehen wir ein einzigartiges Zusammenspiel zwischen den Komponenten des Encoders und des Decoders. Hier übernehmen die Ausgaben des Encoders die Rolle von Abfragen und Schlüsseln, während die Ausgaben der ersten mehrköpfigen Aufmerksamkeitsschicht des Decoders als Werte dienen.
Durch dieses Setup werden die Eingaben des Encoders effektiv mit denen des Decoders abgestimmt, wodurch der Decoder in die Lage versetzt wird, die relevantesten Teile der Eingaben des Encoders zu identifizieren und hervorzuheben.
Anschließend wird die Ausgabe dieser zweiten Schicht der mehrköpfigen Aufmerksamkeit durch eine punktweise Feedforward-Schicht verfeinert, wodurch die Verarbeitung weiter verbessert wird.
In dieser Unterschicht stammen die Abfragen aus der vorherigen Decoderschicht und die Schlüssel und Werte aus der Ausgabe des Encoders. Dadurch kann jede Position im Decoder alle Positionen in der Eingabesequenz berücksichtigen und so Informationen aus dem Encoder effektiv mit den Informationen im Decoder integrieren.
SCHRITT 3.3 Feedforward-Neuronales Netzwerk
Ähnlich wie der Encoder enthält jede Decoderschicht ein vollständig verbundenes Feedforward-Netzwerk, das auf jede Position separat und identisch angewendet wird.
SCHRITT 4 Linearer Klassifikator und Softmax zum Generieren von Ausgabewahrscheinlichkeiten
Der Weg der Daten durch das Transformatormodell gipfelt in ihrem Durchgang durch eine letzte lineare Schicht, die als Klassifikator fungiert.
Die Größe dieses Klassifikators entspricht der Gesamtzahl der beteiligten Klassen (Anzahl der im Vokabular enthaltenen Wörter). In einem Szenario mit 1000 unterschiedlichen Klassen, die 1000 verschiedene Wörter darstellen, ist die Ausgabe des Klassifikators beispielsweise ein Array mit 1000 Elementen.
Diese Ausgabe wird dann einer Softmax-Schicht zugeführt, die sie in einen Bereich von Wahrscheinlichkeitswerten umwandelt, die jeweils zwischen 0 und 1 liegen. Der höchste dieser Wahrscheinlichkeitswerte ist der Schlüssel; sein entsprechender Index verweist direkt auf das Wort, das das Modell als nächstes in der Sequenz vorhersagt.
Normalisierung und Restverbindungen
Auf jede Unterschicht (maskierte Selbstaufmerksamkeit, Encoder-Decoder-Aufmerksamkeit, Feedforward-Netzwerk) folgt ein Normalisierungsschritt, und jede enthält auch eine Restverbindung darum herum.
Ausgabe des Decoders
Die Ausgabe der letzten Schicht wird in eine vorhergesagte Sequenz umgewandelt, normalerweise durch eine lineare Schicht, gefolgt von einem Softmax, um Wahrscheinlichkeiten über das Vokabular zu generieren.
Der Decoder fügt in seinem Betriebsablauf die neu generierte Ausgabe in seine wachsende Liste von Eingaben ein und fährt dann mit dem Decodierungsprozess fort. Dieser Zyklus wiederholt sich, bis das Modell ein bestimmtes Token vorhersagt und damit den Abschluss signalisiert.
Als abschließende Klasse wird das mit der höchsten Wahrscheinlichkeit vorhergesagte Token zugewiesen, das häufig durch das Endtoken dargestellt wird.
Denken Sie auch hier daran, dass der Decoder nicht auf eine einzige Schicht beschränkt ist. Er kann mit N Schichten strukturiert werden, von denen jede auf den vom Encoder und seinen vorhergehenden Schichten empfangenen Eingaben aufbaut. Diese mehrschichtige Architektur ermöglicht es dem Modell, seinen Fokus zu diversifizieren und unterschiedliche Aufmerksamkeitsmuster über seine Aufmerksamkeitsköpfe hinweg zu extrahieren multimodality.
Ein solcher mehrschichtiger Ansatz kann die Vorhersagekraft des Modells erheblich steigern, da er ein differenzierteres Verständnis für unterschiedliche Aufmerksamkeitskombinationen entwickelt.
Und die endgültige Architektur sieht ungefähr so aus (aus dem Originalpapier)
Um diese Architektur besser zu verstehen, empfehle ich, zu versuchen, einen Transformers von Grund auf anzuwenden, indem Sie diesem Tutorial folgen, um einen Transformers mit PyTorch zu erstellen .
Transformers-Modelle aus dem echten Leben
BERT
Die 2018 von Google veröffentlichte Version von BERT, einem Open-Source-Framework zur Verarbeitung natürlicher Sprache, revolutionierte die NLP mit seinem einzigartigen bidirektionalen Training, das es dem Modell ermöglicht, kontextbezogenere Vorhersagen darüber zu treffen, wie das nächste Wort lauten sollte.
Indem es den Kontext eines Wortes von allen Seiten versteht, übertraf BERT frühere Modelle bei Aufgaben wie Fragen beantworten und mehrdeutige Sprache verstehen. Sein Kern verwendet Transformers, die jedes Ausgabe- und Eingabeelement dynamisch verbinden.
BERT, das auf Wikipedia vortrainiert wurde, zeigte bei verschiedenen NLP-Aufgaben hervorragende Ergebnisse, was Google dazu veranlasste, es für natürlichere Suchanfragen in seine Suchmaschine zu integrieren. Diese Innovation löste einen Wettlauf um die Entwicklung fortschrittlicher Sprachmodelle aus und verbesserte die Fähigkeit des Fachgebiets, komplexe Sprachen zu verstehen, erheblich.
Um mehr über BERT zu erfahren, können Sie unseren separaten Artikel lesen, der das BERT-Modell vorstellt .
LaMDA
LaMDA (Language Model for Dialogue Applications) ist ein Transformers-basiertes Modell, das von Google entwickelt wurde, speziell für Konversationsaufgaben konzipiert und während der Google I/O-Keynote 2021 vorgestellt wurde. Es wurde entwickelt, um natürlichere und kontextbezogenere Antworten zu generieren und so die Benutzerinteraktion in verschiedenen Anwendungen zu verbessern.
Durch sein Design ist LaMDA in der Lage, eine große Bandbreite an Themen und Benutzerabsichten zu verstehen und darauf zu reagieren. Daher eignet es sich ideal für Anwendungen in Chatbots, virtuellen Assistenten und anderen interaktiven KI-Systemen, bei denen eine dynamische Konversation im Mittelpunkt steht.
Dieser Fokus auf Gesprächsverständnis und Reaktion macht LaMDA zu einem bedeutenden Fortschritt auf dem Gebiet der natürlichen Sprachverarbeitung und KI-gesteuerten Kommunikation.
Wenn Sie an einem besseren Verständnis der LaMDA-Modelle interessiert sind, können Sie sich mit dem Artikel zu LaMDA ein besseres Verständnis verschaffen .
GPT und ChatGPT
GPT und ChatGPT, entwickelt von OpenAI, sind fortschrittliche generative Modelle, die für ihre Fähigkeit bekannt sind, kohärenten und kontextbezogen relevanten Text zu produzieren. GPT-1 war das erste Modell, das im Juni 2018 eingeführt wurde, und GPT-3, eines der wirkungsvollsten Modelle, wurde zwei Jahre später im Jahr 2020 eingeführt.
Diese Modelle eignen sich für eine Vielzahl von Aufgaben, darunter Inhaltserstellung, Konversation, Sprachübersetzung und mehr. Die Architektur von GPT ermöglicht es, Text zu generieren, der menschlicher Schrift sehr ähnelt, was es für Anwendungen wie kreatives Schreiben, Kundensupport und sogar Programmierunterstützung nützlich macht. ChatGPT, eine für Konversationskontexte optimierte Variante, zeichnet sich durch die Generierung menschenähnlicher Dialoge aus, was seine Anwendung in Chatbots und virtuellen Assistenten verbessert.
Andere Variationen
Die Landschaft der Basismodelle, insbesondere der Transformers modelle, wächst rasant. Eine Studie identifizierte über 50 bedeutende Transformers modelle, während die Stanford-Gruppe 30 davon bewertete und damit das rasante Wachstum des Bereichs anerkannte. NLP Cloud, ein innovatives Startup-Teil des Inception-Programms von NVIDIA, nutzt rund 25 große Sprachmodelle kommerziell für verschiedene Sektoren wie Fluggesellschaften und Apotheken.
Es gibt einen zunehmenden Trend, diese Modelle Open Source zu machen, wobei Plattformen wie der Model Hub von Hugging Face führend sind. Darüber hinaus wurden zahlreiche Transformers-basierte Modelle entwickelt, die jeweils auf unterschiedliche NLP-Aufgaben spezialisiert sind und die Vielseitigkeit und Effizienz des Modells in unterschiedlichen Anwendungen demonstrieren.
In einem separaten Artikel erfahren Sie mehr über alle vorhandenen Foundation-Modelle. Darin wird erläutert, was sie sind und welche am häufigsten verwendet werden.
Benchmarks und Leistung
Das Benchmarking und die Bewertung der Leistung von Transformer-Modellen in NLP erfordert einen systematischen Ansatz zur Beurteilung ihrer Wirksamkeit und Effizienz.
Abhängig von der Art der Aufgabe gibt es hierfür unterschiedliche Möglichkeiten und Ressourcen:
Aufgaben der maschinellen Übersetzung
Bei der Bearbeitung von Aufgaben der maschinellen Übersetzung können Sie Standarddatensätze wie WMT (Workshop on Machine Translation) nutzen, bei dem MT-Systeme auf eine Vielzahl von Sprachenpaaren treffen, von denen jedes seine eigenen Herausforderungen mit sich bringt.
Metriken wie BLEU, METEOR, TER und chrF dienen als Navigationshilfen und führen uns zu Genauigkeit und Flüssigkeit.
Darüber hinaus wird durch Tests in unterschiedlichen Bereichen wie Nachrichten, Literatur und technischen Texten die Anpassungsfähigkeit und Vielseitigkeit eines MT-Systems sichergestellt, was es zu einem echten Polyglott in der digitalen Welt macht.
QA-Benchmarks
Zur Bewertung von QA-Modellen verwenden wir spezielle Sammlungen von Fragen und Antworten, wie SQuAD (Stanford Question Answering Dataset), Natural Questions oder TriviaQA.
Jedes ist wie ein anderes Spiel mit eigenen Regeln. Bei SQuAD geht es beispielsweise darum, Antworten in einem vorgegebenen Text zu finden, während andere eher einem Quizspiel mit Fragen aus beliebigen Quellen ähneln.
Um zu sehen, wie gut diese Programme funktionieren, verwenden wir Werte wie Präzision, Rückruf, F1 und manchmal sogar exakte Übereinstimmungswerte.
NLI-Benchmarks
Beim Umgang mit Natural Language Inference (NLI) verwenden wir spezielle Datensätze wie SNLI (Stanford Natural Language Inference), MultiNLI und ANLI.
Diese sind wie große Bibliotheken mit Sprachvarianten und kniffligen Fällen, die uns zeigen, wie gut unsere Computer unterschiedliche Satzarten verstehen. Wir prüfen vor allem, wie genau die Computer verstehen, ob Aussagen übereinstimmen, sich widersprechen oder nichts miteinander zu tun haben.
Es ist auch wichtig zu untersuchen, wie der Computer schwierige Sprachprobleme herausfindet, etwa wenn sich ein Wort auf etwas bezieht, das zuvor erwähnt wurde, oder wie er die Wörter „nicht“, „alle“ und „einige“ versteht.
Vergleich mit anderen Architekturen
In der Welt der neuronalen Netzwerke werden üblicherweise zwei prominente Strukturen mit transformers verglichen. Jede von ihnen bietet unterschiedliche Vorteile und Herausforderungen, die auf bestimmte Arten der Datenverarbeitung zugeschnitten sind. RNNs, die im gesamten Artikel bereits mehrfach aufgetaucht sind, und Convulational Layers.
Wiederkehrende Schichten
Rekurrente Schichten, ein Eckpfeiler rekurrenter neuronaler Netze (RNNs), eignen sich hervorragend für die Verarbeitung sequentieller Daten. Die Stärke dieser Architektur liegt in ihrer Fähigkeit, sequentielle Operationen auszuführen, die für Aufgaben wie Sprachverarbeitung oder Zeitreihenanalyse entscheidend sind. In einer rekurrenten Schicht wird die Ausgabe eines vorherigen Schritts als Eingabe für den nächsten Schritt in das Netzwerk zurückgespeist. Dieser Schleifenmechanismus ermöglicht es dem Netzwerk, sich vorherige Informationen zu merken, was für das Verständnis des Kontexts in einer Sequenz von entscheidender Bedeutung ist.
Wie wir jedoch bereits besprochen haben, hat diese sequentielle Verarbeitung zwei Hauptauswirkungen:
- Dies kann zu längeren Trainingszeiten führen, da jeder Schritt vom vorherigen abhängt, was die parallele Verarbeitung erschwert.
- Sie haben aufgrund des Problems des verschwindenden Gradienten häufig mit langfristigen Abhängigkeiten zu kämpfen. Dabei wird das Netzwerk weniger effektiv beim Lernen aus Datenpunkten, die in einer Sequenz weit auseinander liegen.
Transformer-Modelle unterscheiden sich erheblich von Architekturen mit rekurrierenden Schichten, da ihnen die Rekurrenz fehlt. Wie wir bereits gesehen haben, bewertet die Aufmerksamkeitsschicht des Transformers beide Probleme und stellt damit die natürliche Weiterentwicklung von RNNs für NLP-Anwendungen dar.
Faltungsschichten
Andererseits sind Convolutional Layers, die Bausteine von Convolutional Neural Networks (CNNs), für ihre Effizienz bei der Verarbeitung räumlicher Daten wie Bilder bekannt.
Diese Schichten verwenden Kernel (Filter), die die Eingabedaten scannen, um Merkmale zu extrahieren. Die Breite dieser Kernel kann angepasst werden, sodass sich das Netzwerk je nach vorliegender Aufgabe auf kleine oder große Merkmale konzentrieren kann.
Während Faltungsschichten außergewöhnlich gut darin sind, räumliche Hierarchien und Muster in Daten zu erfassen, stehen sie vor Herausforderungen bei langfristigen Abhängigkeiten. Sie berücksichtigen nicht automatisch sequentielle Informationen und sind daher weniger geeignet für Aufgaben, die das Verständnis der Reihenfolge oder des Kontexts einer Sequenz erfordern.
Aus diesem Grund sind CNNs und Transformers auf unterschiedliche Datentypen und Aufgaben zugeschnitten. CNNs dominieren den Bereich der Computervision aufgrund ihrer Effizienz bei der Verarbeitung räumlicher Informationen, während Transformers aufgrund ihrer Fähigkeit, weitreichende Abhängigkeiten zu verstehen, die erste Wahl für komplexe sequentielle Aufgaben sind, insbesondere in der NLP.
Fazit
Zusammenfassend lässt sich sagen, dass Transformers einen monumentalen Durchbruch auf dem Gebiet der künstlichen Intelligenz (NLP) darstellen.
Durch die effektive Verwaltung sequentieller Daten mithilfe ihres einzigartigen Selbstaufmerksamkeitsmechanismus haben diese Modelle herkömmliche RNNs übertroffen. Ihre Fähigkeit, lange Sequenzen effizienter zu verarbeiten und die Datenverarbeitung zu parallelisieren, beschleunigt das Training erheblich.
Bahnbrechende Modelle wie BERT von Google und die GPT-Reihe von OpenAI veranschaulichen die transformative Wirkung von Transformers bei der Verbesserung von Suchmaschinen und der Generierung menschenähnlicher Texte.
Infolgedessen sind sie aus dem modernen maschinellen Lernen nicht mehr wegzudenken, erweitern die Grenzen der KI und eröffnen neue Wege für den technologischen Fortschritt.
Wenn Sie sich mit Transformers und ihrer Verwendung befassen möchten, ist unser Artikel über Transformers und Hugging Face ein perfekter Einstieg! In unserem ausführlichen Leitfaden erfahren Sie außerdem, wie Sie mit PyTorch einen Transformer erstellen .