FlashAchtung
Eine weit verbreitete Technik, die den Aufmerksamkeitsschritt eines Transformators erheblich beschleunigt, indem weniger Daten auf der GPU verschoben werden.
Aufmerksamkeit ist der Teil eines Transformators, bei dem jeder Token jeden anderen Token betrachtet, um zu entscheiden, worauf es ankommt. Wenn es naiv gemacht wird, erzeugt es eine riesige Zwischentabelle und verbringt dann die meiste Zeit damit, diese Tabelle zwischen schnellem und langsamem Speicher auf der Grafikkarte zu verschieben. FlashAttention ordnet die Berechnung neu an, sodass die Tabelle nie vollständig ausgeschrieben werden muss, was dasselbe Ergebnis mit einem Bruchteil des Speicherverkehrs bedeutet.
Es ist eine dieser seltenen Optimierungen, die das Praktische und nicht nur das, was schnell war, verändert hat: Längere Kontextfenster wurden vor allem dadurch erschwinglich. Aufeinanderfolgende Versionen bis hin zu FlashAttention-4 bilden die Basis, an der jeder neue Attention-Kernel gemessen wird.