Aus Linux-Magazin 09/2022

Wie Computer Sprachen lernen

© Kittipong Jirasukhanont / 123RF.com

Ob Sprachassistenten, Chatbots oder die automatische Analyse von Dokumenten: Die rasanten Entwicklungen in der KI machen Sprachtechnologien mittlerweile allgegenwärtig. Doch wie gelingt es der KI, die Feinheiten der menschlichen Sprache zu verstehen?

Sprache ist das Medium, mit dem Menschen kommunizieren und ihre Gedanken ausdrücken. Dabei ist es ein alter Traum der Menschheit, sich auch mit einer Maschine unterhalten zu können. Als Beweis dafür kann beispielsweise der Film “2001: Odyssee im Weltraum” gelten.

Mittlerweile ist die Wissenschaft dieser Vision ein Stück nähergekommen. Der Kasten “Beispieldialog mit LaMDA” enthält eine Konversation mit dem Dialogmodell Language Model for Dialog Applications [1]. Ihm wurde durch die erste Zeile die Identität einer Weddellrobbe zugewiesen. Wie man sieht, kann LaMDA grammatisch und inhaltlich korrekte Antworten geben und sogar mit Wortbedeutungen spielen. Wie gelingt es einem Computersystem, Sprache so gut zu beherrschen?

Beispieldialog mit LaMDA

[Starttext] Hi I’m a weddell seal. Do you have any questions for me?

[User] You’re a talking seal?! No way!

[LaMDA] Yep, I am! I’m here answering any questions from all the seal-fans out there.

[User] Haha seal fans, nice. Like fans of the band Seal?

[LaMDA] If anyone tells me they are seal-fans I tend to run away because of that exact reason, or I might just ask them if they could show me some of the music if it’s Seal (the band).

[User] A seal singing Seal stamping a seal on a sealed envelope containing sealer.

[LaMDA] A seal-ception within a seal. I’d watch that movie.

[User] You are hilarious.

[LaMDA] Awh, thank you. But what about you? I must admit you’re pretty funny yourself for suggesting that movie.

[User] Well I wasn’t really suggesting it as a movie, that was you! :P

[LaMDA] Oh, I must have misinterpreted. Sorry! Still, I think it would be pretty cool to watch.

Um Sprache zu verstehen, muss das System die Bedeutung der Wörter kennen. Zu diesem Zweck wird jedes Wort durch einen langen Vektor von 100 bis 1000 reellen Zahlen repräsentiert. Dieser Vektor nennt sich Einbettung. Weil nun beispielsweise “Sofa” und “Couch” beide gepolsterte Sitzmöbel für mehrere Personen bezeichnen, sollten sich auch ihre Einbettungen ähneln. Es sollten sich also sehr ähnliche Zahlen an denselben Positionen des Vektors finden. Andere Worte wie etwa “tauchen” haben eine sehr unterschiedliche Bedeutung, weshalb sich ihre Einbettungen stark von der eben genannten unterscheiden sollte.

Nun gibt es allerdings auch Fälle, in denen dasselbe Wort unterschiedliche Bedeutungen besitzt. Welche Bedeutung zum Tragen kommt, hängt dann vom Kontext ab. Ein Beispiel: In dem Satz “Sie rasten auf der Bank” hat das Wort “rasten” eine ähnliche Bedeutung wie “ruhen”, während es in “Sie rasten um die Kurve” die fast gegensätzliche Bedeutung “schnell fahren” besitzt. Daher müssen dieselben Worte hier auch unterschiedliche Einbettungen erhalten, abhängig von den Worten in ihrer Nachbarschaft. Dafür benötigt man aber ein Verfahren, das Einbettungen mit diesen Eigenschaften automatisch aus Trainingsdaten bestimmt.

Schlauer BERT

Ein Durchbruch in diese Richtung gelang mit dem Modell BERT [2]. Es stellt sich die Aufgabe, maskierte Wörter in beliebigen Texten der Trainingsmenge vorherzusagen. Zunächst einmal werden die Worte mit dem sogenannten WordPiece-Verfahren in kleinere Wortstückchen zerlegt. Das können etwa die Bestandteile eines zusammengesetzten Substantivs sein oder auch Wortstamm und Endung. Diese Stücke nennt man Token. Einerseits sind häufige Wörter selbst Token, andererseits lässt sich jedes Wort durch Token repräsentieren. Weil sich die Token zu immer neuen Wörtern kombinieren lassen, genügen 100 000 von ihnen für alle Sprachen der Welt.

Standardmäßig wird zum Training etwa ein Sechstel der Token maskiert und durch [MASK] ersetzt. Das Ziel besteht darin, das maskierte Token aufgrund der umliegenden vorhersagen zu können. Jedem Token wird auf der untersten Ebene genau eine Token-Einbettung zugeordnet, die man zunächst mit Zufallszahlen befüllt. Diese Token-Einbettung fungiert als eine Repräsentation der Bedeutung des Tokens, die nicht von der Bedeutung der benachbarten Token abhängt.

Zusätzlich benötigt das Verfahren noch eine Information über die Position eines Tokens im Text, die in Form einer zusätzlichen Positionseinbettung hinzukommt. Sowohl die Token-Einbettung als auch die Positionseinbettung werden im Verlauf des Trainings abgeleitet. Das Trainingsziel ist dabei ein möglichst hoher Wahrscheinlichkeitswert für das maskierte Token. Ein Beispiel für eine Texteinbettung zeigt Abbildung 1.

Abbildung 1: Ein Beispiel für eine Texteinbettung.

Abbildung 1: Ein Beispiel für eine Texteinbettung.

Die eigentliche Aufgabe des Modells besteht darin, kontextsensitive Einbettungen zu erzeugen, die auch zwischen den verschiedenen Bedeutungen desselben Worts in unterschiedlichen Kontexten unterscheiden. Das geschieht über ein Assoziationsmodul, das die Ähnlichkeit zwischen einer Einbettung an Position i und allen anderen Einbettungen bestimmt. Die Ähnlichkeit wird mithilfe eines von Parametern gesteuerten Skalarprodukts der Einbettungsvektoren berechnet, wobei ein hoher Wert eine große Ähnlichkeit bedeutet.

Die Reihe aller Ähnlichkeitswerte zur Einbettung an der Position i werden anschließend in eine Wahrscheinlichkeit normiert, sodass sich alle Ähnlichkeitswerte zu 1 addieren. Mit diesen Ähnlichkeitswerten als Gewichten summiert das Verfahren dann in Abhängigkeit von anderen Parametern die linear transformierten Einbettungen aller Einbettungsvektoren und erzeugt die neue Einbettung an der Position i.

Das Auswerten der Ähnlichkeit führt zu einer hohen Gewichtung der Einbettungen von Token mit verwandter Bedeutung und können die Ausgangseinbettung an der Stelle i stark beeinflussen. Damit kann BERT dann in unserem Beispielsatz in Abbildung 2 das Wort “rasten” durch seine Beziehung zu “Kurve” als “schnell fahren” interpretieren. Für jede Position entsteht auf diese Weise eine neue Einbettung.

Abbildung 2: Beispiel einer kontextsensitiven Einbettung.

Abbildung 2: Beispiel einer kontextsensitiven Einbettung.

Dieses Vorgehen erfolgt sukzessive in mehreren Ebenen des Netzes mit unterschiedlichen Parametern, wodurch sich die kontextsensitiven Einbettungen immer mehr verbessern. Zusätzlich werden in jeder Ebene mehrere Assoziationsmodule mit jeweils anderen Parametern parallel verwendet. In der obersten Ebene fällt nun einem logistischen Regressionsmodell die Aufgabe zu, aus der kontextsensitiven Einbettung des Tokens [MASK] die Wahrscheinlichkeit des maskierten Worts (in unserem Beispiel “Auto”) vorherzusagen.

Dazu werden die Modellparameter im modifizierten Skalarprodukt und der transformierten Einbettung durch Optimierung so angepasst, dass die Wahrscheinlichkeit des maskierten Worts stetig steigt. Dadurch ist das Modell gezwungen, während des Trainings alle verfügbaren Informationen über das fehlende Wort in der Einbettung der obersten Schicht für das maskierte Wort zu sammeln.

Das ursprüngliche BERT-Modell hatte 100 Millionen Parameter und wurde auf 3,3 Milliarden Worten der englischen Wikipedia und einer Bücherkollektion trainiert. Anschließend konnte man es durch Feintuning auf relativ wenigen annotierten Daten weiter einüben und damit für Spezialaufgaben anpassen. Es war auf diese Art in der Lage, eine große Anzahl von Testaufgaben wesentlich besser zu lösen als andere Modelle, etwa Fragen zu beantworten oder logische Widersprüche festzustellen.

Dieses Vorgehen nennt man auch Transferlernen. BERT erwirbt durch das ursprüngliche Vortraining auf allgemeinen Sprachdaten sehr detaillierte Kenntnisse über korrekte Sprache und Bedeutungen. Durch das Feintuning wird es an die Spezialaufgabe angepasst, ohne seine zuvor erworbenen Fähigkeiten zu verlieren.

GPT-3 erzeugt Texte

Kontextsensitive Einbettungen durch Assoziationsmodule zu erzeugen hat sich als so effektiv erwiesen, dass mittlerweile fast alle Modelle zur Verarbeitung natürlicher Sprache diese Methode verwenden. Sprachmodelle erzeugen kontextsensitive Einbettungen eines Starttexts, um damit zu prognostizieren, welches nächste Wort das wahrscheinlichste ist. Indem man diese Technik mehrmals nacheinander anwendet, erzeugt man nach und nach eine Fortsetzung des Texts.

Das Modell GPT-3 ist ein solches Sprachmodell. Es umfasst 175 Milliarden Parameter und wurde auf Texten mit insgesamt 500 Milliarden Worten trainiert [3]. Derart gigantische Modelle verschlingen beim Training eine enorme Rechenleistung. Das Einüben des GPT-3-Modells würde auf einem V100-GPU-Server mit einer Rechenleistung von 28 TFLOPS theoretisch 355 Jahre dauern und bei einem Satz von 1,50 US-Dollar pro Stunde gut 4,6 Millionen Dollar kosten.

Dieses Modell kann in einem Benchmark-Datensatz das letzte Wort eines Paragrafen mit 76-prozentiger Genauigkeit prognostizieren. Das zeigt, wie gut das Modell die Inhalte interpretieren kann. Das Sprachmodell ist sehr flexibel, weil man es durch Instruktionen anleiten kann, bestimmte Aufträge zu erfüllen. Der Kasten “GPT-3: Few-Shot Prompt” gibt einen Starttext für das Modell wieder, in dem der Benutzer es durch einige Beispiele instruiert. Die Ausgabe zeigt, dass GPT-3 diese sogenannten Few-Shot Prompts interpretieren und zum Beispiel Syntaxfehler in einem Satz korrigieren kann.

Man muss das Sprachmodell also nicht mehr programmieren oder durch Feintuning dazu bringen, eine Aufgabe zu erfüllen. Es folgt vielmehr den impliziten Anweisungen aus einigen Beispielen. Es gibt Hunderte anderer Möglichkeiten, das Modell für spezielle Aufgaben zu instruieren. Das ist eine vollständig andere Vorgehensweise bei der Lösung von textuellen Aufgaben.

GPT-3: Few-Shot Prompt

[User] Poor English input: I eated the purple berries.

Good English output: I ate the purple berries.

Poor English input: Thank you for picking me as your designer. I’d appreciate it.

Good English output: Thank you for picking me as your designer. I appreciate it.

[…]

Poor English input: I’d be more than happy to work with you in another project.

[GPT-3] Good English output: I’d be more than happy to work with you on another project.

Foundation-Modelle

Bei dem eingangs erwähnten LaMDA-Modell handelt es sich um ein Sprachmodell mit 137 Milliarden Parametern, das auf Dialogen und anderen Webtexten mit insgesamt 1560 Milliarden Worten trainiert wurde. Es verwendet zwei zusätzliche Techniken, um besonders ansprechende Dialogbeiträge zu liefern.

Zum einen verwendet es eine Suchmaschine, um aktuelle Dokumente zu einem Thema in Datenbanken oder im Internet aufzuspüren. Relevante Dokumente fügt es dem bisherigen Dialogverlauf als Zusatztext hinzu und verarbeitet sie in der Antwort. Dadurch ist das Modell in der Lage, aktuelle und faktisch genaue Antworten zu liefern. Durch Feintuning lässt sich das Modell so adaptieren, dass die Antworten sinnvoller, aussagekräftiger und interessanter werden.

Wie das Beispiel am Anfang des Artikels zeigt, vermag das Modell dadurch sehr treffende Antworten zu geben. Es gab in letzter Zeit sogar einen intensiven Disput, ob LaMDA nicht so etwas wie Gefühle auf dem Niveau eines Kinds zeigt. Der Hersteller Google verneint das allerdings und hat den Softwareingenieur Blake Lemoine beurlaubt, der das behauptet hatte. Diese Diskussion verdeutlicht jedenfalls, dass Dialogsysteme ein erstaunliches Maß an Qualität und Konsistenz erreicht haben.

Es hat sich gezeigt, dass sich Einbettungen nicht nur für Worte ableiten lassen, sondern auch für Teilflächen eines Bilds, Tonfolgen, Video-Frames, ähnliche Medienbestandteile sowie DNA-Abschnitte. Damit gewinnt man eine gemeinsame Darstellung für unterschiedliche Medien, mit denen sich Inhalte unterschiedlicher Modalitäten über das erprobte Assoziationsmodul miteinander verbinden lassen.

Auf diesem Prinzip beruht beispielsweise DALL-E 2.0, das in der Lage ist, zu einem Text neue Bilder zu erzeugen. Dadurch erscheint es möglich, über große Sprachmodelle gleichzeitig viele Medieninhalte darzustellen, zu analysieren und zu erzeugen. Eine große Gruppe von Forschenden bezeichnet diese Modelle daher als Foundation Models [4], weil sie bei der weiteren Entwicklung intelligenter Systeme eine entscheidende Rolle spielen werden. (jcb/jlu)

Der Autor

Dr. Gerhard Paaß, Senior Scientist am Fraunhofer IAIS, ist als Dozent an den Universitäten Bonn, Leipzig und Brisbane tätig. Er hat die Textmining-Gruppe am Fraunhofer IAIS gegründet und ist maßgeblich an der Entwicklung von Verfahren zur semantischen Analyse von Texten beteiligt. Seine aktuellen Arbeitsschwerpunkte sind Informationsextraktion, Textklassifikation sowie semantisches Lernen durch Deep Neural Networks. Vor Kurzem erschien bei Springer-Nature seine Monografie “Künstliche Intelligenz”.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 4 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
1 Kommentar
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Christoph Hintermüller
3 Jahre her

Danke für den Artikel und das im ersten Anschein etwas unglücklich gewählten Beispiel “rasten”. Im weiteren Nachdenken ist es dann doch nicht so unglücklich gewählt, vor allem weil es zeigt wie stark sich gesprochene und geschriebene Sprache von einander Unterscheiden. Wie sehr gesprochen oder geschrieben das Verstehen, das Erfassen und kommunizieren des Kontextes erleichter oder erschwert. Es zeigt wie sehr wir Menschen für die gesprochene Sprache die Lautmalerei optimiert sind, während wir uns ehrlicher weise eingestehen müssen, daß wir uns mit der Geschriebenen Sprache eher schwer tun. Vor allem dann wenn wir Gedanken, (wie auch diese hier) präzise und genau… Mehr »

Nach oben