Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Self-Attention

Self-Attention ermöglicht es jedem Token einer Sequenz, alle anderen Tokens zu gewichten. Dazu nutzt sie Querys, Keys und Values aus derselben Eingabe. Sie bildet den Kern von Transformern.

Selbstaufmerksamkeit ist eine Form der Aufmerksamkeit, bei der Abfragen, Schlüssel und Werte alle aus derselben Sequenz stammen. Dadurch erstellt jedes Token seine neue Repräsentation anhand aller anderen Tokens dieser Sequenz. Eine Schicht mit Selbstaufmerksamkeit kann in einem einzigen Schritt das erste und letzte Wort eines Absatzes oder gegenüberliegende Ecken eines Bildes miteinander verknüpfen. Ein rekurrentes neuronales Netzwerk (RNN) benötigt dafür einen Schritt pro Position, ein konvolutionales neuronales Netzwerk (CNN) viele übereinandergestapelte Schichten, um seinen Sichtbereich zu vergrößern. Zusammen mit vorwärtsgerichteten Schichten bildet Selbstaufmerksamkeit den Transformer, der im Paper Attention Is All You Need aus dem Jahr 2017 vorgestellt wurde und großen Sprachmodellen (LLMs), Vision Transformers (ViT) und Transformern zur Objekterkennung zugrunde liegt.

So funktioniert Self-Attention#

Jedes Eingabetoken, dargestellt als Einbettung, wird mit drei lernbaren Matrizen multipliziert, um eine Abfrage, einen Schlüssel und einen Wert zu erhalten. Die Ausgabe für Token i ist ein gewichteter Durchschnitt der Wertvektoren aller Tokens. Die Gewichte ergeben sich aus einer Softmax-Funktion über die skalierten Skalarprodukte der Abfrage von Token i mit allen Schlüsseln – der skalierten Skalarprodukt-Aufmerksamkeit, die auf der Seite zum Aufmerksamkeitsmechanismus beschrieben wird. Da Abfragen, Schlüssel und Werte Projektionen derselben Tokens sind, erzeugt eine Sequenz aus n Tokens eine Gewichtungsmatrix der Größe n × n. Im Satz „Das Tier überquerte die Straße nicht, weil es zu müde war“ kann die Zeile für „es“ das meiste Gewicht auf „Tier“ legen und so die Bedeutung dieses Wortes in die eigene Repräsentation einfließen lassen.

Bei der Selbstaufmerksamkeit mit mehreren Köpfen laufen mehrere dieser Berechnungen parallel auf kleineren Projektionen ab. Anschließend werden die Ergebnisse verkettet. So können verschiedene Köpfe unterschiedliche Beziehungen verfolgen, etwa Syntax in einem Kopf und Koreferenz in einem anderen. Der ursprüngliche Transformer verwendete 8 Köpfe mit jeweils 64 Dimensionen in einem Modell mit 512 Dimensionen.

Blindheit gegenüber der Reihenfolge und kausale Maskierung#

Selbstaufmerksamkeit behandelt ihre Eingabe wie eine Menge. Werden die Tokens umsortiert, werden die Ausgaben auf dieselbe Weise umsortiert; sonst ändert sich nichts. Deshalb fügen Modelle Positionsinformationen hinzu, zum Beispiel sinusförmige Einbettungen im ursprünglichen Transformer oder rotäre Positionseinbettungen (RoPE) in den meisten aktuellen LLMs. Encoder wie BERT lassen jedes Token in beide Richtungen auf andere Tokens achten. Decoder-only-LLMs wenden eine kausale Maske an, sodass jedes Token nur sich selbst und frühere Tokens berücksichtigt. Dadurch kann ein Modell Text von links nach rechts generieren und die Schlüssel und Werte früherer Tokens aus einem KV-Cache wiederverwenden. MultiheadAttention von PyTorch veranschaulicht beide Eigenschaften, wenn derselbe Tensor als Abfrage, Schlüssel und Wert übergeben wird:

import torch

torch.manual_seed(0)
tokens = torch.randn(1, 5, 16)  # eine Sequenz aus 5 Tokens mit jeweils 16 Merkmalen
attn = torch.nn.MultiheadAttention(embed_dim=16, num_heads=2, batch_first=True)

# Selbstaufmerksamkeit: Abfragen, Schlüssel und Werte sind allesamt Projektionen derselben Tokens
out, weights = attn(tokens, tokens, tokens)
print("Attention weights shape:", tuple(weights.shape))

# Beim Umordnen der Tokens werden nur die Ausgaben umgeordnet. Ohne Positionsangaben bleibt die Wortreihenfolge unsichtbar
perm = torch.tensor([3, 0, 4, 1, 2])
out_shuffled, _ = attn(tokens[:, perm], tokens[:, perm], tokens[:, perm])
print("Same outputs after shuffling:", torch.allclose(out_shuffled, out[:, perm], atol=1e-6))

# Eine kausale Maske verhindert die Aufmerksamkeit auf spätere Tokens, wie bei einem Decoder-only-LLM
mask = torch.triu(torch.ones(5, 5, dtype=torch.bool), diagonal=1)
_, causal_weights = attn(tokens, tokens, tokens, attn_mask=mask)
print(causal_weights[0].detach().round(decimals=2))

Die Ausgabe zeigt eine Gewichtsform (1, 5, 5), True für den Umordnungstest und eine untere Dreiecksmatrix: Das erste Token gewichtet sich selbst mit 1.00, das zweite verteilt seine Gewichte mit 0.31 und 0.69 auf die ersten beiden Tokens, und jeder Eintrag oberhalb der Diagonale beträgt 0.00.

  • Aufmerksamkeitsmechanismus: Die allgemeine Operation, bei der Werte anhand der Ähnlichkeit von Abfragen und Schlüsseln gewichtet werden. Bei der Selbstaufmerksamkeit stammen alle drei aus derselben Sequenz.
  • Kreuzaufmerksamkeit: Abfragen stammen aus einer Sequenz, Schlüssel und Werte aus einer anderen. Ein Übersetzungsdecoder berücksichtigt den kodierten Ausgangssatz, die Objektabfragen eines DETR-Decoders berücksichtigen Bildmerkmale und ein Diffusionsmodell zur Bilderzeugung aus Text berücksichtigt die Eingabeaufforderung.
  • Faltung: Wendet an jeder Position denselben kleinen Filter an. Jede Ausgabe erfasst dadurch ein festes lokales Fenster mit Gewichten, die nicht vom Inhalt abhängen. Selbstaufmerksamkeit berechnet ihre Gewichte anhand des Inhalts und erfasst die gesamte Eingabe.

Der ursprüngliche Encoder-Decoder-Transformer kombiniert bidirektionale Selbstaufmerksamkeit, kausale Selbstaufmerksamkeit und Kreuzaufmerksamkeit:

Rechenaufwand und effiziente Varianten#

Die Bewertung jedes Tokenpaars lässt Zeit- und Speicherbedarf quadratisch mit der Sequenzlänge wachsen: 1.000 Tokens ergeben eine Million Bewertungen pro Kopf, 100.000 Tokens zehn Milliarden. FlashAttention berechnet exakte Selbstaufmerksamkeit in Kacheln, ohne die vollständige Matrix zu speichern. Bei der Aufmerksamkeit mit gruppierten Abfragen (GQA) teilen sich mehrere Köpfe Schlüssel und Werte, wodurch der KV-Cache kleiner wird. Gleitfenster-, sparse und lineare Aufmerksamkeit verringern die Zahl der Paare. In der Bildverarbeitung hängt die Tokenzahl von der Bildauflösung ab. Deshalb wenden viele Detektoren Selbstaufmerksamkeit nur dort an, wo Merkmalskarten am kleinsten sind. YOLO26 setzt Selbstaufmerksamkeit mit mehreren Köpfen nur im C2PSA-Block am Ende des Backbones und in einem aufmerksamkeitsfähigen C3k2-Block im Neck ein. Beide arbeiten auf der Merkmalskarte mit einer Schrittweite von 32 und den Abmessungen 20 × 20 für ein 640 Pixel großes Bild, also mit 400 Tokens. Das Aufmerksamkeitsmodul berechnet Abfragen, Schlüssel und Werte mit einer einzigen 1×1-Faltung über diese Karte und ergänzt Positionsinformationen durch eine 3×3-Tiefenfaltung auf die Werte.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens