Hardwarebeschleunigte LLMs: Umfassende Untersuchung und Vergleich
- LLMs haben sich als leistungsstarkes Werkzeug für Aufgaben der natürlichen Sprachverarbeitung etabliert und revolutionieren das Feld durch ihre Fähigkeit, menschenähnlichen Text zu verstehen und zu erzeugen
- Dieses Paper untersucht umfassend verschiedene Forschungsansätze zur Beschleunigung von Transformer-Netzwerken für große Sprachmodelle mithilfe von Hardwarebeschleunigern
Framework und Vergleich
- Es stellt das vorgeschlagene Framework vor und führt qualitative sowie quantitative Vergleiche hinsichtlich Technologie, Verarbeitungsplattformen (FPGA, ASIC, In-Memory, GPU), Beschleunigung, Energieeffizienz, Leistung (GOPs) und Energieeffizienz (GOPs/W) durch
- Eine zentrale Herausforderung besteht darin, dass jedes vorgeschlagene Schema mit unterschiedlichen Fertigungstechnologien implementiert wurde, was einen fairen Vergleich erschwert
- Der wichtigste Beitrag des Papers besteht darin, Ergebnisse zu Leistung und Energieeffizienz unter derselben Technologie abzuschätzen und so einen fairen Vergleich zu ermöglichen
Experimente und Ergebnisse
- Teile von LLMs werden auf mehreren FPGA-Chips implementiert, um Ergebnisse unter derselben Fertigungstechnologie abzuschätzen und die Leistung fair zu vergleichen
Zusammenfassung von GN⁺
- Dieses Paper bietet eine umfassende Untersuchung der Hardwarebeschleunigung großer Sprachmodelle (LLMs)
- Es ermöglicht faire Vergleiche durch den Vergleich von Leistung und Energieeffizienz auf verschiedenen Verarbeitungsplattformen
- Mithilfe von Experimenten auf FPGA-Chips werden Ergebnisse unter derselben Technologie abgeschätzt
- Es kann für Personen nützlich sein, die sich für die Leistungssteigerung von LLMs im Bereich der natürlichen Sprachverarbeitung interessieren
- Ähnliche Projekte mit vergleichbarer Funktionalität sind etwa NVIDIAs GPU-Beschleuniger und Googles TPU
1 Kommentare
Hacker-News-Kommentare
Das Paper erklärt den Hintergrund nur oberflächlich; mit etwas mehr Kontext: Seit den frühen 1990er-Jahren gibt es die Beobachtung, dass sich die CPU-Rechenleistung (FLOPs) schneller verbessert als die Speicherbandbreite, und 1995 sagten William Wulf und Sally McKee voraus, dass diese Lücke zu einer Memory Wall führen würde, bei der die meisten Berechnungen nicht durch Arithmetik, sondern durch Datenzugriffe begrenzt werden
In den letzten 20 Jahren ist die maximale FLOPS-Leistung von Server-Hardware alle zwei Jahre um das Dreifache gestiegen, während die Bandbreite von DRAM und Interconnects nur um etwa das 1,6-Fache bzw. 1,4-Fache zunahm
Deshalb verlagert sich bei LLM-Training und -Inference der Leistungsengpass zunehmend zur Speicherbandbreite, und insbesondere bei autoregressiven Transformer-Decoder-Modellen kann sie zum dominierenden Bottleneck werden
Dieser Trend schafft Nachfrage nach Technologien wie Compute-in-memory (CIM) und Processing-in-memory (PIM). Dabei handelt es sich um Hardware, die direkt auf Daten im Speicher rechnet, ohne sie zuerst in CPU-Register zu verschieben, was Latenz und Stromverbrauch senken und die Memory Wall umgehen könnte
Das Paper extrapoliert per Polynomial Fit auf 16 nm, um ASIC- und FPGA-Hardware über verschiedene Halbleiterprozessgrößen hinweg zu vergleichen: „Basierend auf Aaron Stillmaker und B. Baas’ ‘Scaling equations for the accurate prediction of CMOS device performance from 180 nm to 7nm’ haben wir Leistung und Energieeffizienz auf 16-nm-Technologie extrapoliert, um einen fairen Vergleich zu ermöglichen“
Bei CIM/PIM wird jedoch nicht extrapoliert, mit der Begründung: „Da die Performance von In-Memory-Beschleunigern nicht allein auf Prozesstechnologie basiert, haben wir die Extrapolation nur für FPGA- und ASIC-Beschleuniger durchgeführt, bei denen die Prozesstechnologie die Systemleistung stark beeinflusst.“ Das wirkt auf den ersten Blick wie eine merkwürdige Entscheidung, und vielleicht kann jemand diese Entscheidung näher erläutern
Weiterführende Lektüre: https://arxiv.org/abs/2403.14123, https://en.m.wikipedia.org/wiki/In-memory_processing, http://vcl.ece.ucdavis.edu/pubs/2017.02.VLSIintegration.Tech...
Trotzdem gefällt mir die Idee günstiger Produkte im RAM-Modul-Format. Man könnte sich vorstellen, viele davon in ein 1U-Board zu stecken und über schnelle Interconnects zu verbinden oder sogar eine PCI-Karte damit vollzupacken
PCI-e V4 war so schnell wieder vorbei, dass es sich anfühlt, als hätte es nur etwa zwei Jahre gelebt, und NVMeOF hat zusammen mit der Fabric-Performance gut skaliert. In aktuellen H100-DGX-Systemen gibt es 400GB/s-Interconnects
„Das explosive Wachstum von AI-Modellen wird durch die wachsende Lücke zwischen Rechenleistung und Speicherbandbreite begrenzt. Modelle der nächsten Generation wie GPT-5 werden voraussichtlich eine beispiellose Größenordnung von 3 bis 5 Billionen Parametern erreichen, aber der technische Bottleneck der Speicherbandbreite bleibt ein zentrales Hindernis dafür, ihr Potenzial vollständig auszuschöpfen“
https://www.lycee.ai/blog/2024-09-04-samsung-memory-bottlene...
Ich mochte schon immer systolische Arrays und halte nach dem Durchgehen vieler Optionen über die letzten Jahrzehnte ein kartesisches Gitter aus Zellen für die beste Lösung
Jede Zelle hat 4 Eingangsbits, die je eines von den Nachbarn erhalten, und 4 Ausgangsbits, die je eines an die Nachbarn weitergeben. In der Mitte sitzt ein 64-Bit-Shift-Register als lange Scan-Chain, dessen Ausgänge in 4 Multiplexer vom Typ 16:1 und ein 4-Bit-Latch gehen
Wenn man mithilfe der Magie der Graphfärbung alle Zellen in einem Schachbrettmuster taktet, können Daten ohne bevorzugte Richtung und ohne Race Conditions in jede Richtung fließen. Jeder Eingang jeder Zelle wird stabil
Das bietet die Flexibilität eines FPGA, ohne dass man sich um Timing-Probleme, Race Conditions oder Glitches kümmern muss. Außerdem sind alle Leitungen kurz, also ist alles lokal, schnell und stromsparend
Dafür ist die Gate-Effizienz nicht besonders gut, und es liefert auch nicht den kürzesten Logikpfad. Jede einzelne Operation findet im Grunde parallel statt, und jede Berechnung ist pipelined
Das ist eine Idee, die ich seit etwa 1982 habe, und ich wünschte, jemand würde sie aufgreifen und richtig umsetzen. Ich nenne sie BitGrid
Verwandtes Material: https://arxiv.org/pdf/2406.08413
Memory Is All You Need: An Overview of Compute-in-Memory Architectures for Accelerating Large Language Model Inference
Ich würde gern sehen, wie ein LLM in WebGL läuft, wo alles Texturen sind. Die architektonischen Unterschiede visuell zu sehen, wäre ziemlich interessant
Der Bottleneck ist derzeit die Speicherbewegung, deshalb ist HBM so teuer. Auch Nvidias Designs sind sowohl auf Chip-Ebene als auch auf System-Ebene auf den Speicher optimiert, der der echte Bottleneck ist
In der Praxis sieht man das kaum
Könnte eine hybride Architektur aus FPGA + ASIC + In-Memory bei Skalierbarkeit und Flexibilität eine Rolle spielen? FPGA bietet Flexibilität, ASIC Leistung und In-Memory Energieeffizienz, daher ist es interessant, ob sich die LLM-Leistung mit einem hybriden Ansatz, der diese kombiniert, weiter steigern ließe.
In-Memory scheint nicht nur in Bezug auf die Leistung sinnvoll zu sein, sondern auch als grundsätzliche Richtung. Für Modelle, die selbst im besten Fall schon nach wenigen Monaten veraltet sein könnten, extra ein ASIC zu bauen oder ein FPGA zu programmieren, ergibt wenig Sinn.
Es gab eine Arbeit darüber, ein LLM mit ungefähr der Leistung einer einzelnen Glühbirne zu betreiben
https://arxiv.org/abs/2406.02528
https://news.ucsc.edu/2024/06/matmul-free-llm.html
Der Kern besteht darin, zwei Verfahren zu nutzen, um Matrixmultiplikationen zu vermeiden. Erstens werden alle Zahlen in der Matrix auf ternäre Werte mit nur -1, 0 und +1 beschränkt, sodass Multiplikation weitgehend durch Addition ersetzt wird. Zweitens werden nicht alle Elemente einzeln multipliziert, sondern die Matrizen werden überlagert und nur die wichtigen Operationen ausgeführt.
Die Forschenden sagen, sie hätten zeitbasierte Berechnung in das Modelltraining eingeführt, um die Leistung des neuronalen Netzes aufrechtzuerhalten; dadurch erhalte das Netzwerk eine Art „Gedächtnis“ für die wichtigen Informationen, die es verarbeitet, was die Leistung verbessere.
Auf Standard-GPUs sank der Speicherverbrauch auf etwa ein Zehntel, während die Geschwindigkeit um rund 25% zunahm; außerdem könnte dies einen Weg eröffnen, den Algorithmus auch auf Geräten mit wenig Speicher wie Smartphones in voller Größe auszuführen. Ein in drei Wochen gebauter FPGA-Prototyp überschritt bei nur 13 W Leistungsaufnahme einen für Menschen lesbaren Durchsatz; eine GPU hätte dafür etwa 700 W benötigt, sodass die maßgeschneiderte Hardware laut den Angaben mehr als 50-mal effizienter war als eine GPU.
Ich bin mir nicht sicher, ob mit In-Memory hier spezielle Hardware gemeint ist, die CPU und RAM kombiniert.
Unter Verweis auf eine ältere Beschleunigerarbeit, die eine 19-fache Verbesserung gegenüber DRAM + GPU zeigte: „Da MAC-Operationen den dominierenden Anteil der Laufzeit bei den meisten Machine-Learning-Workloads ausmachen, schlagen wir Multiplikation innerhalb von Subarrays und Akkumulation innerhalb von Banks vor. Die Multiplikation wird spaltenbasiert mit AND-Operationen und Addition verarbeitet, bei einem Flächen-Overhead von unter 1%.“
https://arxiv.org/pdf/2105.03736
Gibt es eine Möglichkeit, Arxiv-Inhalte lesbarer anzusehen?
Jedes Mal, wenn ich diese Website öffne, frage ich mich, ob es dort überhaupt ein Interface gibt, verirre mich und verlasse sie meist wieder, bevor ich überhaupt zum Inhalt komme.
Für einzelne Papers ist das wahrscheinlich der beste Weg, und es gibt auch einige Arxiv-Frontends wie https://arxiv-sanity-lite.com/