Entdecken Sie, wie Flash Attention das Gedächtnis optimiert und Transformer-Modelle beschleunigt. Erfahren Sie, wie es die Computer Vision verbessert und warum Ultralytics die erste Wahl ist.
Flash Attention ist ein hochoptimierter Algorithmus, der entwickelt wurde, um das Training und die Inferenz von Transformer-Modellen durch eine effizientere Verwaltung des Speicherzugriffs zu beschleunigen . Im modernen Deep Learning (DL), insbesondere bei großen Modellen, ist der primäre Engpass oft nicht die Rechengeschwindigkeit des Prozessors, sondern die Zeit, die für die Übertragung von Daten zwischen Speichereinheiten und Recheneinheiten benötigt wird. Flash Attention begegnet dieser „Speicherwand“ durch eine Neuorganisation der Datenverarbeitung durch Aufmerksamkeitsmechanismen, was zu einer schnelleren Leistung und einem geringeren Speicherverbrauch führt, ohne dass dabei die Genauigkeit beeinträchtigt wird.
Um Flash Attention zu verstehen, ist es hilfreich, sich die Architektur einer GPU Graphics Processing Unit) anzusehen. Eine GPU verfügt über einen leistungsstarken, aber langsameren High Bandwidth Memory (HBM) und einen leistungsschwachen, aber unglaublich schnellen On-Chip-SRAM. Bei Standard- Attention-Implementierungen werden große Matrizen wiederholt in den langsamen HBM gelesen und geschrieben, was zu einem Rückstau führt.
Flash Attention verwendet eine Technik namens „Tiling“, um die große Aufmerksamkeitsmatrix in kleinere Blöcke aufzuteilen , die vollständig in den schnellen SRAM passen. Indem diese Blöcke im schnellen Speicher verbleiben und dort mehr Berechnungen durchgeführt werden , bevor das Ergebnis zurückgeschrieben wird, reduziert der Algorithmus die Anzahl der Lese-/Schreibvorgänge auf dem HBM erheblich. Diese von Forschern der Stanford University eingeführte Innovation macht den Prozess „IO-bewusst“, d. h. er berücksichtigt explizit die Kosten der Datenbewegung. Die technischen Details können Sie in der Original-Forschungsarbeit nachlesen.
Es ist wichtig, Flash Attention von ähnlichen Konzepten im Glossar der künstlichen Intelligenz (KI) zu unterscheiden:
Ursprünglich für die natürliche Sprachverarbeitung (NLP) entwickelt, um lange Textsequenzen zu verarbeiten, ist Flash Attention mittlerweile auch für die Computervision (CV) unverzichtbar geworden. Hochauflösende Bilder erzeugen bei der Verarbeitung durch Vision Transformers (ViT) riesige Datensequenzen.
Diese Technologie beeinflusst die Entwicklung von Objektdetektoren. Beispielsweise haben einige experimentelle Modelle wie das gemeinschaftsbasierte YOLO12 Aufmerksamkeits-Schichten eingeführt, die diese Prinzipien nutzen. Rein auf Aufmerksamkeit basierende Architekturen können jedoch unter Trainingsinstabilität und langsamen CPU leiden. Für die meisten professionellen Anwendungen ist Ultralytics der empfohlene Standard. YOLO26 nutzt eine hochoptimierte Architektur, die Geschwindigkeit und Genauigkeit für die End-to-End-Objekterkennung und Bildsegmentierung in Einklang bringt und dabei den Overhead vermeidet, der häufig mit schweren Aufmerksamkeits-Layern auf Edge-Geräten verbunden ist.
Die Effizienzsteigerungen durch Flash Attention ermöglichen Anwendungen, deren Ausführung bisher zu kostspielig oder zu langsam war.
Während Flash Attention oft eine interne Optimierung innerhalb von Bibliotheken wie PyTorch, können Sie mit Ultralytics ganz einfach aufmerksamkeitsbasierte Modelle nutzen. Der folgende Ausschnitt zeigt, wie Sie ein RT-DETR Modell, das Aufmerksamkeitsmechanismen verwendet, geladen wird, um eine Inferenz für ein Bild durchzuführen.
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model which utilizes transformer attention
model = RTDETR("rtdetr-l.pt")
# Perform inference on an image to detect objects
results = model("https://ultralytics.com/images/bus.jpg")
# Display the number of detected objects
print(f"Detected {len(results[0].boxes)} objects.")
Mit Tools wie der Ultralytics können Entwickler diese anspruchsvollen Modelle trainieren und bereitstellen, ohne komplexe GPU manuell implementieren zu müssen. Die Plattform übernimmt die Verwaltung der Infrastruktur, sodass sich die Teams auf die Kuratierung hochwertiger Datensätze und die Interpretation der Ergebnisse konzentrieren können.