PagedAttention
Erfahre, wie PagedAttention die Speicherverwaltung von LLMs und die Effizienz des KV-Caches optimiert. Entdecke die Auswirkungen auf den Durchsatz und den Vergleich mit der Leistung von Ultralytics YOLO26.
PagedAttention ist ein äußerst effizienter Algorithmus zur Speicherverwaltung, der entwickelt wurde, um die Inferenzgeschwindigkeit und den Durchsatz von großen Sprachmodellen (LLMs) zu optimieren. Inspiriert von den Konzepten des virtuellen Speichers und der Speicherverwaltung mit Seiten in herkömmlichen Betriebssystemen begegnet diese Technik dem enormen Speicherbedarf, der beim Erzeugen von Text durch den Schlüssel-Wert-Cache (oft als KV-Cache bezeichnet) entsteht. Indem die für den Cache benötigten zusammenhängenden Speicherblöcke in kleinere, nicht zusammenhängende „Seiten“ aufgeteilt werden, beseitigt PagedAttention effektiv sowohl interne als auch externe Speicherfragmentierung. Dadurch können KI-Server gleichzeitig deutlich mehr Anfragen bündeln und die GPU-Auslastung maximieren.
PagedAttention im Vergleich zu Flash Attention#
Beide Techniken optimieren zwar die Leistung neuronaler Netze, zielen jedoch auf unterschiedliche Engpässe ab. Flash Attention ist eine Optimierung auf Berechnungsebene, die den Aufmerksamkeitsmechanismus selbst beschleunigt, indem langsame Speicherlese- und -schreibvorgänge über die GPU-Hierarchie hinweg minimiert werden. Im Gegensatz dazu ist PagedAttention eine Strategie zur Speicherzuweisung. Der Fokus liegt ausschließlich darauf, wie der Speicher für das Kontextfenster strukturiert und gespeichert wird, sodass eine dynamische Skalierung ohne die vorherige Zuweisung großer, unnötiger Speicherblöcke möglich ist.
Anwendungen in der Praxis#
Die durch PagedAttention erzielte Speichereffizienz hat die Bereitstellung generativer Modelle in großem Maßstab in Produktivumgebungen grundlegend verändert.
-
API-Bereitstellung mit hohem Durchsatz: Produktivsysteme, die Modelle ähnlich wie GPT-4 bereitstellen, nutzen PagedAttention über Frameworks wie vLLM. Indem Speicherblöcke zwischen verschiedenen Benutzeranfragen gemeinsam genutzt werden, können Anbieter auf derselben Hardware bis zu viermal so viele Benutzer bedienen und dadurch die Kosten für den Betrieb cloudbasierter KI-Dienste drastisch senken.
-
Komplexe Dekodierungsstrategien: Wenn ein KI-Modell gleichzeitig mehrere mögliche Antworten erzeugt, etwa bei der Strahlsuche oder beim parallelen Sampling, ermöglicht PagedAttention diesen parallelen Sequenzen, dieselben grundlegenden Speicherseiten sicher gemeinsam zu nutzen. Dadurch verhindert das System die Duplizierung redundanter Speicherbereiche, sodass komplexe Schlussfolgerungsaufgaben deutlich schneller ausgeführt werden.
Speichereffizienz in der Computer Vision#
PagedAttention wird zwar hauptsächlich in der Verarbeitung natürlicher Sprache eingesetzt, doch das zugrunde liegende Prinzip einer konsequenten Speicheroptimierung ist auch in der Computer Vision (CV) von entscheidender Bedeutung. Bei der Bereitstellung von Modellen auf Edge-Geräten mit begrenzten Ressourcen ist es unverzichtbar, eine übermäßige Speichernutzung zu vermeiden. Ultralytics YOLO26 erreicht nativ eine effiziente Echtzeitinferenz, indem es durch eine durchgängige, NMS-freie Architektur auf eine aufwendige Cache-Verwaltung verzichtet.
Für Entwickler, die die Speicher- und Exportanforderungen von Pipelines zur Objekterkennung nahtlos bewältigen möchten, bietet die Ultralytics Platform automatisierte Werkzeuge für die Bereitstellung, die Modelle für eine optimale Ausführung auf der jeweiligen Hardware paketieren.
Codebeispiel#
PagedAttention arbeitet in Bereitstellungs-Frameworks im Hintergrund und ersetzt standardmäßige Attention-Funktionen durch optimierte CUDA-Kernels. Das folgende konzeptionelle Beispiel zeigt, wie sich standardmäßige Attention in PyTorch definieren lässt. Systeme wie vLLM fangen diese Definition automatisch ab und optimieren sie mithilfe von Paging während der Modellbereitstellung.
import torch
import torch.nn.functional as F
# Simulated Key, Query, and Value tensors for a standard attention block
batch_size, num_heads, sequence_length, head_dim = 1, 8, 1024, 64
query = torch.randn(batch_size, num_heads, sequence_length, head_dim)
key = torch.randn(batch_size, num_heads, sequence_length, head_dim)
value = torch.randn(batch_size, num_heads, sequence_length, head_dim)
# Standard attention computation (often replaced by PagedAttention kernels in production LLM servers)
attention_output = F.scaled_dot_product_attention(query, key, value)
print(f"Computed attention shape: {attention_output.shape}")Durch den Einsatz fortschrittlicher Strategien zur Speicherzuweisung verschiebt die KI-Branche weiterhin die Grenzen des Machbaren und stellt sicher, dass umfangreiche Basismodelle weltweit effizient skaliert und genutzt werden können.









