Zurück zum Archiv
#ai#llm#glossary#aigen

PagedAttention

Ein Server bearbeitet Gespräche unterschiedlicher Länge. Wenn er für jedes im Voraus einen großen zusammenhängenden Speicherbereich für die gesamte künftige Antwort reserviert, bleibt ein Teil des Platzes ungenutzt. Du möchtest kleinere Abschnitte nach Bedarf zuweisen.

PagedAttention liest Informationen aus dem KV Cache, die in Blöcken gespeichert sind und an unterschiedlichen Stellen im Speicher liegen können. Eine Blocktabelle zeigt, wo der nächste logische Abschnitt des Gesprächs zu finden ist. Die Reihenfolge des Textes bleibt korrekt.

Wenn ein Block die Beschreibungen von vier Tokens — Textstücken — aufnimmt, wird nach dem fünften ein zweiter Block benötigt. Das System muss nicht im Voraus Platz für die maximale Länge jedes Gesprächs reservieren. Es kann auch unveränderte Blöcke nach den Regeln der Speicherverwaltung gemeinsam nutzen.

Das ist eine Art der Adressierung und Datenorganisation, keine automatische Verkürzung des Kontexts oder Änderung des Attention-Ergebnisses. Der Aufwand für Tabellen und teilweise gefüllte Blöcke bleibt. Das Experiment zeigt die Trennung von logischer Reihenfolge und physischem Speicherort.

Quelle des Mechanismus: Kwon et al., §4.1–4.3.

Mechanismus und Details

Ein aprikosenfarbener Faden verbindet vier voneinander entfernte Blöcke und erhält die Sequenzkontinuität trotz verteilter Speicherlage.

Eigenes Beispiel: Ein Block enthält KV für vier Positionen. Eine Sequenz der Länge fünf benötigt zwei Blöcke, also acht Plätze. Der erste ist voll, der zweite enthält einen Eintrag und drei freie Plätze. Die logischen Blöcke 0 und 1 können auf die physischen Blöcke 4 und 1 verweisen. Das bisherige Präfix muss nicht verschoben werden, um während Decode den nächsten Block anzuhängen.

Textreihenfolge ist keine Speicheradresse

Die Demonstration zeigt eine Sequenz und Blöcke mit vier Positionen. Verarbeite weitere Positionen, insbesondere den Übergang von vier zu fünf. Ändere dann die Anordnung derselben Daten. Wir nehmen einen skalaren Kopf an: Alle Keys sind null, das Query ist 1, und die Values aufeinanderfolgender Positionen sind 1, 2, 3… Die Attention-Gewichte sind somit gleich und das Ergebnis ist der Value-Mittelwert. Für fünf Positionen beträgt er in beiden Anordnungen 3.

Dies veranschaulicht Adressierung und Zuweisung, simuliert aber keine GPU-Zeit. Leere Plätze im letzten Block belegen weiterhin Speicher; PagedAttention entfernt oder komprimiert vorhandenes KV nicht. FlashAttention konzentriert sich auf die Organisation von Berechnungen und Transfers bei Attention. Die Mechanismen können sich ergänzen. Blockweises Teilen von Speicher hilft auch beim Prefix Caching.

Ich verwende KI-generierte Inhalte als Teil meines täglichen Lernprozesses.