- Ein umfassender Leitfaden, der Sampling-Methoden großer Sprachmodelle (LLMs) so erklärt, dass auch Einsteiger sie verstehen können
- Es wird detailliert erläutert, was Tokens sind, warum sie statt Wörtern verwendet werden und wie ein Modell Text erzeugt
- Sampling ist der Prozess zur Steuerung von Vielfalt und Natürlichkeit der Ausgabe; vorgestellt werden verschiedene Sampling-Algorithmen wie Temperature, Top-K, Top-P und DRY
- Jede Sampling-Technik wird mit konzeptioneller Erklärung sowie mathematischen und algorithmischen Funktionsprinzipien beschrieben; außerdem werden Effekte wie Vermeidung von Wiederholungen, Steigerung der Kreativität und Anpassung der Konsistenz verglichen
- Da auch Kombinationsreihenfolge, Wechselwirkungen und Konfliktfälle zwischen Samplern aufbereitet werden, ist dies eine sehr nützliche Ressource für Entwickler, die die Generierungsqualität präzise steuern möchten
Intro Knowledge
Short Glossary
- Logits sind unnormalisierte Werte, die den Score jedes Tokens darstellen
- Softmax ist eine Funktion, die Logits in eine normalisierte Wahrscheinlichkeitsverteilung umwandelt
- Entropy steht für Vorhersageunsicherheit; je höher sie ist, desto größer ist die Unsicherheit beim nächsten Token
- Perplexity ist ein Maß dafür, dass bei niedrigeren Werten die Sicherheit des Modells höher ist
- n-gram bezeichnet eine Sequenz aus n aufeinanderfolgenden Tokens
- Context window ist die maximale Anzahl von Tokens, die das Modell auf einmal verarbeiten kann
Why tokens?
Why not letters?
- Eine Tokenisierung auf Buchstabenebene macht Sequenzen zu lang, was zu höheren Rechenkosten und schwierigerer Verknüpfung von Informationen führt
Why not whole words?
- Ein wortbasierter Ansatz hat Probleme wie explodierende Vokabulargröße und Schwierigkeiten bei der Darstellung von Neologismen oder seltenen Wörtern
- Ein Sub-word-basierter Ansatz kann Präfixe, Wortstämme und Suffixe getrennt verarbeiten und ist daher wirksam für morphologisches Verständnis und mehrsprachiges Transferlernen
How are the sub-words chosen?
- Das Vokabular wird aufgebaut, indem man anhand repräsentativer Stichproben der Trainingsdaten die häufigsten Teilwörter (sub-words) findet
How does the model generate text?
- Während des Trainings lernt das Modell anhand großer Textmengen die Wahrscheinlichkeitsverteilung des nächsten Tokens
- Bei der Inferenz berechnet es die Wahrscheinlichkeiten für alle möglichen Tokens und wählt das nächste Token entsprechend der Sampling-Technik aus
From Tokens to Text
- Vorhersageschritt: Berechnung der Wahrscheinlichkeitsverteilung für alle Kandidaten-Tokens
- Auswahlschritt: Auswahl eines Tokens nach einer bestimmten Sampling-Strategie
- Würde man einfach nur das wahrscheinlichste Token wählen, entstünde oft langweiliger oder repetitiver Text; daher sind Sampling-Techniken wichtig
Sampling
Temperature
- Niedrige Werte führen zu konservativen und repetitiven Ergebnissen, hohe Werte fördern kreativere Resultate, erhöhen aber auch die Fehlerwahrscheinlichkeit
- Durch Division der Logits durch den Temperaturwert wird die Schärfe (Konzentration) der Wahrscheinlichkeitsverteilung gesteuert
Presence Penalty
- Tokens, die bereits mindestens einmal erschienen sind, werden in ihrer Wahrscheinlichkeit für ein erneutes Auftreten verringert
- Es wird nur berücksichtigt, ob ein Token verwendet wurde, nicht wie oft es vorkam
Frequency Penalty
- Der Score wird proportional zur Häufigkeit des Auftretens abgesenkt
- Je häufiger ein Wort vorkam, desto größer ist der Nachteil, was zur Erhöhung der Vielfalt beiträgt
Repetition Penalty
- Auf zuvor erschienene Tokens wird eine asymmetrische Strafe auf positive/negative Logits angewendet
- Das ist wirksam gegen schleifenartige Wiederholungen, kann aber die Kontextkonsistenz beeinträchtigen
DRY (Don't Repeat Yourself)
- Wiederholungen von n-gram-Mustern werden erkannt, und die Wahrscheinlichkeit von Tokens, die Wiederholungen vorhersagen, wird abgesenkt
- Je länger und je kürzer zurückliegend eine wiederholte Phrase ist, desto stärker wird sie unterdrückt
- Besonders in kreativem Text ist dies hervorragend geeignet, Wiederholungen zu reduzieren und zugleich Natürlichkeit zu bewahren
Top-K
- Es bleiben nur die Top-K-Kandidaten übrig, alle anderen Tokens werden ausgeschlossen
- Dadurch werden extreme Samples entfernt, während ein gewisses Maß an Zufälligkeit erhalten bleibt
Top-P (Nucleus Sampling)
- Es bleiben nur Tokens erhalten, bis die kumulative Wahrscheinlichkeit mindestens P erreicht; der Rest wird entfernt
- Die Größe der Kandidatenmenge ändert sich adaptiv je nach Modellsicherheit
Min-P
- Ausgehend vom Token mit der höchsten Wahrscheinlichkeit bleiben nur Tokens erhalten, die mindestens einen bestimmten Anteil davon erreichen
- Das Filtering wird dynamisch an das Selbstvertrauen des Modells angepasst
Top-A
- Kandidaten werden anhand eines Schwellenwerts gefiltert, der proportional zum Quadrat der Wahrscheinlichkeit des wahrscheinlichsten Tokens ist
- Je höher die Sicherheit, desto strenger wird gefiltert
XTC
- Mit einer bestimmten Wahrscheinlichkeit werden die wahrscheinlichsten Kandidaten absichtlich entfernt, um weniger sichere Entscheidungen zu fördern
- Eine Technik für unkonventionelle oder kreative Antworten
Top-N-Sigma
- Gültige Tokens werden anhand der Standardabweichung der Wahrscheinlichkeitsverteilung ausgewählt
- Durch auf statistischen Merkmalen basierendes Filtering kann flexibel auf unterschiedliche Situationen reagiert werden
Tail-Free Sampling (TFS)
- Über die zweite Änderungsrate (Krümmung) des Wahrscheinlichkeitsgefälles werden sinnvolle Kandidaten von Long-Tail-Kandidaten unterschieden
- Gefiltert wird, indem ein natürlicher Cutoff-Punkt gefunden wird
Eta Cutoff
- Der Filtermaßstab wird dynamisch entsprechend der Entropie (Unsicherheit) der Verteilung angepasst
- Je höher die Sicherheit, desto mehr Tokens werden entfernt; je niedriger sie ist, desto flexibler ist das Verfahren
Epsilon Cutoff
- Tokens mit niedriger Wahrscheinlichkeit werden anhand eines festen Wahrscheinlichkeitsschwellenwerts entfernt
- Das ist einfach, aber vorhersehbar und nützlich zum Entfernen unnötiger Long-Tail-Tokens
Locally Typical Sampling
- Bevorzugt werden Tokens, deren erwartete surprisal (Abweichung vom Erwartungswert) nahe am Durchschnitt liegt
- Statt das wahrscheinlichste oder das ungewöhnlichste Token zu wählen, fördert es eine „typische“ Auswahl
1 Kommentare
Hacker-News-Kommentare
Es wird nicht erwähnt, dass der Sampler keinen Zugriff auf den internen Zustand des Modells hat
Ich habe versucht, einen Sampling-Guide für Ollama/llama.cpp zu schreiben
Wenn ein LLM versucht, eine „Idee“ auszugeben, sollte die Auswahl aus dem Logit-Vektor die ursprüngliche Idee zerstören
Alles ist einfach erklärt, was Raum für neue Versuche eröffnet
Könnte ein LLM-Modell die Tokenisierung implizit selbst durchführen?
Dazu passend: Unser min_p-Paper hat bei der ICLR unter 12.000 Einreichungen Rang 18 erreicht
Ich frage mich, ob Sampling die Grenzen des Modells wirklich behebt oder nur ein tieferliegendes Problem überdeckt
„Sampling“ umfasst weit mehr, als ich erwartet hatte
Ein sehr nützliches Dokument, die Erklärungen sind klar und es deckt viel ab
Mir war nicht klar, wie viel Manipulation nach der anfänglichen Wahl der Softmax-Temperatur noch stattfindet