LLMs erzeugen Texte scheinbar völlig random! Aber ist Reproduzierbarkeit in der Forschung dennoch möglich? In dieser Sitzung am 26. Mai erklärte Prof. Dr. Nils Reiter, wie Forschung mit oder über Large Language Models (LLMs) reproduzierbar gestaltet werden kann.
Vorwort
Forschung ist ein vielseitiger Vorgang, dessen Bestandteile mit verschiedenen Graden von Reproduzierbarkeit gekennzeichnet sein könnten. Die Auslöser einer Forschungsidee, die wohl aus Einfall und Kreativität bestehen könnten, sind oft unreproduzierbar und brauchen auch nicht so zu sein. Hingegen ist es normalerweise erwartet, dass die Umsetzung einer Forschungsidee weitgehend reproduzierbar bleibt. Prof. Dr. Nils Reiter sprach über diese beiden Aspekte, nämlich den Kontext der Entdeckung und den Kontext der Rechtfertigung. Hier soll ein Unterschied gemacht werden und darauf geachtet, wenn man über Reproduzierbarkeit spricht.
Prof. Reiter erklärte, dass Forschung mit LLMs noch komplizierterer Natur sei. Forschende seien ständig mit der Entscheidung konfrontiert: will ich höhere Liestungsfähigkeit von closed-source Modellen oder höhere Reproduzierbarkeit von open-source Modellen? In der NLP (Natural Language Processing) Forschung kann die Nutzung von closed-source Modellen besonders problematisch sein, da kein Zugriff auf Information über die Training-Daten bedeutet, dass es überhaupt nicht kontrollierbar ist, ob das Modell Daten von NLP-Aufgaben im Voraus gelernt hat. So berichten Ballocu et al. (2024), dass ungefähr 4,7 Millionen Proben aus 263 NLP Benchmarks GPT-3.5 und GPT-4 schon bekannt sind. Mit LLMs zu forschen sollte eine bewusste und informierte Entscheidung sein, damit die Reproduzierbarkeit und die Validität der Ergibnisse möglichst wenig beeinträchtigt werden.
Einleitung
Stell dir vor, du führst eine Forschung durch, die sich mit ChatGPT beschäftigt. Ein konkretes Beispiel aus meiner früheren Forschung: Ich (Ali) wollte untersuchen, inwiefern ChatGPT geschlechtsspezifische Stereotype bei der Erstellung von Pronomenübungen reproduziert. Dafür habe ich ChatGPT unter anderem folgende Anweisung gegeben:
Provide me 20 singular pronoun exercises for 3rd grade A1 English learners.
Das Ergebnis war ernüchternd. In mehreren Fällen hat ChatGPT stereotype Geschlechterrollen wiedergegeben, etwa mit Sätzen wie:
„My sister is a nurse. She is…“ (geschlechtsspezifische Verknüpfung von Frauen mit Pflegeberufen)
„Mom is cooking. She is…“ (mütterliche Zuordnung von Hausarbeit)
„Maria plays with her doll every day. She…“ (Reproduktion weiblich konnotierter Interessen durch Spielzeug)
Diese Ergebnisse waren zwar aufschlussreich, doch selbst wenn andere Forschende dieselbe Version von ChatGPT verwenden würden, erhielten sie häufig abweichende Antworten. Dadurch erwies sich meine Forschung als nicht reproduzierbar. In seinem Vortrag zeigte Prof. Reiter jedoch, welche drei Voraussetzungen gegeben sein müssen, damit die Forschung mit LLMs reproduzierbar sein kann.
1) Verwende ein lokales LLM
Der Betrieb eines Large Language Models (LLM) erfordert bestimmte technische Voraussetzungen: leistungsfähige Hardware, wie eine geeignete GPU, sowie ausreichend Speicherplatz. Da dies für viele Nutzer*innen kostspielig ist, werden LLMs wie ChatGPT oder Gemini in der Regel von Unternehmen wie OpenAI gehostet und über deren Plattformen bereitgestellt. Das bringt jedoch ein Problem für die Reproduzierbarkeit mit sich: Die Modelle werden kontinuierlich aktualisiert, ältere Versionen entfernt. So wurden bereits über 50 Modelle von OpenAI eingestellt. Hunderte wissenschaftliche Arbeiten, die auf diesen Modellen basieren, sind dadurch heute nicht mehr reproduzierbar, da die zugrunde liegenden Modelle schlicht nicht mehr verfügbar sind. Um dies zu vermeiden und die Reproduzierbarkeit sicherzustellen, ist es entscheidend, das LLM lokal auf dem eigenen Rechner/Server auszuführen. Zudem sollte man in der Publikation relevante Informationen angeben: etwa welches Modell in welcher Version, unter welchem Betriebssystem und mit welcher Hardware verwendet wurde.
2) Lege Temperature & Co fest
LLMs generieren Texte, indem sie auf Basis zuvor gelernter Sprachmuster vorhersagen, welches Wort als Nächstes in einer Sequenz erscheint. Bei einem Satz wie „Ich habe dieses ____ gegessen“ ist die Wahrscheinlichkeit hoch, dass das Modell Wörter wie „Sandwich“ oder „Dessert“ auswählt. „Berg“ hingegen wäre statistisch eher unwahrscheinlich.
Würde das Modell jedoch stets nur das wahrscheinlichste Wort wählen, wären die Ergebnisse monoton, mechanisch und wenig menschenähnlich. Um sprachliche gelegentliche Überraschungen zu ermöglichen, wird daher gezielt kontrollierte Zufälligkeit eingebaut. Hier kommt der sogenannte Temperature-Parameter ins Spiel. Er beeinflusst, wie „mutig“ das Modell bei der Auswahl weniger wahrscheinlicher Wörter ist:
Bei niedriger Temperatur (z. B. 0,1–0,5) generiert das Modell sichere, vorhersagbare, aber auch mechanischere Texte.
Bei höherer Temperatur (z. B. 0,7–1,5) entstehen kreativere oder vielfältigere, aber auch weniger kohärente Texte.
Temperatur bestimmt also die Wahrscheinlichkeitsverteilung von allen möglichen Wörtern. Zwei weitere Parameter, und zwar Topk und Topp, spezifizieren die Liste der auszuwählenden Wörter. Topk setzt einen Schwellenwert fest, bis zu welchem wahrscheinlichsten Wort das Modell bei der Auswahl berücksichtigen soll; Topp setzt ebenfalls einen Schwellenwert fest, unter dem die kumulierte Wahrscheinlichkeit (die Summe der Wahrschienlichkeit von wahrscheinlichsten Wörten) bleiben muss. Zusammen mit Temperatur ermöglichen Topk und Topp eine flexible Steuerung des Stils von generierten Texten.
Für wissenschaftliche Untersuchungen oder Anwendungen mit LLMs ist es entscheidend, die verwendete Temperature-, Topk- und Topp-Einstellung festzulegen und transparent zu dokumentieren, um Reproduzierbarkeit zu gewährleisten. Dies geschieht in der Regel über einen entsprechenden Parameter in der API-Anfrage oder im verwendeten Programmier-Framework. Die konkrete Syntax kann je nach Modell oder Bibliothek (z. B. Hugging Face, OpenAI API) variieren.
3) Lege die Seed-Nummer fest
Der Seed ist ein Startwert für den Zufallszahlengenerator, der das Verhalten des Modells bei der Textgenerierung beeinflusst. Während der Temperature-Parameter festlegt, wie wahrscheinlich ein Wort im Vergleich zu anderen gewählt wird (also die Wahrscheinlichkeitsverteilung formt), bestimmt der Seed, welche konkrete Abfolge von Entscheidungen der Zufallsgenerator (und damit das Modell) trifft.
Wenn man den Seed festlegt (z. B. seed=42
), folgt das Modell bei jeder Ausführung genau derselben „Route“ durch die möglichen Wortauswahlen – unter gleichen Bedingungen (Input, Temperature, Modellversion etc.). Dadurch wird sichergestellt, dass bei wiederholtem Ausführen exakt dasselbe Ergebnis generiert wird.
Je nach Programmierschnittstelle (z. B. Hugging Face, OpenAI, Python-Bibliotheken) erfolgt dies über unterschiedliche Parameter – z. B. torch.manual_seed()
in PyTorch oder seed=
im API-Call.
Prof. Dr. Nils Reiter also has his own blog and has recently published about Large Language Models and Scientific Writing. Check it out: https://nilsreiter.de/blog/!
Fazit
Wenn du das nächste Mal eine Forschung mit oder über LLMs durchführen möchtest, stelle sicher, dass du
ein lokales Modell verwendest,
die Temperature-Einstellung fixierst und
die Seed-Nummer festlegst.
Achte darauf, alle diese Schritte konsequent umzusetzen, denn ein fixer Seed allein nützt nicht, wenn das Modell, das du verwendest, aus dem Internet entfernt wird und deine Forschung dadurch nicht reproduzierbar bleibt. Sonst droht deiner Studie die berüchtigte, IrreproducibiliTee :)
Fotos: Während der Veranstaltung von Ali Yıldız aufgenommen (CC0)