Yolo Vision Shenzhen
Shenzhen
Jetzt beitreten
Glossar

PagedAttention

Erfahren Sie, wie PagedAttention die Speicherverwaltung von LLMs und die Effizienz des KV-Caches optimiert. Entdecken Sie die Auswirkungen auf den Durchsatz und vergleichen Sie die Leistung mit der Ultralytics .

PagedAttention ist ein hocheffizienter Speicherverwaltungsalgorithmus, der darauf ausgelegt ist, die Inferenzgeschwindigkeit und den Durchsatz von großen Sprachmodellen (LLMs) zu optimieren. Inspiriert von den Konzepten des virtuellen Speichers und der Auslagerung in herkömmlichen Betriebssystemen, behebt diese Technik den enormen Speicherverbrauch, der mit dem Schlüssel-Wert-Cache (oft als KV-Cache bezeichnet) während der Textgenerierung verbunden ist. Indem die für den Cache erforderlichen 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 deutlich mehr Anfragen gleichzeitig stapelweise verarbeiten und so GPU maximieren.

PagedAttention vs. Flash Attention

Obwohl beide Techniken die Leistung neuronaler Netze optimieren, zielen sie auf unterschiedliche Engpässe ab. Flash Attention ist eine Optimierung auf Rechenebene, die den Aufmerksamkeitsmechanismus selbst beschleunigt, indem sie langsame Speicherlese- und -schreibvorgänge über die gesamte GPU hinweg minimiert. Im Gegensatz dazu ist PagedAttention eine Strategie zur Speicherzuweisung. Sie konzentriert sich ausschließlich darauf, wie der Speicher für das Kontextfenster strukturiert und gespeichert wird, und ermöglicht so eine dynamische Skalierung, ohne große, verschwenderische Speicherblöcke vorab zuzuweisen.

Anwendungsfälle in der Praxis

Die durch PagedAttention ermöglichte Speichereffizienz hat die Art und Weise, wie groß angelegte generative Modelle in der Produktion eingesetzt werden, grundlegend verändert.

  1. Hochdurchsatz-API-Bereitstellung: Produktionssysteme, die Modelle ähnlich wie GPT-4 bereitstellen, nutzen PagedAttention über Frameworks wie vLLM. Durch die gemeinsame Nutzung von Speicherblöcken für verschiedene Benutzeranfragen können Anbieter auf derselben Hardware bis zu viermal so viele Benutzer bedienen, was die Kosten für den Betrieb cloudbasierter KI-Dienste drastisch senkt.
  2. Komplexe Dekodierungsstrategien: Wenn ein KI-Modell mehrere potenzielle Antworten gleichzeitig generiert (wie beispielsweise bei der Beam-Suche oder beim parallelen Sampling), ermöglicht PagedAttention diesen parallelen Sequenzen, sich sicher dieselben grundlegenden Speicherseiten zu teilen. Dies verhindert, dass das System redundanten Speicher dupliziert, wodurch komplexe Schlussfolgerungsaufgaben deutlich beschleunigt werden.

Speichereffizienz in der Bildverarbeitung

Während PagedAttention in erster Linie in der Verarbeitung natürlicher Sprache zum Einsatz kommt, ist das zugrunde liegende Prinzip der strikten Speicheroptimierung ebenso entscheidend für die Bildverarbeitung (CV). Bei der Bereitstellung von Modellen auf hardwarebeschränkten Edge-Geräten ist es unerlässlich, einen übermäßigen Speicherverbrauch zu vermeiden. Ultralytics erreicht nativ eine effiziente Echtzeit-Inferenz, indem es durch den Einsatz einer durchgängigen, NMS Architektur die Notwendigkeit eines aufwendigen Cache-Managements umgeht.

Für Entwickler, die die Speicher- und Exportanforderungen von Objekterkennungs-Pipelines nahtlos bewältigen möchten, bietet die Ultralytics automatisierte Bereitstellungstools, die Modelle für eine optimale Ausführung auf der Hardware aufbereiten.

Code-Beispiel

PagedAttention arbeitet im Hintergrund von Serving-Frameworks und ersetzt Standard-Attention-Funktionen durch optimierte Cuda . Nachfolgend finden Sie ein konzeptionelles Beispiel, das veranschaulicht, wie man Standard-Attention in PyTorchdefinieren könnte, die Systeme wie vLLM automatisch abfangen und während der Modellbereitstellung mithilfe von Paging optimieren.

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 erweitert die KI-Branche kontinuierlich die Grenzen des Möglichen und sorgt dafür, dass riesige Grundmodelle weltweit effizient skaliert und genutzt werden können.

Lassen Sie uns gemeinsam die Zukunft der KI gestalten!

Beginnen Sie Ihre Reise mit der Zukunft des maschinellen Lernens