FLINT: Efficiently Leveraging High Bandwidth Flash for Capacity-Scalable LLM Inference Acceleration
FLINT ist ein workload-gesteuerter Substrat, der die kapazitäts-skalierbare LLM-Inferenz auf High-Bandwidth Flash (HBF) beschleunigt, indem er einen Hardware-Burst-Buffer-Controller, einen Phantom-Plane-Refresh-Mechanismus und eine Read-Only-FTL einführt, um Herausforderungen bezüglich Latenz, Critical-Path-Interferenzen und Management-Overhead zu bewältigen.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Die Welt der künstlichen Intelligenz steuert derzeit auf ein physisches Limit zu. Die fortschrittlichsten Sprachmodelle, jene Systeme, die Code schreiben, Geschichten entwerfen und komplexe Probleme lösen, sind so massiv geworden, dass sie nicht mehr in die Standard-Speicherchips passen, die an den Computerprozessor angeschlossen sind, auf dem sie laufen. Stellen Sie sich vor, Sie wollten eine Bibliothek von einer Milliarde Büchern in einem Rucksack transportieren, der nur Platz für ein paar Dutzend bietet; dies ist die aktuelle Realität für die Hardware, die diese Modelle antreibt. Um diese Systeme zum Laufen zu bringen, waren Ingenieure gezwungen, die Modelle auf viele separate Computer aufzuteilen – eine Lösung, die teuer, langsam und energiehungrig ist, da die Computer ständig miteinander kommunizieren müssen, um die Last zu teilen. Eine neue Technologie namens High-Bandwidth Flash bietet eine Möglichkeit, diese massiven Bibliotheken direkt neben dem Prozessor zu speichern und bietet Terabytes an Platz in einem winzigen Gehäuse. Diese neue Speicherung ist jedoch viel langsamer zu lesen als der Speicher des Prozessors selbst, was einen Flaschenhals erzeugt, bei dem der Computer den Großteil seiner Zeit damit verbringt, auf die Ankunft der Daten zu warten.
Forscher von Huawei und der ETH Zürich haben ein System namens FLINT entwickelt, um dieses Wartungsproblem zu lösen. Ihre Arbeit, die in einer kürzlich veröffentlichten Studie detailliert beschrieben wird, schlägt einen Weg vor, wie dieser hochkapazitiven Flash-Speicher schnell genug betrieben werden kann, um mit den Anforderungen des Prozessors Schritt zu halten, ohne die komplexen, vorab geplanten Zeitpläne zu benötigen, die frühere Designs erforderten. Anstatt zu raten, welche Daten der Prozessor als Nächstes benötigen wird, beobachtet FLINT den Prozessor in Echtzeit und organisiert die Datenanfragen, während sie auftreten. Durch das Gruppieren dieser Anfragen und die effizientere Nutzung der internen Puffer des Speicherchips kann das System Daten mit Geschwindigkeiten streamen, die fast denen des eigenen Prozessorspeichers entsprechen. Das Team simulierte dieses System mit sechs verschiedenen großen Sprachmodellen, darunter einigen der größten und komplexesten Modelle, die derzeit existieren. Ihre Ergebnisse zeigen, dass dieser Ansatz es einem einzelnen Computerpaket ermöglicht, Aufgaben zu bewältigen, die zuvor Dutzende von Maschinen erforderten, während er gleichzeitig deutlich weniger Energie verbraucht und Ergebnisse viel schneller liefert.
Der Kern des Problems liegt darin, wie diese Modelle aufgebaut sind. Um eine Inferenz durchzuführen – also den Akt, bei dem das Modell eine Antwort generiert –, muss der Computer ständig auf die Gewichte des Modells zugreifen, welche im Wesentlichen die Milliarden von Zahlen sind, die sein Wissen definieren. In der Vergangenheit waren diese Gewichte klein genug, um vollständig in den Hochgeschwindigkeitsspeicher zu passen, der direkt am Prozessor angeschlossen ist. Jetzt, mit Modellen, die hunderte Milliarden oder sogar Billionen von Parametern enthalten, sind die Gewichte zu groß für diesen schnellen Speicher. Die Alternative war die Verwendung von Solid-State-Drives, die groß und günstig, aber viel zu langsam sind, oder die Verwendung mehrerer Prozessoren, was Verzögerungen verursacht, wenn diese ihre Arbeit synchronisieren. High-Bandwidth Flash wurde als Mittelweg vorgeschlagen: eine Speichertechnologie, die in dasselbe kleine Gehäuse wie der Prozessor passt und eine enorme Kapazität bietet, aber eine Lesegeschwindigkeit hat, die immer noch zu langsam ist, um vom Prozessor direkt ohne Stillstand genutzt zu werden.
Frühere Versuche, diesen Flash-Speicher zu nutzen, stützten sich auf eine Methode, die der eines Bibliothekars ähnelt, der rät, welches Buch ein Leser als Nächstes benötigen wird. Das System versuchte, die nächste Schicht des Modells vorherzusagen und begann, diese Gewichte abzurufen, bevor der Prozessor sie anforderte. Die Forscher fanden heraus, dass dieses Ratespiel kläglich scheiterte. Da die Modelle so komplex sind und sich ihr Verhalten je nach der spezifischen Frage ändert, waren die Vermutungen oft falsch. Das System rief Daten ab, die der Prozessor noch gar nicht benötigte, füllte so den begrenzten Pufferraum auf und zwang das System dazu, Daten wegzuwerfen, die tatsächlich benötigt wurden. Dies führte dazu, dass der Prozessor den Großteil seiner Zeit damit verbrachte, auf das korrekte Abrufen der Daten zu warten, wodurch die hohe Geschwindigkeit des Flash-Speichers verschwendet wurde.
FLINT ändert diesen Ansatz, indem es das Raten komplett eliminiert. Anstatt eines ratenden Bibliothekars fungiert das System wie ein hocheffizienter Verkehrsleiter, der den Verkehrsfluss in Echtzeit beobachtet. Wenn der Prozessor nach einem bestimmten Stück Daten fragt, ruft FLINT nicht nur dieses eine Stück ab. Es betrachtet den Strom der Anfragen, die vom Prozessor kommen, und gruppiert sie. Wenn der Prozessor mehrere Datenteile anfordert, die zufällig im gleichen physischen Bereich des Flash-Chips gespeichert sind, bündelt FLINT diese zu einer einzigen, großen Anfrage. Dies ermöglicht es dem Flash-Chip, eine massive Menge an Daten in einem Arbeitsgang zu lesen und so seine volle Geschwindigkeit auszuschöpfen. Das System hält diese Daten dann in seinen internen Puffern bereit, um sie dem Prozessor genau dann zu übergeben, wenn sie benötigt werden. Diese dynamische Gruppierung bedeutet, dass das System niemals Zeit mit dem Abrufen von Daten verschwendet, die nicht benötigt werden, und den Datenpipeline-Fluss konstant aufrechterhält.
Eine weitere große Hürde für den Flash-Speicher ist, dass er Wartung erfordert. Im Laufe der Zeit kann der Akt des Lesens von Daten dazu führen, dass die elektrischen Ladungen innerhalb des Chips degradieren, was zu Fehlern führt. Um dies zu beheben, muss der Chip periodisch pausieren und die Daten an frische Orte umschreiben. In früheren Designs musste diese Wartung stattfinden, während der Prozessor versuchte, Daten zu lesen, was das System für lange Zeit einfrieren ließ. Die Forscher lösten dies durch die Schaffung eines „Phantom-Ebenen“-Systems (phantom plane). Sie fügten dem Chip eine kleine Menge an zusätzlichem Platz hinzu, der als Ersatzspur dient. Wenn ein Abschnitt des Chips Wartungsarbeiten benötigt, kopiert das System die Daten im Hintergrund geräuschlos in diese Ersatzspur, ohne den Hauptdatenfluss zum Prozessor jemals zu unterbrechen. Dies stellt sicher, dass die Wartungsarbeiten die Arbeit des Prozessors niemals unterbrechen und das System auch dann reibungslos läuft, wenn der Chip altert.
Das Team vereinfachte zudem die Art und Weise, wie das System die Anfragen des Prozessors in physische Positionen auf dem Chip übersetzt. Standard-Speichersysteme sind darauf ausgelegt, ständiges Schreiben und Umschreiben zu handhaben, was komplexe Karten und schwere Mechanik zur Verwaltung erfordert. Da die Gewichte eines Sprachmodells einmal geschrieben und nie verändert werden, verwendet FLINT eine viel einfachere, leichtgewichtige Karte, die ausschließlich für das Lesen optimiert ist. Diese Reduzierung der Komplexität bedeutet, dass das System Anfragen fast augenblicklich übersetzen kann, was eine weitere Ebene der Verzögerung entfernt.
Als die Forscher diese Ideen in einer detaillierten Simulation testeten, waren die Ergebnisse beeindruckend. Sie verglichen ihr neues System mit drei anderen Setups: einem Standardsystem unter Verwendung langsamer Solid-State-Drives, einem System, das nur den schnellen Speicher über viele Prozessoren hinweg nutzt, und einem früheren Versuch, Flash-Speicher einzusetzen. Das FLINT-System konnte Text – also den Prozess der Generierung der Ausgabe des Modells – bis zu 1.205 Mal schneller dekodieren als das System mit Solid-State-Drives. Im Vergleich zu dem System, das auf viele zusammenarbeitende Prozessoren angewiesen war, war FLINT im Durchschnitt mehr als doppelt so schnell. Vielleicht am wichtigsten ist, dass es diese Leistung mit wesentlich weniger Computern erbrachte. Für eine kleine Anzahl von Anfragen konnte ein einzelner, mit FLINT ausgestatteter Computer die Arbeit leisten, die zuvor vier bis acht Computer erforderte, und tat dies bei einem deutlich geringeren Energieverbrauch.
Die Studie untersuchte auch die Lebensdauer des Systems. Da der Flash-Speicher ständig gelesen wird, waren die Forscher besorgt darüber, wie schnell die Chips verschleißen würden. Sie fanden heraus, dass ihr Wartungssystem, das Daten umschreibt, bevor Fehler auftreten, die Lebensdauer des Speichers selbst unter intensiver Nutzung auf viele Jahre verlängert. Das System wurde mit sechs verschiedenen Modellen getestet, die von dichten Modellen bis hin zu komplexen Modellen reichen, die zwischen verschiedenen Experten wechseln, um Probleme zu lösen, und es schnitt in allen Bereichen gut ab. Die Forscher merkten an, dass das System zwar eine geringfügige Menge an physischem Platz auf dem Chip beansprucht, die Kosten dafür jedoch vernachlässigbar sind im Vergleich zu den massiven Gewinnen an Geschwindigkeit und Kapazität.
Diese Arbeit zeigt, dass die Grenzen der künstlichen Intelligenz nicht nur darin liegen, wie intelligent die Modelle sind, sondern auch darin, wie wir Daten um sie herum bewegen. Indem sie die Art und Weise überdachten, wie der Speicher mit dem Prozessor interagiert, haben die Forscher gezeigt, dass es möglich ist, Systeme zu bauen, die sowohl eine massive Kapazität als auch eine hohe Geschwindigkeit besitzen. Das FLINT-System verwandelt eine Technologie, die einst als zu langsam für den Echtzeitgebrauch galt, in eine praktische Lösung für die nächste Generation der künstlichen Intelligenz und ermöglicht es, leistungsstarke Modelle auf einzelnen Maschinen anstatt in ganzen Rechenzentren laufen zu lassen. Die Ergebnisse legen nahe, dass mit der richtigen Technik die physischen Einschränkungen des Speichers überwunden werden können, was die Tür für leistungsfähigere und effizientere KI-Systeme in der Zukunft öffnet.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.