Zum Hauptinhalt

Attention Mechanism

Der Attention Mechanism ist ein zentrales Konzept moderner KI-Modelle, das es einem neuronalen Netz ermöglicht, beim Verarbeiten einer Eingabe selektiv auf relevante Teile zu fokussieren – ähnlich wie menschliche Aufmerksamkeit.

AIExperteattentiontransformerdeep-learning

Was ist der Attention Mechanism?

Der Attention Mechanism wurde 2015 eingeführt und ist heute das Herzstück moderner Sprachmodelle. Er löst ein fundamentales Problem älterer Architekturen (z. B. RNNs): Lange Sequenzen konnten nicht effektiv verarbeitet werden, weil frühe Informationen "vergessen" wurden.

Mit Attention kann ein Modell bei der Verarbeitung jedes Tokens dynamisch gewichten, welche anderen Tokens in der Sequenz relevant sind – unabhängig von deren Position.

Wie funktioniert es?

Die Kernidee basiert auf drei Vektoren, die für jeden Token berechnet werden:

  • Query (Q): „Was suche ich?" – Repräsentation des aktuellen Tokens
  • Key (K): „Was biete ich an?" – Repräsentation aller anderen Tokens
  • Value (V): „Was ist mein Inhalt?" – Der eigentliche Informationsgehalt

Die Aufmerksamkeitsgewichte werden durch das Skalarprodukt von Query und Keys berechnet:

Attention(Q, K, V) = softmax(QKᵀ / √dₖ) · V

Das Ergebnis: Ein gewichteter Durchschnitt der Value-Vektoren – Tokens, die für den aktuellen Kontext relevant sind, erhalten höheres Gewicht.

Self-Attention vs. Cross-Attention

TypBeschreibungEinsatz
Self-AttentionTokens einer Sequenz beachten sich gegenseitigEncoder & Decoder
Cross-AttentionTokens beachten eine andere Sequenzz. B. Encoder→Decoder in Übersetzungsmodellen

Multi-Head Attention

In der Praxis werden mehrere Attention-Heads parallel verwendet. Jeder Head lernt unterschiedliche Beziehungen (Syntax, Semantik, Koreferenzen etc.):

import torch
import torch.nn as nn

# PyTorch Multi-Head Attention
mha = nn.MultiheadAttention(
    embed_dim=512,   # Embedding-Größe
    num_heads=8,     # 8 parallele Attention-Heads
    dropout=0.1,
    batch_first=True
)

# Eingabe: (batch_size, seq_len, embed_dim)
x = torch.randn(2, 10, 512)  # 2 Sequenzen, je 10 Tokens

output, attn_weights = mha(x, x, x)  # Query=Key=Value → Self-Attention
print(output.shape)        # torch.Size([2, 10, 512])
print(attn_weights.shape)  # torch.Size([2, 10, 10])

Warum ist das für Entwickler wichtig?

  • Context Window: Die Attention-Berechnung skaliert quadratisch mit der Sequenzlänge (O(n²)) – das ist der Grund, warum Context Windows begrenzt sind und längere Kontexte teurer in der Inferenz sind.
  • Interpretierbarkeit: Attention-Gewichte können (eingeschränkt) visualisiert werden, um zu verstehen, welche Tokens das Modell als relevant erachtet.
  • Optimierungen: Techniken wie Flash Attention oder Sparse Attention reduzieren den Speicher- und Rechenaufwand für lange Sequenzen erheblich.

Praxisrelevanz

Als Entwickler begegnest du dem Attention Mechanism indirekt täglich: Er bestimmt, wie gut ein LLM lange Dokumente versteht, ob Anweisungen aus dem System Prompt über viele Tokens hinweg "erinnert" werden und wie präzise RAG-Ergebnisse in die Antwort integriert werden.

Inhouse statt Nachschlagewerk

Für den Transfer ins Unternehmen sind die Inhouse-Schulungen der passende nächste Schritt.