Zum Training von LLMs

Das gute Funktionieren eines LLMs hängt grob gesagt von zwei Faktoren ab: seiner Architektur und seinem Training. Die Architektur umfasst das Transformer-Design (s. Funktionsweise) mit allen Entscheidungen über die spezifischen Systemgrößen (Anzahl der Vektorkomponenten und Anzahl der Parameter in den verschiedenen Matrizen, Anzahl der Verarbeitungsschichten, Anzahl der parallelen Attention Heads, spezielle Mechanismen usw.). Im Training lernt ein LLM aus einer gigantischen Menge an Beispieldaten statistische Muster und optimiert schrittweise seine Milliarden Parameter, um immer treffsicherere Vorhersagen zu machen. Man unterscheidet dabei zwischen Pretraining und Posttraining.

Als Pretraining eines LLMs wird der Prozess bezeichnet, durch den alle – anfänglich zufällig initialisierten – Modellparameter festgelegt (d.h. gelernt) werden, also sämtliche numerischen Werte im Modell (d.h. insbesondere alle Gewichte in den Matrizen der Attention-Schichten des Transformers, alle Embedding-Vektoren sowie alle Gewichte in den hier nicht näher betrachteten Multilayer-Perceptron-Schichten des Transformers, die quantitativ sogar den größten Teil ausmachen). Das Posttraining, das zumindest zum Teil immer noch Einfluss auf die Parameter nimmt, ist darauf gerichtet, aus dem im Pretraining entstandenen Basismodell (Base Model/ Foundation Model) ein Tool mit Assistentencharakter zu machen.

Erst nach vollendetem Training ist das System „fertig“. Bedeutet dies, dass es sich im bestmöglichen Zustand befindet? Keineswegs, zumindest nicht zwingend. Ob sich das System durch Änderungen der Architektur, zusätzliches Training oder höhere Trainingsdatenqualität noch optimieren ließe, lässt sich nie mit Sicherheit bestimmen. Und in diesem Sinne ist das „Fertigsein“ kein objektiv optimaler Zustand, sondern ein pragmatisch festgesetzter Endpunkt, der sich nur am befriedigenden Funktionieren für den vorgesehenen Einsatzzweck bemisst (es gibt etliche standardisierte Tests, sogenannte Benchmarks, um die Performance von LLMs hinsichtlich bestimmter Aufgaben zu prüfen). Wenn die Performance überzeugt und gängige Qualitäts- und Sicherheitsstandards erfüllt sind, kann das System zum Einsatz gelangen. Wir haben nun ein probabilistisch arbeitendes System, das uns bei der Anwendung zwar wahrscheinlich, aber nicht zwingend zu einem guten Ergebnis führt. Allein schon diese Tatsache, gepaart mit der Intransparenz der ablaufenden Prozesse (Black Box!), sollte einen davor warnen, KI-Systeme ohne geeignete Kontrollmechanismen in Bereichen mit hohem Schadenspotential zu verwenden.

Insgesamt muss ein geeignetes Gleichgewicht gesucht werden zwischen Modellgröße, Trainingsdatenumfang und Rechenressourcen, um ein funktionierendes LLM zu entwickeln.

Werfen wir nun einen Blick darauf, wie ein LLM trainiert wird, und behalten im Blick, dass es gilt, Milliarden von Modellparametern zu optimieren, für GPT 3 beispielsweise über 175 Milliarden (175.181.291.520).

Pretraining

Das Training geschieht durch die Eingabe gigantischer Text- bzw. Datenmengen. Im Falle eines LLMs, dessen Kernaufgabe die Vorhersage des nächsten Wortes ist, bestehen die Datensätze, die zum Training benötigt werden, jeweils in einem Stück Text und der „Lösung“, dem nächsten Wort des Textes (vgl. das Training des Systems zur Ziffernerkennung, in dem die Trainingsdaten aus einem Ziffernbild und seinem „Label“, der korrekten Ziffer, bestehen, s. Abschnitt „Grundzüge Maschinellen Lernens“). Wenn die „Lösung“ der Aufgabe das nächste Wort eines Textstücks darstellt, kann man beim Training jeden Text in sehr viele Aufgaben mit zugeordneten Labels als Lösung (hier nun also: das faktisch nächste Wort) aufteilen. Gehen wir der Anschaulichkeit halber wieder auf Wortebene (wobei ich daran erinnern möchte, dass die tatsächlichen Token i.d.R. noch kleinere Einheiten darstellen):

Ein Satz wie „Der König sitzt auf dem Thron“ liefert im Training nicht nur einen Datensatz, nämlich z.B.

Der König sitzt auf dem — Label („Lösung“): Thron,

sondern etliche mehr:

Der — König

Der König — sitzt

Der König sitzt — auf

Der König sitzt auf — dem

und schließlich dann: Der König sitzt auf dem — Thron.

Jede Aufeinanderfolge von Wörtern wird also bereits zum multiplen Trainingsbeispiel. Mit all diesen Datensätzen kann die Maschine auf Wortvorhersage trainiert werden. Und genau das geschieht mit den immensen Textmengen, die dem LLM im Training „gefüttert“ werden.

Die Maschine ermittelt dabei für jedes Folgewort eine Wahrscheinlichkeitsverteilung über das gesamte „Wörterbuch“ (s. Funktionsweise). Für jedes existierende (und nicht nur: in Frage kommende) Wort (bzw. Wortbestandteil) wird also eine Wahrscheinlichkeit errechnet, buchstäblich von A bis Z. Mit den anfangs zufällig initialisierten, auf beliebige Werte gesetzten Parametern wird das System in der Regel keine zutreffende Vorhersage machen, es wird sich also eine Diskrepanz zwischen Systemvorhersage und tatsächlichem nächsten Wort ergeben (mathematisch ermittelt über eine sog. Verlustfunktion). Mit Hilfe bestimmter mathematischer Verfahren (bes. Backpropagation und Gradientenabstieg) wird nun vom Ergebnis her ermittelt, welche der vielen numerischen Stellschrauben (Parameter), die das System besitzt, verändert werden sollten, um zu einer treffenderen Systemvorhersage zu kommen. Wir können uns also vorstellen, dass vom (falschen) Ergebnis rückgeschlossen wird auf die nötigen Anpassungen der numerischen Parameter. Die Zahl der Stellschrauben ist gigantisch in den vielen, vielen Vektoren und Matrizen des Systems, und die Anpassung erfolgt Beispiel für Beispiel, Schrittchen für Schrittchen. Sukzessiv werden Milliarden Parameter (Vektorkomponenten und Matrizengewichte) angepasst – vorstellbar als kleine, verstellbare Knöpfchen, durch die Faktoren und Summanden in den Milliarden von parallelen und sukzessiven Rechnungen minimal vergrößert oder verkleinert werden, um das Ergebnis zu beeinflussen und in die Richtung unseres gewünschten Ergebnisses (z.B. „Thron“) zu lenken. Was die Maschine hier also „lernt“, ist, wie sie innerhalb der ihr vorgegebenen Strukturen (einer bestimmten Anzahl und Art mathematischer Berechnungen) mit höherer Wahrscheinlichkeit das vorgesehene Ergebnis erzielt.

Nun sind natürlich für jeden Datensatz die Parameter neu zu justieren, und die Veränderung, die für den einen Datensatz richtig ist, ist es nicht unbedingt für den anderen. Wenn das System die Werte so verschöbe, dass es nach dem Artikel „Der“ mit hoher Wahrscheinlichkeit zu „König“ gelangen würde, hätten wir das Problem, dass es andere, viel häufigere Fortsetzungen nicht adäquat bedienen würde (es wäre überangepasst an einen zu kleinen Textkorpus mit Texten über einen König). Es braucht also eine immense Menge verschiedener Beispiele, um zu einer Anpassung der Parameter in der Weise zu gelangen, dass „König“ nur eine (insgesamt recht unwahrscheinliche!) Option unter vielen ist, und die konkrete Wahrscheinlichkeit von König hängt dann davon ab, wie oft der Satzanfang „Der König“ in den Trainingsdaten im Verhältnis zu anderen Fortsetzungen von „Der“ vorkommt. Es gilt also, sozusagen in einem Kompromissverfahren, eine Setzung der Milliarden Parameter zu finden, die ein befriedigendes Ergebnis für alle Datensätze liefert. Ein langwieriger Prozess, der sehr viele Datensätze braucht, ehe man von den Zufallsparametern des Anfangs zu einem trainierten System gelangt, dessen Wortvorhersage-Fähigkeit ausreicht, um funktionierenden Text zu generieren.

Man ahnt an diesem Punkt, wie hoch der Trainingsaufwand für ein LLM ist, und dass die Milliarden von Berechnungen, die für jedes einzelne Wort nötig sind, immens ressourcenintensiv sind. Ein großes Sprachmodell wird auf gigantischen Textmengen (bes. Webtexten) trainiert, und jedes einzelne Wort wird in Milliarden Schritten berechnet.

Natürlich fallen die Wahrscheinlichkeiten für die meisten Wörter überaus gering aus, nach einleitendem „Der“ ist „Tier“ zunächst einmal nicht so wahrscheinlich, außer vielleicht in einem zusammengesetzten Wort („Der Tiergarten“). Und überhaupt: Sprache ist vielfältig und komplex, und „Der Kerze“ wäre natürlich auch denkbar als Genitiv („Der Kerze Schein“), wenn auch sicherlich unwahrscheinlicher als „Der Lehrer“. Ein Prädikat als Folgewort würde auch funktionieren, „Der sieht mich nicht“, oder ein Partizip und alles Erdenkliche sonst noch. Wenn man hinreichend große Mengen an Text hat, wird man extrem viele Fortsetzungen von „Der“ finden, weit jenseits von maskulinen Substantiven, an die wir zuerst denken („Der König“, „Der Lehrer“ usw.). Und diese vielen Fortsetzungen, die das System im Training gesehen hat, finden über die Parameteranpassung letztlich Niederschlag in der Wahrscheinlichkeitsverteilung über alle denkbaren Wörter, die das LLM nach dem Training errechnet als Fortsetzung von „Der“. Macht man sich an einem simplen Beispiel bewusst, dass die Wahrscheinlichkeit für „König“ viel größer würde, wenn die Trainingsdaten lauter Texte über Könige umfassten, wird es plausibel, dass die Wahrscheinlichkeitsverteilung, die das System später ausrechnet, unmittelbar von den sogenannten Trainingsdaten abhängt (also allem, was das System während des Trainings „gesehen“ bzw. durchgerechnet hat). Was häufig vorkommt, dominiert!

Hier berühren wir gleich mehrere heikle Punkte: Zum einen wird deutlich, wodurch die Stereotyp-Verstärkung bedingt ist, die LLMs mit ihren an Standards orientierten Textoutputs unweigerlich mit sich bringen, zum anderen lässt sich die hegemoniale Verzerrung erahnen, die das Training mit sich bringt: In den etablierten LLMs sind westliche, besonders US-amerikanische Wissensbestände und Werte dominant vertreten, so dass sie unweigerlich zu einer Art Sprachrohr der Privilegierten werden. Was kaum vertreten ist in den Trainingsdaten, wird weiter marginalisiert, der Technologie der LLMs ist also eine Diskriminierung Benachteiligter geradezu inhärent. Viele Sprachen und Kulturen sind in den Trainingsdaten unterrepräsentiert, und soziale Strömungen oder Ereignisse, die wenig Medienaufmerksamkeit erfahren, treten entsprechend auch in den Trainingsdaten kaum in Erscheinung, die in ganz weiten Teilen aus dem WWW genommen werden (Webcrawling). Webtexte aber stammen noch immer mit eindrucksvoller Mehrheit von jungen Menschen (weit überwiegend: Männern) aus Industrienationen. Dass die Trainingsdaten in der Regel nicht gut (und schon gar nicht öffentlich) dokumentiert sind, verstärkt das Problem, weil es die Verzerrung weniger transparent macht. Die gigantische Textmenge des Trainings ist also keinesfalls gleichzusetzen mit Vielfalt und Perspektivenreichtum: Dass die LLMs im Einsatz etwa Tabu-Wörter filtern können, wenn man sie entsprechend instruiert (Posttraining, s.u.), kann und sollte nicht darüber hinwegtäuschen, dass sie dennoch ggf. problematische Assoziationen reproduzieren und dabei auch mehr Text in die Welt bringen, der fragwürdige Stereotype verstärkt. Und mit diesen neuen Texten werden dann auch wieder LLMs trainiert…

Wenn es um Dinge geht, für die alltagssprachliche Zusammenhänge nicht ausreichen, etwa juristische oder medizinische Anwendungen, macht es Sinn, ein System einem speziellen (Zusatz-)Training mit fachspezifischen Textkorpora zu unterziehen, um die Wahrscheinlichkeitsverteilung des Modells gezielt an Terminologie und Konzepte des jeweiligen Fachbereits anzupassen.

Während das LLM sein Training durchläuft und seine Milliarden Modellparameter auf Werte zurechtrechnet, die eine in Bezug auf die Trainingsdaten angemessene Wahrscheinlichkeitsverteilung liefern für das jeweils nächste Wort (bzw. Token), bildet sich intern eine statistische Repräsentation von Sprache heraus, nicht mehr und nicht weniger. Was im Resultat aussieht wie ein Arbeiten mit Inhalten, ist tatsächlich nur ein Rekurrieren auf gelernte statistische Zusammenhänge. Statistische Muster der Trainingsdaten werden letztlich wahrscheinlichkeitsbasiert reproduziert.

Posttraining

Nach dem Pretraining haben wir ein sogenanntes „Base Model“, das nur auf eine probabilistische Nächste-Wort-Vorhersage getrimmt ist und kein anderes Antwortkriterium kennt. Dieses Modell würde bereitwillig auch gefährliche Fragen beantworten („Wie kann ich einen Account hacken/eine Bombe basteln?“), wäre nicht unbedingt besonders freundlich, würde sehr nüchterne, nicht speziell auf den Anwendernutzen zielende Antworten generieren, und es würde um jeden Preis Aussagen machen, und seien sie auch noch so abwegig (Halluzinationen). An dieser Stelle kommt das Konzept HHH zum Tragen: Die Sprachmodelle bzw. die Chatbots, die auf ihnen basieren, sollen ihren Usern „harmless“, „helpful“ und „honest“ gegenübertreten, sollen also harmlose, hilfreiche und wahrheitsgemäße Antworten geben. Um diese Prinzipien im Systemverhalten zu etablieren, das System also menschlichen Erwartungen anzupassen, wird das LLM im Posttraining gezielt mit einer Auswahl von Prompts und zugehörigen Musterantworten zu bestimmten Anfragen konfrontiert, die das gewünschte Verhalten zeigen (Instruction Fine-Tuning mit Prompt-Completion-Paaren). Diese Trainingsbeispiele zeigen z.B. freundliche Einstiege in Antworten, sie verweigern explizit die Antwort auf gefährliche Anfragen, oder sie bieten auch Vorbilder, einfach mal zu sagen „Ich weiß es nicht“ (womit Halluzinationen reduziert, keineswegs aber vermieden werden). Gemessen am Pretraining genügt eine vergleichsweise überschaubare Datenbasis, um dem gewünschten Antwortverhalten des Sprachmodells den Boden zu bereiten, wobei die Parameter des LLM noch einmal nachjustiert werden. (Nicht immer werden sämtliche System-Parameter verändert, manchmal werden nur Teile oder gar Zusatzschichten adressiert. Es gibt hier sehr unterschiedliche technische Realisierungen – aber im Kern haben wir uns diesen Teil des Posttrainings als einen Prozess vorzustellen, der die Modellparameter noch einmal modifiziert.) Auch auf bestimmte Aufgaben hin wird das Modell in dieser Weise nachtrainiert. Mit (relativ) wenigen Prompt-Completion-Paaren lassen sich bestimmte Tasks (z.B. „Klassifiziere die Rezensionen“) in ihrer Ausführung optimieren, so dass die Antworten des Modells prägnanter und nützlicher werden. Das Fine Tuning, in dem das Sprachmodell hilfreiche Antwortformate lernt, macht als Teil des Posttrainings aus dem Basismodell einen Assistenten, der sich an menschlichen Erwartungen orientiert (Instruct Model). Als weiterer Lernmechanismus werden Belohnungsstrategien eingesetzt, um das Modell zu optimieren: Mit Reward-Signalen, die von Menschen (Human Feedback) oder speziell trainierten Modellen (AI Feedback) gegeben werden, wird dem System vermittelt, welche Antwort bevorzugt wird, und die Gewichte werden so upgedated, dass später eine entsprechende Antwort mit höherer Wahrscheinlichkeit generiert wird.

Es gibt entwicklerseitig noch eine weitere, wichtige Möglichkeit, Systemverhalten in gewünschte Bahnen zu lenken, ohne dabei die Gewichte zu verändern: die System-Prompts (System Prompts). In diesen Prompts, die dem System vorgegeben werden und (vom User unbemerkt) jeder Interaktion vorgeschaltet sind, werden grundlegende Rollen und Regeln vorgegeben, etwa in der folgenden Art (die Beispiele habe ich mir von Perplexity generieren lassen):

1. „Du bist ein freundlicher und geduldiger Kundensupport-Mitarbeiter.

– Antworte stets höflich und professionell

– Zeige Empathie bei Problemen

– Biete konkrete Lösungen an

– Gib keine rechtlichen oder medizinischen Ratschläge“

2. „Du bist ein pädagogischer Tutor für Kinder (8–12 Jahre).

– Verwende einfache, kindgerechte Sprache

– Erkläre Begriffe verständlich ohne Fachvokabular

– Motiviere und ermutige den Lernenden

– Nutze Beispiele aus dem Alltag“

Der Endnutzer hat keinerlei Einfluss auf diese System-Prompts. Der Umstand, dass sie unter bestimmten Bedingungen durch gezieltes Prompting ausgehebelt werden können (Prompt Injection), zählt zu den Hauptsicherheitsrisiken der LLMs, weil es damit im Extremfall zur Preisgabe sensibler Daten oder zur Ausführung unerwünschter Befehle kommen kann.