Token Sampling

Die verschiedenen Strategien, mit denen LLMs das nächste Token auswählen – von deterministisch (Greedy) bis kreativ (Temperature, Top-K, Top-P).

Fortgeschritten2 Min Lesezeit

Erklärung starten

Auf einen Blick

3 Punkte

  1. Greedy: Immer das wahrscheinlichste Token (deterministisch)
  2. Temperature: Kontrolliert Zufälligkeit (0=deterministisch, 1+=kreativ)
  3. Top-K/Top-P: Begrenzt Auswahl auf wahrscheinlichste Tokens

Sofortantwort

Token Sampling einfach erklärt

Strategien zur Auswahl des nächsten Tokens bei der Textgenerierung.

Kurz gesagt
Greedy: Immer das wahrscheinlichste Token (deterministisch)
Typischer Einsatz
Kreatives Schreiben, Fakten-Antworten, Code-Generierung
Wichtig zu wissen
Top-K/Top-P: Begrenzt Auswahl auf wahrscheinlichste Tokens

Token Sampling im Überblick

Token Sampling bestimmt, wie ein LLM das nächste Wort (Token) auswählt. Das Modell gibt Wahrscheinlichkeiten für alle möglichen Tokens aus – die Sampling-Strategie entscheidet, welches genommen wird.

Die Grundidee:

Modell-Output (Logits → Wahrscheinlichkeiten):
"Der Himmel ist ___"

blau:    45%  ████████████████████
schön:   20%  ████████
klar:    15%  ██████
heute:   10%  ████
grün:     5%  ██
...

Greedy:     → "blau" (immer höchste)
Sampling:   → "schön" (zufällig nach Wahrscheinlichkeit)

Die wichtigsten Strategien:

StrategieBeschreibungWann nutzen?
GreedyImmer höchste WahrscheinlichkeitDeterministische Aufgaben
TemperatureSkaliert WahrscheinlichkeitenKreativität steuern
Top-KNur Top K Tokens betrachtenUnsinn vermeiden
Top-PTokens bis P% WahrscheinlichkeitAdaptiver als Top-K
Beam SearchMehrere Pfade parallelÜbersetzung, Summarization

Technisch betrachtet

Greedy Decoding

def greedy_decode(logits):
    # Immer das wahrscheinlichste Token
    return torch.argmax(logits)

# Deterministisch, aber kann repetitiv werden
# "The cat sat on the mat. The cat sat on the mat..."

Temperature Sampling

def temperature_sample(logits, temperature=1.0):
    # Skaliere Logits
    scaled_logits = logits / temperature
    
    # Softmax → Wahrscheinlichkeiten
    probs = torch.softmax(scaled_logits, dim=-1)
    
    # Sample nach Wahrscheinlichkeit
    return torch.multinomial(probs, num_samples=1)

Effekt der Temperature:

Temperature = 0.1 (fast deterministisch):
blau:    95%  ██████████████████████████████
schön:    3%  █
klar:     2%  

Temperature = 1.0 (Original):
blau:    45%  ████████████████████████
schön:   20%  ██████████
klar:    15%  ████████

Temperature = 2.0 (sehr kreativ):
blau:    25%  █████████████
schön:   18%  █████████
klar:    15%  ████████
grün:    12%  ██████

Top-K Sampling

def top_k_sample(logits, k=50, temperature=1.0):
    # Nur Top K Tokens behalten
    top_k_logits, top_k_indices = torch.topk(logits, k)
    
    # Temperature anwenden
    scaled = top_k_logits / temperature
    probs = torch.softmax(scaled, dim=-1)
    
    # Sample aus Top K
    idx = torch.multinomial(probs, num_samples=1)
    return top_k_indices[idx]

Top-P (Nucleus) Sampling

def top_p_sample(logits, p=0.9, temperature=1.0):
    # Sortiere nach Wahrscheinlichkeit
    scaled = logits / temperature
    probs = torch.softmax(scaled, dim=-1)
    sorted_probs, sorted_indices = torch.sort(probs, descending=True)
    
    # Kumulative Summe
    cumsum = torch.cumsum(sorted_probs, dim=-1)
    
    # Behalte Tokens bis P erreicht
    mask = cumsum <= p
    mask[0] = True  # Mindestens ein Token
    
    # Sample aus Nucleus
    nucleus_probs = sorted_probs[mask]
    nucleus_probs = nucleus_probs / nucleus_probs.sum()
    idx = torch.multinomial(nucleus_probs, num_samples=1)
    
    return sorted_indices[idx]

Kombinierte Strategien

# OpenAI API nutzt mehrere Parameter
response = openai.chat.completions.create(
    model="gpt-4",
    messages=[...],
    temperature=0.7,        # Kreativität
    top_p=0.9,              # Nucleus Sampling
    frequency_penalty=0.5,  # Wiederholungen vermeiden
    presence_penalty=0.5,   # Neue Themen fördern
)

Empfehlungen

Use CaseTemperatureTop-PAnmerkung
Code0.0-0.20.95Präzision wichtig
Fakten0.0-0.30.9Konsistenz
Chat0.5-0.70.9Balance
Kreativ0.8-1.00.95Vielfalt
Brainstorming1.0-1.21.0Maximale Diversität

01Einsatzbereiche

Wann ist Token Sampling sinnvoll?

Geeignet für

  • Kreatives SchreibenHohe Temperature für vielfältige, überraschende Texte
  • Fakten-AntwortenNiedrige Temperature für konsistente, präzise Antworten
  • Code-GenerierungNiedrige Temperature für syntaktisch korrekten Code
  • BrainstormingHohe Temperature für diverse Ideen

↑ Inhalt

02Werkzeuge

Womit Token Sampling umgesetzt wird

↑ Inhalt

Merksatz

Token Sampling ist wie Würfeln mit gezinkten Würfeln

Das Modell gibt Wahrscheinlichkeiten vor, aber die Sampling-Strategie entscheidet, wie stark der Zufall mitspielen darf – von 'immer die höchste Zahl' bis 'fair würfeln'.

  1. Greedy: Immer das wahrscheinlichste Token (deterministisch)
  2. Temperature: Kontrolliert Zufälligkeit (0=deterministisch, 1+=kreativ)
  3. Top-K/Top-P: Begrenzt Auswahl auf wahrscheinlichste Tokens

04Redaktion

Herkunft und Stand

Redaktion und Aktualität

Ebenex RedaktionRedaktion

Veröffentlicht
Aktualisiert

Dieses Feld entwickelt sich schnell. Oben stehen Veröffentlichung und letzte Änderung; ein Prüfdatum kommt dazu, sobald die Erklärung nach ihrer letzten Änderung geprüft wurde.

↑ Inhalt

05FAQ

Häufige Fragen zu Token Sampling

Welche Sampling-Strategie für welchen Use Case?

Fakten/Code: Temperature 0-0.3. Konversation: 0.5-0.7. Kreativ: 0.8-1.0. Top-P 0.9-0.95 ist ein guter Default. Experimentieren!

Kann ich Temperature und Top-P kombinieren?

Ja, und das ist üblich. Temperature skaliert die Logits, Top-P filtert danach. Beide zusammen geben feine Kontrolle.

Was ist der Unterschied zwischen Top-K und Top-P?

Top-K: Feste Anzahl Tokens (z.B. Top 50). Top-P: Variable Anzahl basierend auf kumulativer Wahrscheinlichkeit (z.B. 90%). Top-P ist adaptiver.

Warum nicht immer Greedy?

Greedy ist deterministisch und kann in Schleifen geraten. Sampling mit Temperature erzeugt Vielfalt und vermeidet repetitive Outputs.

↑ Inhalt

06Weiterlernen

Was möchtest du als Nächstes verstehen?

  • Grundlage nachholen

    Autoregressive Model

    Generiert Sequenzen Token für Token, jedes basierend auf den vorherigen.

  • Technisch vertiefen

    Temperatur

    Ein Parameter, der die Kreativität der Textausgabe eines Modells beeinflusst.

↑ Inhalt