Definition
Ein Sprachmodell ist ein trainiertes neuronales Netzwerk, das die nächste Sequenz von Text-Token basierend auf vorangegangenen Tokens vorhersagt – die Grundlage für ChatGPT, Claude, Llama und andere generative KI-Systeme. Das Trade-off: je größer das Modell (Parameter-Zahl), desto besser die Qualität und der Fähigkeitsumfang, aber desto höher der Speicher- und Rechenbedarf beim Training und bei der Inference.
Mechanik
Sprachmodelle verwenden Transformer-Architektur mit Attention um Abhängigkeiten zwischen Tokens zu lernen. Während des Trainings wird das Modell auf Milliarden von Text-Tokens optimiert, um beim nächsten Token maximal korrekt zu raten – typischerweise mit Cross-Entropy-Loss. Bei der Inference wird iterativ ein Token nach dem anderen generiert (entweder gierig, Beam Search oder Sampling via Temperature), bis ein Stop-Token oder maximale Länge erreicht ist.
Beispiel
# Minimales Beispiel: Vorhersage des nächsten Tokens
import random
# Simulierte Token-Sequenz: [0, 5, 7] → nächstes Token ist 3
training_data = [
([0, 5], 7),
([5, 7], 3),
([7, 3], 2),
([3, 2], 9),
]
# Ein echtes Sprachmodell nutzt Transformer + Backprop auf Milliarden Tokens.
# Hier nur das Konzept: gegeben Context -> predict next token
def predict_next_token(context_tokens):
# In der Praxis: Embeddings → Transformer-Layers → LogitsDecoding
# Hier: einfache Frequenz-Basierung
candidates = [val for ctx, val in training_data if ctx == tuple(context_tokens)]
return candidates[0] if candidates else random.randint(0, 9)
# Autoregressive Generation
context = [0, 5]
generated = context.copy()
for _ in range(3):
next_token = predict_next_token(context)
generated.append(next_token)
context = generated[-2:] # sliding window
print("Generated sequence:", generated)
# Output: [0, 5, 7, 3, 2]
Praktisches Beispiel mit echter Inferenz-API:
# Mit Ollama (lokal):
ollama run llama2 "Erkläre Sprachmodelle in einem Satz."
# Mit llama.cpp + Python:
# - Download: Llama-2-7B-GGUF-Quantisierung
# - pip install llama-cpp-python
# - Einfaches Sampling: top_p=0.9, temp=0.7