# Sprachmodell

Ein Sprachmodell (englisch language model) ist ein mathematisches Modell, das die Abfolge von Elementen in einer Sequenz (zum Beispiel von Buchstaben oder Wörtern in natürlichsprachlichen Texten) modelliert, meist in Form eines stochastischen Prozesses.
Sprachmodelle spielen eine zentrale Rolle in der modernen Computerlinguistik und sind eine entscheidende Komponente dortiger Praxisanwendungen, etwa bei der Textgenerierung zur maschinellen Übersetzung oder Spracherkennung. Bekanntheit gewonnen haben sie durch das Aufkommen von Generativer Künstlicher Intelligenz. So ist auch das ChatGPT zugrunde liegende GPT ein Sprachmodell.

## Mathematische Beschreibung

Sprachmodelle modellieren Sequenzen (zum Beispiel Sätze) als Abfolgen von Elementen (zum Beispiel Buchstaben oder Wörtern). In stochastischen Sprachmodellen sind diese Elemente Zufallsgrößen $X_{1},X_{2},\ldots$ und bilden einen zeitdiskreten stochastischen Prozess. Um dasselbe Modell für Sequenzen unterschiedlicher Länge $n$ einsetzen zu können, werden ihr Beginn und ihr Ende typischerweise durch zusätzliche Zufallsgrößen $X_{0}$ und $X_{n+1}$ markiert, die einen speziellen Wert (mögliche Notation: $\bot$) annehmen. Die Wahrscheinlichkeit einer konkreten Sequenz $w_{1},\ldots ,w_{n}$ lässt sich dann formulieren als die Wahrscheinlichkeit der Konjunktion
    $P\left(X_{0}=\bot \wedge X_{1}=w_{1}\wedge \cdots \wedge X_{n}=w_{n}\wedge X_{n+1}=\bot \right)$.
Eine häufige Kurzschreibweise für diese Wahrscheinlichkeit lautet
    $P\left(\bot ,w_{1},\ldots ,w_{n},\bot \right)$.
Nach dem Gesetz der totalen Wahrscheinlichkeit lässt sich diese Wahrscheinlichkeit auch so schreiben:
    ${\begin{alignedat}{3}&P\left(X_{0}=\bot \wedge X_{1}=w_{1}\wedge \cdots \wedge X_{n}=w_{n}\wedge X_{n+1}=\bot \right)&=&&&P\left(X_{0}=\bot \right)\\&&&&\cdot&P\left(X_{1}=w_{1}\mid X_{0}=\bot \right)\\&&&&\cdot&P\left(X_{2}=w_{2}\mid X_{0}=\bot \wedge X_{1}=w_{1}\right)\\&&&&&\vdots \\&&&&\cdot&P\left(X_{n}=w_{n}\mid X_{0}=\bot \wedge X_{1}=w_{1}\wedge \cdots \wedge X_{n-1}=w_{n-1}\right)\\&&&&\cdot&P\left(X_{n+1}=\bot \mid X_{0}=\bot \wedge X_{1}=w_{1}\wedge \cdots \wedge X_{n}=w_{n}\right){\text{.}}\end{alignedat}}$
Oder kurz:
    $P\left(\bot ,w_{1},\ldots ,w_{n},\bot \right)=P\left(\bot \right)\cdot P\left(w_{1}\mid \bot \right)\cdot P\left(w_{2}\mid \bot ,w_{1}\right)\cdot \cdots \cdot P\left(w_{n}\mid \bot ,w_{1},\ldots ,w_{n-1}\right)\cdot P\left(\bot \mid \bot ,w_{1},\ldots ,w_{n}\right)$.
In Worten: Die Wahrscheinlichkeit der Sequenz ist das Produkt der Wahrscheinlichkeiten für das jeweils nächste Element gegeben die bisherigen Elemente.
Da in der Modellierung für $X_{0}$ stets der Wert $\bot$ verwendet wird ($X_{0}=\bot$ fast sicher), gilt $P\left(X_{0}=\bot \right)=1$. Der entsprechende Faktor kann daher entfallen.
Unterschiedliche Arten stochastischer Sprachmodelle unterscheiden sich darin, wie sie die bedingten Wahrscheinlichkeiten $P\left(w_{i}\mid \bot ,w_{1},\ldots ,w_{i-1}\right)$ modellieren. Der Fall $w_{i}=\bot$ wird dabei häufig nicht gesondert betrachtet, sondern so getan, als ob auch $\bot$ ein gültiges Sequenzelement (zum Beispiel ein Wort) wäre.

### N-Gramme

Die Modellierung der bedingten Wahrscheinlichkeiten $P\left(w_{i}\mid \bot ,w_{1},\ldots ,w_{i-1}\right)$ muss mit beliebig langen Sequenzen $w_{1},\ldots ,w_{i-1}$ im Bedingungsteil umgehen können ($i$ kann beliebig groß sein). Es stehen aber nur endlich viele Modellparameter zur Verfügung. Ein klassischer Umgang damit ist die Markov-Annahme (englisch markov assumption), laut der die Wahrscheinlichkeit des nächsten Elements nur von einer begrenzten Anzahl $N$ unmittelbar vorhergehender Elemente abhängt (Markow-Kette $N$-ter Ordnung). Die Wahrscheinlichkeit, dass $w_{i}$ auf $\bot ,w_{1},\ldots ,w_{i-1}$ folgt, hängt (für $i\geq N$) also nur von $w_{i-N+1},\ldots ,w_{i-1}$ ab:
    $P\left(w_{i}\mid \bot ,w_{1},\ldots ,w_{i-1}\right)=P\left(w_{i}\mid w_{i-N+1},\ldots ,w_{i-1}\right)$.
Die $N$-Tupel $\left(w_{i-N+1},\ldots ,w_{i}\right)$ werden $N$-Gramme genannt.
Für $i<N$ ergibt sich keine Vereinfachung der bedingten Wahrscheinlichkeit; sie hängt vom kompletten Präfix $\bot ,w_{1},\ldots ,w_{i-1}$ ab. Um auch diesen Fall mit $N$-Grammen $\left(w_{i-N+1},\ldots ,w_{i}\right)$ abdecken zu können, definiert man häufig $w_{k}:=\bot$ für $k\leq 0$.
Die Modellparameter sind dann die bedingten Wahrscheinlichkeiten $P\left(w_{N}\mid w_{1},\ldots ,w_{N-1}\right)$ für alle $N$-Gramme $\left(w_{1},\ldots ,w_{N}\right)$, die sich leicht als relative Häufigkeiten aus Textkorpora abschätzen lassen. Vor allem für große $N$ können bestimmte $N$-Gramme aber so selten sein, dass sie in einem betrachteten Korpus überhaupt nicht vorkommen (Beispiel: das 8-Gramm Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo). Ein Großteil der Forschung zu $N$-Grammen hat sich daher mit Techniken (im Englischen smoothing techniques genannt) beschäftigt, mit denen positive Wahrscheinlichkeiten auch für solche „unbeobachteten“ $N$-Gramme geschätzt werden können.
Obwohl natürliche Sprache die Markov-Annahme im Allgemeinen nicht erfüllt, liefern bereits relativ kleine $N$ gute Sprachmodelle. $N$-Gramme waren jahrzehntelang der dominierende Ansatz zur Sprachmodellierung.

### Neuronale Sprachmodelle

In neuronalen Sprachmodellen werden die Wahrscheinlichkeiten $P\left(w_{i}\mid \bot ,w_{1},\ldots ,w_{i-1}\right)$ von künstlichen neuronalen Netzen berechnet. Statt Wahrscheinlichkeiten direkt abzuschätzen, werden also Parameter (Gewichte) des Netzes geschätzt. Die Berechnungsstruktur kann (etwa durch Verwendung von Softmax als Aktivierungsfunktion der letzten Schicht) so vorgegeben werden, dass Nullwahrscheinlichkeiten ausgeschlossen sind.
Auch neuronalen Sprachmodellen kann die Markov-Annahme zugrunde liegen. Ein Ansatz, Wahrscheinlichkeiten von Trigrammen (3-Grammen) nicht direkt aus einem Korpus zu schätzen, sondern von einem neuronalen Netzwerk berechnen zu lassen, findet sich bereits 1988. In einer neueren Architektur von Bengio et al. (2003) gibt es für jedes Element (Wort) und auch für den Start- und Endmarker je einen Parametervektor; zur Berechnung werden die Vektoren der $N-1$ Wörter aus dem Bedingungsteil ($w_{i-N+1},\ldots ,w_{i-1}$) konkateniert und über eine oder mehrere Netzwerkschichten (englisch hidden layers) in eine Wahrscheinlichkeitsverteilung für das nächste Wort ($w_{i}$) transformiert. Sowohl die Komponenten der Vektoren für die Wörter als auch die Gewichte der Netzwerkschichten werden als Modellparameter geschätzt. Die Wahrscheinlichkeiten $P\left(w_{i}\mid \bot ,w_{1},\ldots ,w_{i-1}\right)$ werden also mit einer Formel (der Berechnungsvorschrift des neuronalen Netzes) berechnet, statt aus einer Tabelle zum Beispiel ausgezählter relativer Häufigkeiten abgelesen zu werden.
Vorteile dieser Modellierung gegenüber „gewöhnlichen“ $N$-Grammen sind:
* Das Modell kann deutlich weniger Parameter haben. Die Anzahl der $N$-Gramme über einem Vokabular (zum Beispiel Menge aller vorkommenden Wörter inklusive Start- und Endmarker) der Größe $k$ beträgt $k^{N}$. Ein künstliches neuronales Netz der beschriebenen Form kann schon mit $k^{2}d$ Parametern auskommen, wobei $d$ die Dimension der Parametervektoren für die Wörter ist.
* Das Modell kann (über die Parametervektoren jedes einzelnen Wortes) Wörter zusammenfassen, die ähnliche Auswirkungen auf die Wahrscheinlichkeit des folgenden Wortes haben. Beispielsweise braucht keine eigene Wahrscheinlichkeit dafür gespeichert zu werden, dass „Auto“ auf „blaues“, „grünes“, „rotes“ oder „schwarzes“ folgt – die Wahrscheinlichkeit ist jedes Mal ähnlich.
* Das Modell kann (über die Gewichte der hidden layers) verschiedenen Wörtern unterschiedlich starken Einfluss auf die Wahrscheinlichkeit des folgenden Wortes zumessen, beispielsweise nähere Wörter stärker gewichten als weiter entfernte.
Mithilfe rekurrenter neuronaler Netze wie LSTMs ist es sogar möglich, auf die Markov-Annahme zu verzichten. Dabei wird die komplette Sequenz $w_{1},\ldots ,w_{i-1}$ vom neuronalen Netz verarbeitet, um die Wahrscheinlichkeitsverteilung für das $i$-te Wort zu berechnen. Die Transformer-Architektur wurde speziell für diese Aufgabe entwickelt.

## Generierung mit Sprachmodellen

Stochastische Sprachmodelle berechnen Wahrscheinlichkeiten von Sequenzen als Produkt der bedingten Wahrscheinlichkeiten jedes einzelnen Elements gegeben die jeweils vorhergehenden Elemente. Aus der so spezifizierten Wahrscheinlichkeitsverteilung können umgekehrt auch Sequenzen erzeugt werden (englisch sampling). Dazu wird zunächst das erste Element (zum Beispiel das erste Wort in einem Satz) $w_{1}$ entsprechend der Verteilung $w\mapsto P\left(X_{1}=w\mid X_{0}=\bot \right)$ bestimmt. Ist beispielsweise
    ${\begin{alignedat}{2}&P\left(X_{1}={\text{Der}}\mid X_{0}=\bot \right)&=&{\frac {1}{2}}{\text{,}}\\&P\left(X_{1}={\text{Die}}\mid X_{0}=\bot \right)&=&{\frac {1}{6}}{\text{,}}\\&P\left(X_{1}={\text{Das}}\mid X_{0}=\bot \right)&=&{\frac {1}{3}}{\text{,}}\end{alignedat}}$
so wird mit Wahrscheinlichkeit ${\frac {1}{2}}$ das Wort „Der“ als erstes Wort gewählt, mit Wahrscheinlichkeit ${\frac {1}{6}}$ das Wort „Die“ und mit Wahrscheinlichkeit ${\frac {1}{3}}$ das Wort „Das“. Ist das erste Element (Wort) $w_{1}$ gewählt, wird analog das zweite entsprechend der Verteilung $w\mapsto P\left(X_{2}=w\mid X_{0}=\bot \wedge X_{1}=w_{1}\right)$ bestimmt. Wurde im obigen Beispiel etwa das Wort „Die“ gewählt, so könnten diese Wahrscheinlichkeiten
    ${\begin{alignedat}{2}&P\left(X_{2}={\text{Frau}}\mid X_{0}=\bot \wedge X_{1}={\text{Die}}\right)&=&{\frac {1}{10}}{\text{,}}\\&P\left(X_{2}={\text{Sonne}}\mid X_{0}=\bot \wedge X_{1}={\text{Die}}\right)&=&{\frac {1}{9}}{\text{,}}\\&P\left(X_{2}={\text{Huhn}}\mid X_{0}=\bot \wedge X_{1}={\text{Die}}\right)&=&{\frac {1}{100}}\\&\vdots \end{alignedat}}$
lauten. So wird sukzessive das jeweils nächste Element (Wort) bestimmt, bis die Wahl auf den Endmarker ($\bot$) fällt – dann endet die Sequenz.
Mitunter wird das nächste Element nicht anhand der gesamten Wahrscheinlichkeitsverteilung bestimmt, sondern es werden nur die $k$ Elemente mit der höchsten Wahrscheinlichkeit betrachtet bzw. nur die wahrscheinlichsten Elemente, deren Wahrscheinlichkeit aufsummiert gerade noch $p$ ergibt. Diese Strategie nennt man Top-$k$- bzw. Top-$p$-Sampling. Sie ist vor allem dann von Vorteil, wenn das Vokabular sehr groß ist (bei linguistischen Sprachmodellen, deren Elemente Wörter sind, meist der Fall), weil ansonsten häufig recht unwahrscheinliche Wörter ausgewählt werden. $k$ bzw. $p$ ist im Prinzip frei wählbar und steuert die Balance zwischen Kreativität und Kohärenz: je höher der Wert, desto kreativer können die Antworten sein. ChatGPT nutzt das Top-$k$-Sampling.
Wenn nicht irgendeine Sequenz erzeugt werden soll, sondern ein Bezug zu Eingangsdaten gewünscht ist, etwa bei der maschinellen Übersetzung (hier bestehen die Eingangsdaten aus dem zu übersetzenden Text in der Ausgangssprache), muss das Modell zusätzlich die Abhängigkeit von den Eingangsdaten ausdrücken. Die zu modellierenden Wahrscheinlichkeiten haben dann nicht nur die Form
    $P\left(w_{i}\mid \bot ,w_{1},\ldots ,w_{i-1}\right)$,
sondern
    $P\left(w_{i}\mid \bot ,w_{1},\ldots ,w_{i-1}\wedge E=e\right)$
für Eingangsdaten $e$. In neueren Architekturen wird das mitunter bewerkstelligt, indem mit der Generierung der Ausgabesequenz nicht beim Startmarker $\bot$ begonnen wird, sondern als „Fortsetzung“ einer Eingabesequenz, getrennt durch ein weiteres spezielles Element (mögliche Notation: $\$$). Soll beispielsweise der englische Satz Time flies like an arrow ins Deutsche übersetzt werden, so beginnt die Generierung der deutschen Übersetzung als „Fortführung“ der Sequenz
    $\left(\bot ,{\text{Time}},{\text{flies}},{\text{like}},{\text{an}},{\text{arrow}},\$\right)$,
das erste Wort der deutschen Ausgabe richtet sich nach der Verteilung
    $w\mapsto P\left(w\mid \bot ,{\text{Time}},{\text{flies}},{\text{like}},{\text{an}},{\text{arrow}},\$\right)$
und so weiter.
Auch GPT-Architekturen zur Sprachgenerierung, auf denen unter anderem ChatGPT basiert, nutzen diese Strategie.

## Sprachmodelle und künstliche Intelligenz

Laut Yoav Goldberg kann die Fähigkeit, das nächste Wort nach einer vorgegebenen Folge von Wörtern mit großer Genauigkeit vorherzusagen, als Indikator für Intelligenz auf menschlichem Niveau gesehen werden, da auch jedes Präfix der Form „Die Antwort auf Frage X ist“ vervollständigt werden können müsse und die Lösung dieser Aufgabe daher nicht nur Ausnutzung linguistischer Regularitäten, sondern auch eine große Menge an Weltwissen erfordere.

## Kleine und große Sprachmodelle

Inzwischen werden kleine Sprachmodelle entwickelt, um mit spezifischen (Arten von) Daten individuell angepasste Outputs zu erzeugen. Im Gegensatz zu den großen Sprachmodellen wie ChatGPT – die riesige Datenmengen verarbeiten und deren Qualität nicht sichergestellt werden kann – besteht bei kleinen Sprachmodellen eine bessere Kontrolle und Möglichkeit der Qualitätsprüfung der Inputs, so dass fachspezifisch qualitativ hochwertigere Outputs erwartet werden können.