A Modern Multimodal Assistant on a 6 GB 2011 GPU: Stage-Validated, All-GPU CUDA Inference for Fermi
Diese Arbeit demonstriert die Machbarkeit des Betriebs eines modernen multimodalen Assistenten vollständig auf einer 6 GB Fermi-GPU aus dem Jahr 2011 durch die Entwicklung einer All-GPU-Inferenz-Engine, welche die Hardwarebeschränkungen durch optimierte dequantisierte GEMMs, Chunked Recurrent Layers und speichereffiziente Attention-Kernel überwindet und so eine End-to-End-Bild-Frage-Beantwortung in 1,7 Sekunden erreicht.
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
Stellen Sie sich vor, Sie hätten ein superintelligentes Robotergehirn, das Bilder sehen und Fragen dazu beantworten kann. Normalerweise sind diese Gehirne so riesig und hungrig nach Energie, dass sie einen massiven, teuren Computer benötigen, um zu laufen, oder dass man sie aufteilen muss, sodass Teile des Gehirns im Speicher des Computers leben, während andere Teile auf dem Prozessor liegen. Aber was, wenn Sie dieses Supergehirn auf einem Computerteil laufen lassen wollten, das vierzehn Jahre alt ist? Das ist die Herausforderung, der sich dieses Paper widmet. Es ist wie der Versuch, ein modernes High-Definition-Videospiel auf einem Laptop aus dem Jahr 2011 laufen zu lassen. Die Kernidee hier ist „Inferenz“, was nur ein schicker Begriff dafür ist, dass der Roboter tatsächlich denkt und eine Frage beantwortet, nachdem er trainiert wurde. Das Paper stellt die Frage: Können wir eine moderne, bildlesende KI dazu bringen, vollständig auf einer sehr alten, schwachen Grafikkarte zu laufen, ohne Hilfe vom Hauptprozessor des Computers zu benötigen? Um dies zu erreichen, mussten die Forscher unglaublich geschickt bei der Organisation der Mathematik vorgehen, denn die alte Karte verfügt über viele der speziellen Werkzeuge, die moderne Karten besitzen.
Die Geschichte in diesem Paper handelt von einem Team von Ingenieuren, die einen brandneuen, modernen KI-Assistenten namens MiniCPM-V-4.6 genommen und ihn gezwungen haben, auf einer NVIDIA-Grafikkarte aus dem Jahr 2011 (der Tesla C2075) mit nur 6 GB Speicher zu laufen. Normalerweise gilt diese Karte als „aufgegeben“ durch die Softwarewelt, was bedeutet, dass niemand mehr neue Programme für sie schreibt. Die Forscher wollten sehen, ob sie das gesamte System vollständig auf dieser alten Karte zum Laufen bringen können, ohne Daten ständig zwischen der Grafikkarte und dem Hauptcomputer hin- und herzuschieben. Sie haben es geschafft, aber nicht durch Raten; sie haben es geschafft, indem sie alles gemessen haben und feststellten, dass ihre ersten Vermutungen oft falsch waren.
Hier ist, was sie herausgefunden haben und wie sie es gemacht haben:
1. Die „alten Werkzeuge“ waren besser als die neuen
Das Team begann damit, eigene maßgeschneiderte mathematische Werkzeuge (sogenannte Kernel) zu schreiben, um die KI schnell ablaufen zu lassen. Sie dachten, ihr bester handgeschriebener Mathematik-Code wäre der schnellste sein würde. Doch als sie es maßen, stellten sie fest, dass ihr benutzerdefinierter Code nur 37 % der maximalen Geschwindigkeit der Karte erreichte. Dann probierten sie ein Standard-Werkzeug aus, das vor zehn Jahren mit der Software der Karte mitgeliefert wurde (genannt cuBLAS). Überraschenderweise lief dieses alte Werkzeug mit 64 % der maximalen Geschwindigkeit – also fast doppelt so schnell wie ihr benutzerdefinierter Code! Sie lernten, dass auf alter Hardware manchmal die „langweiligen“, vorgefertigten Werkzeuge die superschnellen sind. Also entschieden sie sich, ihre Daten in ein Format zu übersetzen, das das alte Werkzeug verstehen konnte, und ließen das alte Werkzeug die schwere Arbeit erledigen.
2. Der „Zeitlupen“-Fehler
Die KI hat einen speziellen Teil, der sich Dinge merkt, während er sie liest, ähnlich wie ein Mensch, der ein Gespräch führt. Das Team versuchte dies zu beschleunigen, indem sie das Gespräch in kleine Stücke unterteilten. Zuerst dachten sie, diese neue Methode sei langsamer. Sie wären fast aufgegeben! Aber dann schauten sie genau auf das Timing und fanden heraus, dass ein winziger Teil ihres Codes dieselbe Mathematik zweimal ausführte und die Berechnung zu oft stoppen und neu starten musste. Sobald sie diesen einen schlechten Teil behoben hatten, war die neue „stückweise“ Methode 2,8 Mal schneller als die alte Methode. Es war eine Lektion, dass man nicht nur das Gesamtbild betrachten darf; man muss jeden einzelnen Schritt prüfen, um den Flaschenhals zu finden.
3. Die „4-Bit“-Falle
In der Welt der KI versuchen Menschen oft, den Speicher des Modells zu verkleinern, indem sie „4-Bit“-Zahlen anstelle von „8-Bit“-Zahlen verwenden, in der Annahme, dass kleinere Zahlen eine höhere Geschwindigkeit bedeuten. Das Team probierte dies auf der alten Karte aus. Obwohl 4-Bit-Zahlen nur halb so viel Platz einnehmen, musste die Karte zusätzliche Berechnungen durchführen, um sie zu „entpacken“, und die alte Karte ist bei dieser spezifischen Mathematik langsam. Das Ergebnis? Die 4-Bit-Version war tatsächlich 12 % langsamer als die 8-Bit-Version. Also blieben sie bei den größeren 8-Bit-Zahlen, denn auf dieser speziellen alten Karte war größer tatsächlich schneller.
4. Die „Tie-Breaking“-Regel
Wenn die KI ein Bild betrachtet, muss sie herausfinden, wo sich jedes Stück des Bildes befindet. Die Forscher versuchten, ihre eigene Mathematik zu schreiben, um zu entscheiden, was zu tun ist, wenn zwei Teile exakt auf derselben Linie liegen (ein „Tie“ bzw. Gleichstand). Sie probierten viele verschiedene Wege aus, um es zu lösen, aber jedes Mal war das Ergebnis leicht anders als die Antwort der ursprünglichen KI. Sie entdeckten, dass die Art und Weise, wie die ursprüngliche KI Gleichstände entschied, eine winzige, spezifische Regel war, die mit Standard-Mathematik nicht perfekt kopiert werden konnte. Die Lösung? Sie hörten auf, das Rad neu zu erfinden, und fragen stattdessen einfach die Mathematik-Bibliothek der ursprünglichen KI nach der Tie-Breaking-Regel. Dies stellte sicher, dass ihre Version exakt dieselbe wie die Originalversion war.
5. Das „Lange-Geschichte“-Problem
Die größte Überraschung kam, als sie die KI mit langen Fragen testeten. Wenn die Frage kurz war (2.000 Wörter), war die KI schnell. Aber als sie die Frage sehr lang machten (10.000 Wörter), wurde die KI extrem langsam und arbeitete 17 Mal langsamer. Es stellte sich heraus, dass die Art und Weise, wie die KI auf vorherige Wörter zurückblickte, unordentlich und ineffizient wurde. Das Team schrieb diesen Teil neu, um dasselbe „alte Werkzeug“ (cuBLAS) zu verwenden, das sie zuvor benutzt hatten, aber sie ordneten die Daten so an, dass sie perfekt in den Speicher passten, den die KI bereits nutzte. Dies löste das Problem vollständig. Jetzt ist die KI bei einer 10.000-Wörter-Frage fast so schnell wie bei einer kurzen Frage.
Das Endergebnis
Durch den Einsatz dieser Tricks gelang es dem Team, eine moderne, bildlesende KI vollständig auf einer Grafikkarte aus dem Jahr 2011 laufen zu lassen. Das gesamte System passt in den Speicher der Karte und kann eine Frage zu einem Bild in nur 1,7 Sekunden beantworten. Sie kann sogar sehr lange Dokumente und große Bilder verarbeiten, ohne abzustürzen. Die wichtigste Lektion, die dieses Paper vermittelt, ist nicht nur, dass sie einen alten Computer zum Laufen brachten; es ist, dass sie lernten, Messungen mehr zu vertrauen als ihrer eigenen Intuition. Jedes Mal, wenn sie glaubten, die Antwort zu kennen (wie „4-Bit ist schneller“ oder „unser benutzerdefinierter Code ist am besten“), bewiesen die Messungen das Gegenteil. Indem sie auf die Daten hörten und die richtigen Werkzeuge verwendeten, verwandelten sie ein vierzehn Jahre altes Stück Hardware in einen funktionierenden, modernen KI-Assistenten.
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.