PagedAttention

PagedAttention

PagedAttention ist ein Verfahren, das den Arbeitsspeicher von Grafikkarten beim Betrieb von Sprachmodellen in kleine Blöcke aufteilt, statt für jede Anfrage einen großen zusammenhängenden Bereich zu reservieren. Dadurch passen viele Anfragen gleichzeitig auf eine Karte, was Antworten deutlich billiger macht.

Ein Programm, das Texte schreibt, merkt sich beim Schreiben alles, was es bisher gesagt hat. Diese Notizen liegen im Arbeitsspeicher einer Grafikkarte, und Platz dort ist teuer und knapp. Früher reservierten solche Programme für jede Anfrage von Anfang an einen großen, zusammenhängenden Speicherbereich. Man wusste ja nicht, ob die Antwort zehn oder tausend Wörter lang wird, also plante man großzügig. PagedAttention macht es anders: Es teilt die Notizen in viele kleine Blöcke auf und vergibt immer nur so viele Blöcke, wie gerade wirklich gebraucht werden. Die Blöcke müssen dabei nicht nebeneinander liegen, eine Tabelle merkt sich, wo welcher Block steht.

Warum knapper Grafikspeicher über den Preis entscheidet

Der Betrieb eines Sprachmodells kostet Geld, jedes Mal wenn jemand eine Frage stellt. Diesen Betrieb nennt man Inferenz, im Unterschied zum einmaligen Training des Modells. Wie teuer eine einzelne Antwort ist, hängt vor allem davon ab, wie viele Anfragen eine Grafikkarte parallel bearbeiten kann. Verdoppelt man diese Zahl, halbiert sich der Preis pro Antwort.

Genau hier lag das Problem der alten Verfahren. Weil jede Anfrage vorsorglich viel Speicher reservierte, war ein großer Teil des Speichers belegt, aber leer. Messungen zeigten, dass teils nur 20 bis 40 Prozent des reservierten Platzes tatsächlich genutzt wurden. Der Rest lag brach, und die Grafikkarte konnte weniger Nutzer bedienen, als sie eigentlich könnte.

PagedAttention hebt diese Auslastung auf über 90 Prozent. In der Praxis bedeutet das je nach Situation zwei- bis vierfach mehr gleichzeitige Anfragen auf derselben Hardware. Das Modell wird dadurch nicht klüger, es antwortet nur billiger. Für Anbieter von Chatbots ist das ein direkter Effekt auf die Rechnung.

Blöcke statt einem großen Stück

Die Idee ist von Betriebssystemen abgeschaut. Wenn du am Computer viele Programme offen hast, teilt Windows oder Linux den Speicher ebenfalls in gleich große Seiten auf. Kein Programm bekommt einen zusammenhängenden Riesenblock, sondern viele verstreute Seiten. Eine Übersetzungstabelle merkt sich, welche Seite zu welchem Programm gehört. Der Name PagedAttention kommt von diesen Seiten, englisch pages.

Übertragen auf ein Sprachmodell heißt das: Die Notizen zu einem Text werden in Blöcke von zum Beispiel 16 Positionen zerlegt. Wird die Antwort länger, hängt das System einfach einen weiteren Block an, egal wo im Speicher gerade Platz frei ist. Eine Blocktabelle hält fest, in welcher Reihenfolge die Blöcke zu einer Anfrage gehören. Die eigentliche Rechenoperation, die Attention, wird so umgeschrieben, dass sie mit verstreuten Blöcken umgehen kann.

Ein zweiter Vorteil ergibt sich fast von selbst. Mehrere Anfragen mit gleichem Anfang, etwa derselben Systemanweisung, können sich die passenden Blöcke teilen. Der Text muss dann nur einmal im Speicher liegen. Erst wenn sich die Antworten unterscheiden, wird ein Block kopiert. Fachleute nennen das Copy-on-Write, also Kopieren erst beim Schreiben.

vLLM und der Alltag hinter Chatbots

PagedAttention wurde 2023 an der Universität Berkeley entwickelt und ist der Kern der Software vLLM. vLLM ist ein Server, der Sprachmodelle für viele Nutzer gleichzeitig bereitstellt. Er gehört heute zu den verbreitetsten Werkzeugen dieser Art und wird von Cloud-Anbietern, Start-ups und Forschungsgruppen eingesetzt. Wer ein offenes Modell selbst betreibt, stößt fast unweigerlich darauf.

Direkt sichtbar ist die Technik für Nutzer nicht. Man merkt sie nur indirekt: daran, dass Antworten auch bei vielen gleichzeitigen Nutzern zügig kommen. In Meldungen aus der Branche taucht der Begriff dagegen regelmäßig auf, meist wenn es um Inferenzkosten oder um die Auslastung von Rechenzentren geht.

Ein häufiger Irrtum ist, PagedAttention mache das Modell selbst kleiner. Das tut es nicht. Die Gewichte des Modells bleiben unverändert im Speicher, gespart wird nur beim Zwischenspeicher für laufende Gespräche. Andere Verfahren wie Quantisierung setzen genau am anderen Punkt an und verkleinern das Modell. Beides lässt sich kombinieren, und in der Praxis wird es das auch.

Subscribe free. Unsubscribe the second it sucks.

High-signal news across AI, business, UX, and tech. Every morning.