RU | EN | DE

Grundlagen großer Sprachmodelle (LLM)

Was ist ein LLM?

Large Language Model (LLM) — ist ein neuronales Netzwerk, das auf großen Textmengen trainiert wurde und in der Lage ist, Text zu generieren, Sprachen zu verstehen und verschiedene Aufgaben im Bereich der natürlichen Sprachverarbeitung (NLP) zu lösen.

Tokenisierung

Tokenisierung — ist der Prozess der Aufteilung von Text in kleinere Einheiten (Tokens).

# Beispiel
Text: "Hello, world!"
Tokens: ["Hello", ",", " world", "!"]

Wichtig:

  • LLM arbeitet nicht mit Text, sondern mit Token-IDs
  • Jedes Token hat eine eindeutige numerische ID
  • Kosten werden in Tokens berechnet, nicht in Zeichen

Kosten-Beispiel:

Anfrage: 1000 Tokens
Antwort: 500 Tokens
Gesamtkosten = (1000 × Input-Preis) + (500 × Output-Preis)

Attention Mechanism (Aufmerksamkeitsmechanismus)

Attention erlaubt es dem Modell, sich auf wichtige Teile des Eingabetexts zu konzentrieren.

Beispiel:

Text: "Der Hund hat den Knochen vergraben, weil er hungrig war"
Frage: "Warum hat der Hund den Knochen vergraben?"
Attention → fokussiert auf "hungrig war"

Transformer-Architektur

Transformer — ist die Basis-Architektur moderner LLMs.

Hauptkomponenten:

  1. Self-Attention — erlaubt es dem Modell, Beziehungen zwischen Wörtern zu verstehen
  2. Multi-Head Attention — mehrere Attention-Mechanismen parallel
  3. Feed-Forward Networks — Verarbeitung jedes Tokens
  4. Positional Encoding — Informationen über die Token-Position

Context Window (Kontextfenster)

Context Window — maximale Anzahl von Tokens, die das Modell gleichzeitig verarbeiten kann.

Beispiele:

  • GPT-3.5: 4K Tokens (~3000 Wörter)
  • GPT-4: 8K / 32K / 128K Tokens
  • Claude 3: 200K Tokens
  • Gemini 1.5: bis zu 1M Tokens

Problem der langen Kontexte:

Kosten = O(n²) wo n = Anzahl der Tokens

Bei 100K Tokens sind die Kosten ~10.000× höher als bei 1K Tokens.

Training vs. Inference

Training:

  • Einmaliger Prozess
  • Erfordert massive Rechenressourcen (Tausende GPUs)
  • Dauert Wochen/Monate
  • Sehr teuer ($Millionen)

Inference:

  • Jeder API-Aufruf
  • Relativ günstig
  • Schnell (Sekunden)
  • Skalierbar

Modelltypen

1. LLM (Basis-Modelle)

  • Generieren Text basierend auf Eingabe
  • Beispiele: GPT-4, Claude, Gemini

2. Reasoning Models (Denkmodelle)

  • “Denken” vor der Antwort
  • Zeigen Gedankengang
  • Beispiele: o1, o3

Unterschied:

LLM: Frage → Sofortige Antwort
Reasoning: Frage → Analyse → Gedankengang → Antwort

3. Agents (Agenten)

  • Können Tools verwenden
  • Treffen Entscheidungen
  • Führen Aktionen aus

Beispiel:

Benutzer: "Buche einen Flug nach Berlin"
Agent: 
1. Sucht Flüge (Tool: FlightSearch)
2. Vergleicht Preise
3. Bucht Ticket (Tool: BookFlight)
4. Sendet Bestätigung

Prompt Engineering vs. Contextual Engineering

Prompt Engineering

Optimierung der Anfrage an das Modell

# Schlecht
"Schreibe Code"

# Gut
"Schreibe Python-Code für eine Funktion, die 
die Fibonacci-Folge bis zur N-ten Zahl berechnet.
Verwende Memoization für Optimierung.
Füge Docstrings und Type Hints hinzu."

Contextual Engineering

Bereitstellung von relevantem Kontext im Fenster

context = """
Projektregeln:
- Verwende TypeScript
- Folge Clean Code-Prinzipien
- Schreibe Unit-Tests
"""
 
prompt = f"{context}\n\nAufgabe: {user_task}"

Memory Management (Speicherverwaltung)

Kurzfristiges Gedächtnis

  • Aktueller Kontext innerhalb des Fensters
  • Begrenzt durch Context Window

Langfristiges Gedächtnis

  • Gespeichert in externer DB
  • Wird bei Bedarf abgerufen
  • Unbegrenzt, aber erfordert RAG

Implementierung:

# Kurzfristig
conversation_history = [
    {"role": "user", "content": "Hallo"},
    {"role": "assistant", "content": "Hallo! Wie kann ich helfen?"}
]
 
# Langfristig
vector_db.store(embedding(text), metadata)
relevant_context = vector_db.search(query)

Kosten-Optimierung

Strategien:

  1. Prompt-Caching — wiederhole nicht denselben Kontext
  2. Token-Reduktion — entferne unnötige Wörter
  3. Modellauswahl — verwende kleinere Modelle für einfache Aufgaben
  4. Batching — kombiniere mehrere Anfragen

Beispiel:

Statt:
Request 1: Context (1000 tokens) + Question 1 (50 tokens)
Request 2: Context (1000 tokens) + Question 2 (50 tokens)

Besser:
Request: Context (1000 tokens) + Question 1 + Question 2 (100 tokens)

Temperatur und Top-P

Temperature (0.0 - 2.0)

  • 0.0 — deterministisch, immer dieselbe Antwort
  • 1.0 — ausgewogen
  • 2.0 — kreativ, zufällig

Top-P (0.0 - 1.0)

  • 0.1 — nur die wahrscheinlichsten Tokens
  • 0.9 — breitere Auswahl
  • 1.0 — alle Tokens berücksichtigt

Verwendung:

# Für Code-Generierung
temperature = 0.2  # Präzision
top_p = 0.9
 
# Für kreatives Schreiben
temperature = 0.8  # Kreativität
top_p = 0.95

Häufige Probleme

1. Halluzinationen

Modell erfindet Fakten.

Lösung:

  • Gib klare Anweisungen
  • Verwende RAG für faktische Daten
  • Validiere wichtige Antworten

2. Token-Limit überschritten

Lösung:

  • Kürze den Kontext
  • Verwende Zusammenfassungen
  • Teile in kleinere Anfragen auf

3. Inkonsistente Ausgabe

Lösung:

  • Senke Temperature
  • Verwende structured output (JSON mode)
  • Füge Beispiele hinzu (few-shot)

Production-Überlegungen

Monitoring:

  • Token-Verwendung verfolgen
  • Latenz messen
  • Fehlerquote überwachen

Sicherheit:

  • Input-Validierung
  • Output-Filterung
  • Rate Limiting
  • API-Key-Schutz

Skalierung:

  • Load Balancing
  • Caching-Schichten
  • Asynchrone Verarbeitung
  • Fallback-Modelle

Best Practices

  1. Klare Instruktionen

    "Agiere als Senior Python Developer.
    Schreibe produktionsbereiten Code mit
    Fehlerbehandlung und Logging."
    
  2. Few-Shot Learning

    Beispiel 1: Input → Output
    Beispiel 2: Input → Output
    Jetzt deine Aufgabe: Input → ?
    
  3. Chain-of-Thought

    "Erkläre Schritt für Schritt:
    1. Analysiere das Problem
    2. Identifiziere mögliche Lösungen
    3. Wähle die beste Option
    4. Implementiere"
    
  4. Validierung

    response = llm.generate(prompt)
    if not validate(response):
        response = llm.generate(improved_prompt)

Fazit

LLMs sind mächtige Werkzeuge, aber:

  • Verstehe ihre Einschränkungen
  • Optimiere Kosten
  • Validiere Ausgaben
  • Plane für Production
  • Bleibe auf dem neuesten Stand der Entwicklungen

Für Production-Systeme ist es entscheidend, LLM-Interna zu verstehen, nicht nur die API zu verwenden.