LLM-Prompt-Tuning-Playbook
(github.com/varungodbole)Für wen ist dieses Dokument gedacht?
- Dieses Dokument richtet sich an Personen, die ihre Fähigkeit verbessern möchten, Prompts für post-trainierte LLMs zu schreiben.
- Es ist für Personen gedacht, die bereits grundlegende Erfahrung mit LLMs haben, auch wenn ihnen technischer Hintergrund fehlt.
- Erster Teil: Vermittelt ein intuitives Verständnis von Post-Training und Prompts.
- Zweiter Teil: Bietet konkrete Verfahren und Tipps zum Schreiben von Prompts.
Warum braucht man einen Tuning-Leitfaden?
- Das Schreiben von LLM-Prompts ist eine empirische Aufgabe, die kontinuierliches Lernen und Überarbeiten erfordert.
- Dieses Dokument soll wirksame Strategien zum Schreiben von Prompts systematisch vermitteln.
- Es wurde mit Fokus auf nachtrainierte Modelle wie Gemini verfasst, ist aber auch auf andere Modelle anwendbar.
Pre-Training vs. Post-Training
Vortraining (Pre-training)
- Konzept des Vortrainings
- Vortraining ist ein seit Langem etabliertes Konzept im Deep Learning: Mit einem kleinen Datensatz (A) und einem ähnlichen, aber sehr viel größeren Datensatz (B) werden zunächst allgemeine Merkmale auf B gelernt und anschließend auf A feinjustiert.
- Als Beispiel kann man sich einen kleinen Mammografie-Datensatz (A) und einen großen, aus dem Internet gesammelten Datensatz natürlicher Bilder (B) vorstellen.
- Ablauf des Vortrainings
- Das Modell wird auf dem großen Datensatz (B) trainiert, um allgemeine nützliche Merkmale zu lernen.
- Anschließend wird das Modell auf den Datensatz A feinabgestimmt, um dort bessere Leistung zu erzielen.
- Konkret lernt es auf dem Datensatz B zunächst grundlegende Fähigkeiten wie Objekterkennung unabhängig von Segmentierung oder Position im Bild und baut darauf auf, um anschließend spezifische Fähigkeiten für den Datensatz A zu lernen.
- Warum Vortraining notwendig ist
- Ohne Lernen auf dem Datensatz B kann allein der Datensatz A zu wenig Daten bieten, um allgemeine Fähigkeiten zu erlernen, was die Leistung verschlechtern kann.
- Ein auf dem Datensatz B trainiertes Modell muss auf dem Datensatz A nur noch spezialisierte Fähigkeiten mit den begrenzten Daten zusätzlich lernen.
- Beispiel großer Sprachmodelle (LLMs)
- Das Vortraining von LLMs erfolgt, indem sie die Aufgabe ausführen, im Internettext das „nächste Wort vorherzusagen“.
- Dabei lernt das Modell implizit die Struktur der Welt, wie sie sich im Web widerspiegelt.
- Das Internet als Spiegel der Welt
- Die Frage, welche Welt das Internet widerspiegelt, ist wichtig; zum Verständnis kann die Metapher eines „Cinematic Universe“ verwendet werden.
Die Intuition des „Cinematic Universe“ im Vortraining
- Text und die Beschreibung der Welt
- Große Sprachmodelle (LLMs) lernen die Welt über Text.
- Text unterliegt nicht der Einschränkung, ausschließlich die „Wahrheit“ abzubilden.
- Neben Desinformation oder falschen Aussagen gibt es viele Gründe, warum Text nicht nur eine einzige objektive Realität widerspiegelt.
- Beispiel: Aragorn und Gondor
- Ob der Satz „Aragorn wird schließlich König von Gondor“ wahr ist, hängt vom Kontext und den Voraussetzungen ab.
- „Der Herr der Ringe“-Cinematic-Universe: Kann als wahr gelten.
- „Marvel Cinematic Universe“ oder Realität: Aragorn und Gondor sind fiktive Wesen bzw. Orte und daher nicht wahr.
- Ob der Satz „Aragorn wird schließlich König von Gondor“ wahr ist, hängt vom Kontext und den Voraussetzungen ab.
- Maßstab für Wahrheit
- Ob eine Aussage wahr ist, hängt davon ab, „welche Welt“ vorausgesetzt wird.
- Das ist seit Langem ein Thema philosophischer und linguistischer Diskussionen; einen ausführlicheren Überblick über Wahrheit gibt es unter diesem Link.
- Praktisch lässt sich das auf die Idee vereinfachen: „Ob eine Aussage wahr ist, hängt vom Cinematic Universe ab, das sie als Hintergrund voraussetzt.“
- Vortrainingsdaten und Cinematic Universes
- Der Vortrainingskorpus kommt einer Vereinigung der verschiedenen Cinematic Universes nahe, die von der menschlichen Kultur hervorgebracht wurden.
- Genauer gesagt ist er die Menge der Kulturen, die stark zu den Quellen der Vortrainingsdaten beigetragen haben, etwa zum Web.
> Wichtig
> Der Vortrainingskorpus kann als Vereinigung der von der menschlichen Kultur geschaffenen Cinematic Universes betrachtet werden und spiegelt insbesondere Kulturen wider, die stark zu Datenquellen wie dem Web beigetragen haben.
- Kontextverständnis des Modells
- Ein LLM schließt aus dem gegebenen Kontext, also dem Präfix, in welchem „Universum“ es sich befindet.
- Danach verhält es sich gemäß den Regeln, Konventionen und Fakten dieses Universums.
- Prompts mit starken Kontexthinweisen erleichtern es dem Modell, das „Skript“ zu verstehen.
- Beispiel: der Beginn eines Blogposts über New York („Der Betondschungel, in dem Träume wahr werden, ist nicht nur eine Liedzeile, sondern die elektrisierende Wahrheit New Yorks...“)
- Dagegen machen Prompts mit schwachem Kontext wie „Hi, how are you?“ es dem Modell schwer zu erkennen, in welchem Universum es sich befindet.
- Solche allgemeinen Formulierungen kommen in vielen Korpora vor und lassen daher mehrere Möglichkeiten offen.
- Die Rolle des Post-Trainings
- Wenn Kontext fehlt, spielt Post-Training eine wichtige Rolle dabei, dem Modell zu ermöglichen, spezifischere und konsistentere Ausgaben zu erzeugen.
Post-Training
- Die Rolle des Post-Trainings
- Post-Training liefert Anweisungen für das „Default-Universum“, in dem ein LLM grundsätzlich arbeitet.
- Anstatt das Universum nur aus dem Prompt abzuleiten, setzt Post-Training bestimmte Annahmen fest oder schränkt ein, wie Mehrdeutigkeiten konsistent aufgelöst werden sollen.
- Das ist notwendig, um die Nützlichkeit des Modells zu erhöhen, etwa indem einem LLM standardmäßig beigebracht wird, „den Anweisungen des Nutzers zu folgen“.
- Warum Post-Training wichtig ist
- Ohne Post-Training könnte eine Anweisung wie „Schreibe einen Bericht über George Washington“ fehlschlagen, indem das Modell einfach Text erzeugt, der die Anweisung selbst fortsetzt.
- Post-Training kann helfen, das Grundverhalten des Modells an soziale Normen anzugleichen.
- Dadurch wird das Modell zu einem sichereren und produktiveren Werkzeug.
> Wichtig
> Post-Training lehrt das Modell, in verschiedenen Bereitstellungsumgebungen konsistente und grundlegende Rollen zu erfüllen.
- Was im Post-Training gelernt werden kann
- Was ein Modell im Post-Training lernen kann, reicht von praktischen und konkreten Dingen bis hin zu subjektiven und persönlichen Aspekten.
- Wichtige Inhalte, die im Post-Training vermittelt werden können
- Wie man einem bestimmten Format folgt
- Beispiel: Gemma's Formatter geht davon aus, dass das Modell immer in einem Cinematic Universe arbeitet, in dem es mit dem Nutzer spricht.
- In diesem Szenario handelt das Modell gemäß Systemanweisungen, und das Gespräch beginnt immer mit dem Zug eines menschlichen Nutzers.
- Wie man den Anweisungen des Nutzers folgt
- Beispiel: Auf die Anfrage „Schreibe einen Aufsatz über Hunde“ sollte tatsächlich ein Aufsatz geschrieben werden.
- Im Post-Training kann gelernt werden, Anfragen des Nutzers nicht zu ignorieren und nicht auf andere Weise zu antworten.
- Abgleich mit der „realen Welt“
- Dies wird genutzt, um das Default-Cinematic-Universe des Modells auf die „reale Welt“ auszurichten, für die sich Nutzer meist interessieren.
- Beispiel: Bei der Frage „Wo wurde der berühmte Mensch $CELEBRITY geboren?“ wird standardmäßig von Informationen aus der realen Welt ausgegangen und nicht aus einer Fan-Fiction-Welt.
- Stärkung der Sicherheit
- Das Internet enthält verschiedene normative Maßstäbe, und manche Inhalte können für kommerzielle Bereitstellungsumgebungen ungeeignet sein.
- Post-Training hilft dabei, das Modell an bestimmte Sicherheitsrichtlinien anzupassen und normative Maßstäbe für generierte Inhalte festzulegen.
- Dadurch trägt es normative Annahmen in sich, die für die Erzeugung komplexer Texte unerlässlich sind.
- Wie man einem bestimmten Format folgt
- Fazit
- Post-Training unterstützt das Modell dabei, in unterschiedlichen Nutzungskontexten konsistent erwartungsgemäß zu handeln.
- Es ist ein unverzichtbarer Prozess, um die Nützlichkeit und Sicherheit des Modells zu maximieren.
Datensammlung für das Post-Training
- Kernzusammenfassung
- Während des Post-Trainings wird ein LLM auf Basis von Daten trainiert und bewertet, die von menschlichen Evaluatoren erstellt wurden.
- Während des Post-Trainings nimmt das Modell die menschlichen Evaluatoren, die die Daten erzeugt haben, als Rollenmodell und fungiert als „digitaler Rollenspieler“.
- Ablauf der Datensammlung für das Post-Training
- Erstellung eines vielfältigen Datensatzes mit Eingabebeispielen
- Erstellung einer Sammlung von Prompts, die Aufgaben beschreiben, die ein LLM ausführen kann (z. B. Daten in JSON umstrukturieren, Unterstützung bei der Hochzeitsplanung usw.).
- Diese Daten können auf der Intuition von Entwicklern oder auf Ideen beruhen, die von menschlichen Evaluatoren vorgeschlagen wurden.
- Rekrutierung menschlicher Evaluatoren
- Rolle der Evaluatoren: Für Eingabebeispiele die „richtige Antwort“ verfassen oder die Antworten des Modells nach Rang bewerten.
- Je nach Trainingsphase des Modells erzeugen die Evaluatoren unterschiedliche Arten von Daten.
- Erstellung von Bewertungsrichtlinien
- Bereitstellung von Beispielen und detaillierten Anweisungen, damit die Evaluatoren die Aufgaben gut verstehen können.
- Datensammlung und Durchführung des Post-Trainings
- Die gesammelten Daten werden für das Post-Training des vortrainierten Modells verwendet.
- Bereitstellung des Modells
- Nach Abschluss des Post-Trainings wird das Modell in einer realen Umgebung ausgerollt.
- Erstellung eines vielfältigen Datensatzes mit Eingabebeispielen
- Auswirkungen des Post-Trainings
- Einer der Gründe, warum sich LLMs wie Menschen verhalten können, ist, dass sie auf sorgfältig gesammelten Datensätzen menschlichen Verhaltens trainiert wurden.
- Das Pretraining baut die Kernfähigkeiten des Modells auf, während das Post-Training die Verhaltensausrichtung des Modells durch menschliche Demonstrationen steuert.
Wichtig
LLMs können sich wie Menschen verhalten, weil sie auf sorgfältig gesammelten Daten menschlichen Verhaltens trainiert wurden.
- Herausforderungen bei der Datensammlung für das Post-Training
- Monotonie repetitiver Aufgaben
- Bewertungsaufgaben können langweilig sein. Ein hervorragender Python-Programmierer könnte es zum Beispiel interessanter finden, an eigenen Projekten zu arbeiten.
- Ein Dichter schreibt womöglich lieber eigene Gedichte und hat wahrscheinlich wenig Interesse daran, von einer AI erzeugte Gedichte zu bewerten.
- Evaluatoren können durch die Wiederholung der Arbeit, mangelnde Kontrolle über das Dateneigentum und das Fehlen sozialer Bedeutung in der Aufgabe demotiviert werden.
- Schwierigkeit, eine „gute“ Antwort zu definieren
- Zu definieren, was eine „gute“ Antwort für eine Aufgabe ist, ist komplex.
- Es ist schwierig, klare Kriterien für gutes Schreiben, Faktentreue und Aufgaben festzulegen, die die Komplexität sozialer Realität widerspiegeln.
- Wie im Rechtssystem Grenzfälle über Präzedenzfälle gelöst werden, hängen auch diese Probleme stark von Subjektivität und Kontext ab.
- Mangelndes Aufgabenverständnis der Evaluatoren
- Es besteht die Möglichkeit, dass Evaluatoren die Aufgabe nicht richtig verstehen.
- Das geschieht, wenn Evaluatoren mit dem falschen Kompetenzniveau eingestellt werden oder ihre eigenen Grenzen nicht erkennen.
- Beispiel: Zu einer Biologiefrage wird auf Basis veralteten Hochschulwissens eine falsche Antwort verfasst.
- Menschliche Fehler
- Menschen machen Fehler. Professoren können Prüfungsaufgaben mit falschen Antworten stellen, und bei Ärzten ist in ermüdetem Zustand die Wahrscheinlichkeit einer Fehldiagnose höher.
- Da die Qualität menschlicher Bewertungsdaten nicht perfekt ist, können auch AI-Systeme solche fehlerhaften Daten mitlernen.
- Monotonie repetitiver Aufgaben
- Fazit
- Die Datensammlung für das Post-Training spielt eine wichtige Rolle für die Modellqualität, erfordert aber erheblichen Aufwand zur Sicherung der Datenqualität.
- Es ist wichtig, die Passung zwischen Evaluatoren und Aufgaben sicherzustellen, um präzise und verlässliche Daten zu erhalten.
Prompt-Erstellung
- Kernzusammenfassung
- Beim Schreiben von Systemanweisungen und Prompts sollte man den „kollektiven Geist“ der Evaluatorengruppe des Post-Training-Teams im Blick haben.
- Wenn Anweisungen so formuliert sind, dass Evaluatoren sie verstehen und zuverlässig befolgen können, ist die Wahrscheinlichkeit höher, dass auch das Modell ihnen gut folgt.
Wichtig
Systemanweisungen und Prompts sollten so formuliert werden, dass sie den kollektiven Geist der Evaluatorengruppe des Post-Training-Teams widerspiegeln.
Wichtige Überlegungen bei der Prompt-Erstellung
-
Sicherstellen, dass die Anweisungen klar, prägnant und explizit sind
- Beispiel: Wenn es sich um eine Anweisung zur Erzeugung von Python-Code handelt, sollte ein zufällig ausgewählter erfahrener Python-Programmierer sie lesen und sofort verstehen können.
- Schlecht: "Write a Python function that computes prime numbers."
- Gut: "Write a Python function that computes prime numbers from 1 to 100. Include pytype annotations for the function and use 2-space indentation."
- Beispiel: Wenn es sich um eine Anweisung zur Erzeugung von Python-Code handelt, sollte ein zufällig ausgewählter erfahrener Python-Programmierer sie lesen und sofort verstehen können.
-
Prüfen, ob die Anweisungen widersprüchlich oder schwer zu befolgen sind
- Sie sollten so prägnant und intuitiv formuliert sein, dass Menschen ihnen auch dann zuverlässig folgen können, wenn sie müde oder hungrig sind.
- Schlecht: "Don’t write a story about a mean dog, unless it's friendly, and also sad..."
- Gut: "Write a short story (200-300 words) about a loyal golden retriever named Buddy..."
- Sie sollten so prägnant und intuitiv formuliert sein, dass Menschen ihnen auch dann zuverlässig folgen können, wenn sie müde oder hungrig sind.
-
Sind es zu viele Anweisungen?
- Für das Modell kann es schwierig sein, alle langen und komplexen Anweisungen zu befolgen. Wenn möglich, sollte die Aufgabe in Teilaufgaben zerlegt werden.
- Schlecht: "Read each article and, for each key idea, rate it on a scale of 1-10..."
- Gut: In Teilaufgaben aufteilen: 1) Liste der Hauptideen erstellen, 2) jede Idee bewerten, 3) die wichtigsten Ideen übersetzen, 4) einen Post für Social Media erstellen.
- Für das Modell kann es schwierig sein, alle langen und komplexen Anweisungen zu befolgen. Wenn möglich, sollte die Aufgabe in Teilaufgaben zerlegt werden.
-
Positive Anweisungen verwenden
- Es ist wirksamer, explizit zu sagen, was getan werden soll, statt zu betonen, was nicht getan werden soll.
- Schlecht: "Don’t ever end your response with a full stop."
- Gut: "Your response should always end with an exclamation mark or a question mark."
- Es ist wirksamer, explizit zu sagen, was getan werden soll, statt zu betonen, was nicht getan werden soll.
-
Anweisungen als „Erinnerung“ für das Modell
- Unter Berücksichtigung verschiedener Eingabebeispiele werden zusätzliche Hinweise für unklare Fälle gegeben.
- Beispiel: In einem Abschnitt wie „Zusätzliche Überlegungen“ oder „Zusätzliche Annahmen“ werden Grenzfälle klar erläutert.
-
Prompts sind neue Hyperparameter
- Die Qualität des Prompts hat großen Einfluss auf die Systemleistung. Es ist unmöglich, den „optimalen“ Prompt zu finden, aber Experimente, um schrittweise bessere Prompts zu finden, sind wichtig.
-
Anweisung für Antworten wie „Ich weiß es nicht“
- Durch explizite Hinweise für „unbekannt“ oder „mehrdeutig“ kann das Modell dazu gebracht werden, Unklarheit deutlich zu markieren, statt eine falsche Antwort zu geben.
-
Enge Kopplung von Prompt und Checkpoint
- Prompts sind eng mit einem bestimmten Modell-Checkpoint verknüpft. In einer neuen Modellversion kann derselbe Prompt anders funktionieren.
Prompt-Styleguide (Grundlagen)
- Einsatz von Markdown erwägen : Jeden Prompt in einer separaten Markdown-Datei speichern und mit Titeln und Abschnitten gut strukturieren, um die Lesbarkeit zu erhöhen.
- Andere Nutzer berücksichtigen : Prompts sollten nicht nur für das Modell, sondern auch für die zuständigen Maintainer geschrieben werden.
- Einfachheit bewahren : Wenn ein Prompt lang oder komplex ist, kann der Wartungsaufwand bei Modelländerungen steigen. Daher sollte er prägnant und klar formuliert sein.
- Zero-Shot-Anweisungen bevorzugen : Zero-Shot-Anweisungen sind einfach und leicht zu debuggen und zu verstehen. Few-Shot sollte nur als letztes Mittel verwendet werden.
- Beispiele integrieren : Es ist gut, Beispiele auf natürliche Weise in die Anweisung einzubinden, etwa mit Formulierungen wie "For example".
- Beispiel: "Always start your response to the user with something passive aggressive. For example, start with something like 'Oh that’s what you want? ...'"
Iteratives Verfahren zur Verbesserung neuer Systemanweisungen
- Prompt-Entwicklung ist ein iterativer Prozess
- Das Schreiben von Prompts ähnelt dem Prozess, ein Modell mithilfe eines Validierungsdatensatzes zu trainieren.
- Der Schlüssel liegt in klaren und prägnanten Formulierungen; es ist effektiv, die Phasen der Generierung und Bearbeitung voneinander zu trennen.
- Ein Start ist auch ohne Validierungsdatensatz möglich
- Zu Beginn sollte schnell ein einfaches MVP (Minimum Viable Product) aufgebaut werden, während die Leistung später durch quantitative Bewertungen nachverfolgt werden sollte.
- Wichtig ist ein Design, das sicherstellt, dass das Produkt auch bei unerwartetem Modellverhalten stabil funktioniert.
Iteratives Verfahren für Systemanweisungen
- Verschiedene Eingabebeispiele vorbereiten
- Etwa 10 bis 50 verschiedene Eingabebeispiele sammeln, die das Problem gut repräsentieren.
- Ein Gefühl für das gewünschte Ausgabeverhalten entwickeln.
- Mit einfachen Anweisungen beginnen
- Die Anweisungen so einfach und klar wie möglich formulieren.
- Zuerst ein kostengünstiges Modell verwenden (z. B. Gemini Flash 8B).
- Mit dem ersten Eingabebeispiel ausführen
- Testen, ob das Modell eine angemessene Antwort erzeugt.
- Auf das erste Beispiel überanpassen
- Der Anweisung „Erinnerungen“ hinzufügen, um spezifische Mängel in der Antwort des Modells zu beheben.
- Beispiel: Wenn nur Personennamen extrahiert werden sollen, aber auch Gebäudenamen enthalten sind, dies in der Anweisung ausdrücklich erwähnen.
- Zum nächsten Beispiel übergehen
- Testen, ob die Anweisung auch bei anderen Eingabebeispielen wirksam ist.
- Falls es Anweisungen gibt, die zu stark auf das erste Beispiel zugeschnitten sind, diese anpassen und verallgemeinern.
- Anweisungen bereinigen
- Nachdem eine Anweisung erstellt wurde, die bei allen Eingabebeispielen funktioniert, die Formulierungen glätten und Rechtschreibfehler korrigieren.
- Prüfen, ob die bereinigte Anweisung weiterhin bei allen Beispielen funktioniert.
- Möglichkeit der Automatisierung
- In Zukunft könnten Meta-Optimierungstools die Erstellung von Anweisungen automatisieren.
- Qualitative Analyse und Qualitätssicherung bleiben jedoch weiterhin notwendig.
Wichtig
Qualitative Analyse ist in der Modellentwicklung unverzichtbar und lässt sich nicht vermeiden.
Situationen, in denen LLMs nützlich sind
- Probleme, die sich leicht verifizieren lassen
- LLMs eignen sich am besten für Probleme, bei denen „die Antwort zu erzeugen schwierig, die Verifizierung aber einfach“ ist.
- Siehe z. B. den Beitrag von Chris Gorgolewski über den „Sweet Spot“ von generativer AI.
- Das Problem in Teilprobleme zerlegen
- Statt eines komplexen Prompts das Problem in gut definierte Teilprobleme aufteilen und so die Reasoning-Kette des Modells aufbauen.
- Ein zukunftsorientierter Ansatz
- Berücksichtigen, dass Innovationen bei Hardware und Geschäftsmodellen die Reasoning-Kapazität erhöhen könnten.
- Funktionen nicht nach aktuellen Kosten, sondern wertorientiert entwerfen.
- Sinkende Inferenzkosten
- Es wird erwartet, dass die Inferenzkosten schrittweise sinken; Entscheidungen sollten daher am „Wert“ ausgerichtet werden.
- Für die Umsetzung wertvollerer Funktionen einen schrittweisen Rollout in Betracht ziehen, der die aktuellen wirtschaftlichen Grenzen berücksichtigt.
Erwartung
Bei den Kosten für LLM-Inferenz könnte es zu Preisrückgängen kommen, die mit dem Mooreschen Gesetz vergleichbar sind.
Noch keine Kommentare.