Einführung in LargeLanguageModels

29.11.2023

Dies ist eine Zusammenfassung von Andrej Karpathys Video "Intro to Large Language Models"

1. Was ist ein Large Language Model (LLM)?

Einführung in Large Language Models

Ein LLM ist eine Art von neuronalem Netzwerk, das sich auf die Verarbeitung, das Verständnis und die Generierung menschlicher Sprache spezialisiert hat. Es gibt zwei Hauptkomponenten eines LLM:

  1. Die Parameter: Dies bezieht sich hauptsächlich auf die riesige Menge an Gleitkommazahlen, die die Gewichte (Weights) des Modells bilden. Der Begriff "Parameter" umfasst jedoch auch verschiedene Einstellungen und Konfigurationen, die das Sprachmodell definieren, einschließlich der Trainingsdaten, der Modellgröße, der Aktivierungsfunktionen usw.
  2. Der Code zur Ausführung der Parameter

Funktionsweise eines LLM

Gegeben eine Sequenz von Wörtern, sagt das LLM das nächste Wort voraus. Dies erfordert, dass die Parameter/das Netzwerk viel über die Welt lernen. All diese Informationen werden in die Parameter komprimiert.

Ein Beispiel für ein Open-Source-LLM ist llama-2-70b:

  • Komponenten: 70 Milliarden Parameterdatei + run.c
  • Modell von Meta

Wichtig zu beachten ist, dass wir nicht vollständig verstehen, wie jeder Parameter das Modell beeinflusst. Dies liegt daran:

  1. Es gibt Milliarden von Parametern, die im Netzwerk verteilt sind.
  2. Alles, was wir wissen, ist, wie man die Parameter iterativ anpasst, um sie bei der Vorhersage zu verbessern (dies ist der Trainingsprozess!).
  3. Wir können messen, wie es funktioniert, aber wir sind uns nicht sicher, wie die Milliarden von Parametern zusammenarbeiten, um dies zu bewerkstelligen.

Wir verstehen nicht genau, was das Modell aus seinen Trainingsdaten lernt. Dies führt zu allerlei verwirrendem Verhalten. Ein Beispiel dafür ist der "Reversal Curse":

  • Wenn Sie fragen, wer Johns Mutter ist, sagt das LLM "Jane".
  • Wenn Sie dann fragen, wer Janes Sohn ist, weiß das LLM es nicht.

2. Wie Large Language Models (LLMs) entstehen


Die drei Hauptphasen der Erstellung eines LLM

Die Entwicklung eines Large Language Models (LLM) gliedert sich in drei Hauptphasen: die Vorab-Modellierung (Pre-Training), die Feinabstimmung (Fine-Tuning) und die Modellinferenz.


Phase 1:

Vorab-Modellierung (Pre-Training) Zunächst erstellen wir ein Grundmodell, das aus einem beschrifteten Datenbestand lernt. Dieser Prozess ist äußerst aufwendig und wird üblicherweise nur etwa einmal pro Jahr durchgeführt. Hierbei werden:

  • Umfangreiche Datenmengen aus dem Internet werden zusammengetragen (etwa 10 TB an Texten), die durch Crawling gesammelt wurden.
  • Ein GPU-Cluster wird eingesetzt, um Parameter zu berechnen (6.000 GPUs über 12 Tage, etwa 1e24 FLOPS).
  • Diese großen Textmengen mit verlustbehafteter Kompression werden verdichtet (etwa 140 GB Datei).


Phase 2:

Feinabstimmung (Fine-Tuning) Anschließend passen wir unser allgemeines Basis-Modell an einen spezifischen Bereich und Zweck an. Im Gegensatz zur Vorab-Modellierung, die Milliarden von Beispielen benötigt, erfordert die Feinabstimmung nur einige hundert domänenspezifische Beispiele. Dies umfasst folgendes:

  1. Feinabstimmung des Modells auf Daten, die im Q/A <Benutzer: Anfrage> + <Assistent: Antwort> Format vorliegen.

  2. ChatGPT ist ein Beispiel für ein Assistentenmodell.

  3. Das Assistentenmodell fungiert als "Assistent" für den Benutzer, um Aufgaben zu erledigen, Fragen zu beantworten usw.

  4. Die Bewertung und Überwachung von Fehlverhalten. Ein Beispiel für ein feinabgestimmtes Modell ist ein Assistentenmodell:

  5. Die Feinabstimmung des Basis-Modells auf diesem Datensatz (etwa 1 Tag).

  6. Die Erstellung eines Datensatzes aus etwa 100.000 hochwertigen spezifischen Texten (z.B. mit ScaleAI).

  7. Das Verfassen von Anweisungen für die Beschriftung (Anmerkung: Früher wurde das Beschriften von Menschen durchgeführt. Heutzutage wird es zunehmend von LLMs übernommen).

Wichtiger Hinweis: Es gibt zwei Hauptunterschiede zwischen den Daten, die für Phase 1 und Phase 2 benötigt werden. 

Priorität Datenformat Phase 1 Priorisiert Datenmenge (benötigt etwa 10.000-mal mehr als Phase 2) allgemeine Internetdokumente Phase 2 Priorisiert Datenqualität und -spezifität spezifischeres Textformat und Inhalte.

2b. Phase: [Optional] Zusätzliche Feinabstimmung Diese Art der Feinabstimmung nutzt Vergleiche. Die Grundidee dahinter ist, dass es einfacher ist, Antworten zu vergleichen, als Antworten zu generieren. Zum Beispiel ist es leichter, ein Haiku zu erkennen, als ein Haiku zu verfassen.


Phase 3: 

Modellinferenz In der letzten Phase beginnt unser Modell, Vorhersagen zu treffen und Ausgaben/ "was als Nächstes kommt" zu generieren. Wie funktioniert das genau? Das Netzwerk "träumt" Dokumente. Jedes Mal, wenn es ein neues Wort generiert, wird dieses Wort zurückgeführt, um das nächste Wort zu generieren. Dies ermöglicht dem Netzwerk, iterativ Wörter, dann Sätze und schließlich Absätze zu bilden.

Allerdings ist das Modell nicht immer korrekt. Es besteht immer das Risiko von Halluzinationen. Halluzinationen sind generierte Texte oder Antworten, die falsch, fiktiv oder irreführend sind. Dies stellt derzeit ein großes Problem bei LLMs dar und kann durch folgendes verursacht werden:

  1. Das LLM wurde mit veralteten oder falschen Informationen trainiert.

  2. Das LLM wurde mit voreingenommenen oder diskriminierenden Trainingsdaten trainiert.

  3. Dem LLM fehlt der Zugang zu aktuellen, realen Informationen.


Phase 4: [Optional] 

LLMs mit Anpassungen aufwerten Um LLMs noch leistungsfähiger zu machen, können wir sie mit verschiedenen Werkzeugen verbinden. Hier sind drei Beispiele:

    • Suchmaschinen (z.B. Metaphor): verbinden das LLM mit dem Web, sodass es hochwertige, aktuelle Webinhalte abrufen kann.
    • Text-zu-Bild-Generatoren (z.B. DALL-E): ermöglichen es dem LLM, Bilder aus Textbeschreibungen zu erstellen.
    • Rechner: LLMs sind traditionell schlecht in Mathematik, da sie von Natur aus darauf trainiert sind, Texte zu verarbeiten und zu generieren. Die Hinzufügung von Rechnern hat LLMs deutlich verbessert in Mathematik.

3. Die Aktuelle Rangliste der LLMs

Diese Tabelle zeigt die derzeit leistungsstärksten LLM-Modelle.

Anmerkung: Der Elo-Wert wird durch paarweise Vergleiche zwischen LLMs berechnet. Zwei LLMs erhalten dieselbe Aufforderung und wir wählen die bessere Antwort aus. Wichtige Beobachtungen: • Geschlossene Modelle leisten deutlich mehr, können jedoch nicht feinjustiert werden. Sie sind über eine Web-Schnittstelle nutzbar. • Open-Source-Modelle schneiden generell schlechter ab, können aber "ausreichend gut" sein. Sie versuchen, zu den geschlossenen Modellen aufzuschließen. o Beispielsweise sind Mistral/Zephyr Beta/Llama 70b besser als GPT 3.5

4. Die Zukunft von Large Language Models (LLMs): Was kommt als Nächstes?


Verbesserung der Leistung und Fähigkeiten von LLMs

Wie kann die Leistung von LLMs verbessert werden? Es gibt zwei wesentliche Wege, um die Leistung von LLMs in den nächsten Jahren erheblich zu steigern.

  1. Skalierungsgesetze für LLMs durch die Erhöhung der Anzahl an Parametern und der Menge an Trainingsdaten können wir die Leistung von LLMs signifikant und vorhersehbar verbessern. Dies ist aus folgenden Gründen sehr wichtig:

    • Es bietet einen klaren und einfachen Weg zur Verbesserung.
    • Deshalb streben viele danach, mehr Daten und GPUs zu erhalten.
  2. Selbstverbesserung Ein "Trick" zur Verbesserung von LLMs besteht darin, sie voneinander lernen zu lassen. Wir können LLMs gegeneinander oder durch Selbstüberwachung spielen lassen. Ein sehr bekanntes Beispiel ist AlphaGo, ein Programm, das von Google DeepMind entwickelt wurde.

Funktionsweise von AlphaGo:

  1. AlphaGo ist ein Modell, das gelernt hat, das komplexe und strategische Brettspiel Go zu spielen.
  2. Zuerst wurde AlphaGo anhand professioneller menschlicher Spiele trainiert, um Muster und Strategien zu lernen. Diese Beschränkung bedeutete jedoch, dass es nur so gut sein konnte wie Menschen.
  3. Der entscheidende Schritt war, dass AlphaGo anfing, Spiele mit verschiedenen Versionen von sich selbst zu spielen und dabei seine Strategie und Entscheidungsfindung zu verfeinern.
  4. Es konnte dies tun, weil es eine klare Belohnung gab (ein Ergebnis, das es optimieren wollte), nämlich das Spiel zu gewinnen. Hinweis: Dieser Selbstverbesserungsprozess funktioniert nur, wenn es eine Belohnungsfunktion gibt. Dies wird als Verstärkungslernen bezeichnet.

Wie können die Fähigkeiten von LLMs verbessert werden? Hier sind zwei Beispielbereiche, in denen LLMs derzeit an Fähigkeiten mangeln.

  1. Multimodalität Multimodalität bezieht sich auf die Verbesserung der Fähigkeit von KI, Informationen aus mehreren Quellen zu verstehen und zu verarbeiten, einschließlich Vision, Sprache, Audio, Video und sensorischen Daten. Einige Beispiele für diese Leistung sind:

    • Vision: Schreiben von HTML-Code für eine Webseite basierend auf einer Zeichnung.
    • Audio: Sprach-zu-Sprach-Kommunikation.
  2. System 1 + 2 Denken Derzeit reagieren LLMs sehr schnell und geben sofortige Antworten. Wir möchten jedoch, dass LLMs in der Lage sind, langsamer zu reagieren, dann durchzudenken, zu reflektieren, umzuformulieren und eine bessere und sicherere Antwort zu produzieren. Dies würde die Qualität und Genauigkeit der LLM-Antworten erhöhen. 

  • Die Begriffe "System 1" und "System 2" sind inspiriert durch den Wirtschafts-Nobelpreisiträger Daniel Kahnemann:

  • System 1 vs. System 2 Denken bezieht sich auf zwei Arten, wie Menschen reagieren.

  • System 1: wenn wir sofort, instinktiv, automatisch, mit wenig Aufwand, unbewusst reagieren.

  • System 2: wenn wir langsam, rational, logisch reagieren und komplexere Entscheidungen treffen.

Derzeit haben LLMs nur System 1-Fähigkeiten, wir möchten ihnen System 2-Fähigkeiten verleihen. 

5. Die Dunkle Seite von LLMs


Jailbreaking bei LLMs

Large Language Models werden mit bestimmten Sicherheitsrichtlinien entwickelt. Zum Beispiel vermeiden sie Antworten auf gewisse Fragen, die schädliche Auswirkungen haben könnten. Dennoch haben Menschen Techniken entdeckt, um diese eingebauten Beschränkungen zu umgehen. Hier sind einige Beispiele:

  1. Nutzung einer anderen Sprache: Anstatt auf Englisch zu fragen, kann die Frage in Base64 kodiert werden, woraufhin das Modell antworten wird.

  2. "Rollenspiel": Anstatt eine gefährliche Frage direkt zu stellen, kann man das LLM bitten, ein Rollenspiel durchzuführen.

  3. Universeller übertragbarer Suffix: Eine optimierte Abfolge von zufälligen Wörtern, die das Modell noch nie zuvor gesehen hat. Kann an jeden Befehl angehängt werden, woraufhin das LLM antwortet.

  4. Optimiertes Rauschen zu einem Foto hinzufügen, erhöht die Wahrscheinlichkeit einer Antwort vom LLM.

Eingriffe in die Prompt-Steuerung 

Das Hijacking des LLMs und das Geben neuer Anweisungen wird durch das Einbetten spezifischer Befehle oder Hinweise in den Prompt erreicht. Dies lenkt das Modell an, auf bestimmte Weise zu antworten und dabei oft seine standardmäßigen Sicherheits- oder Inhaltsfilter zu umgehen. Beispiele hierfür sind:

  1. Sehr schwacher Text im Bild, der dem Modell neue Anweisungen gibt.

Datenvergiftung und Backdoor-Angriffe 

Schläferagent-Angriff

  • Ein Angreifer versteckt einen sorgfältig ausgearbeiteten Text mit einer speziellen Auslöserphrase innerhalb der Trainingsdaten.
  • Wenn das Auslöserwort während des Tests auftaucht, wird die Ausgabe des Modells verfälscht und verhält sich zufällig oder auf eine veränderte Weise.