Llama: Modernes KI-Modell läuft lokal auf Pentium 2 und Windows 98

Moderne Sprachmodelle sind in den Köpfen vieler Menschen sicherlich mit moderner Hardware und einem hohen Leistungsbedarf verbunden. Schließlich müssen viele aktuelle LLMs noch immer in Rechenzentren berechnet werden. User sehen nur die Ergebnisse ihrer Eingaben auf ihren eigenen Geräten. Lokale LLMs wie Llama sind kleiner und sollen Berechnungen auf den Geräten selbst ermöglichen. Was wäre also, wenn dieses Modell auf einem 25 Jahre alten Computer ausgeführt werden könnte?
Das haben Mitarbeiter des KI-Unternehmens Exolabs ausprobiert(öffnet im neuen Fenster) . Das Team erstand auf Ebay einen typischen Computer der 90er Jahre: ein mittlerweile vergilbter Kasten mit CD- und Diskettenlaufwerk außen und einem Intel Pentium 2 und Windows 98 im Innern. Eine erste größere Herausforderung: Maus und Tastatur mussten das mittlerweile obsolete PS/2 verwenden.
Außerdem mussten die Entwickler das für heutige Verhältnisse kleine, aber für damalige Verhältnisse enorm große Sprachmodell auf den Computer kopieren. CD-RWs wurden wohl nicht erkannt und eine externe FAT-32-Festplatte konnte die Datei durch das Dateisystem mit einer maximalen Dateigröße von etwa 4 GByte nicht genutzt werden. Die Entwickler hatten allerdings Glück.
FTP schafft Abhilfe
Das System verfügt über einen Ethernet-Anschluss und es konnte über das Kommandozeilen-Interface mit einem FTP-Server verbunden werden. Exolabs zeigte sich überrascht: Nach all den Jahren ist das Protokoll noch immer zu alter Hardware abwärtskompatibel. So konnte das Sprachmodell über eine direkte LAN-Verbindung mit einem M4-Macbook doch noch erfolgreich übertragen werden.
Das Kompilieren des Modells selbst wurde ebenfalls zu einer Herausforderung. Der Intel Pentium 2 unterstützt keine aktuelleren Compiler von C++ wie etwa mingw, möglicherweise da er keine Cmov-Instruktionen verwenden kann. Das Team musste deshalb auf die 26 Jahre alte IDE Borland C++ 5.02 zurückgreifen.
Die unterstützte nur ältere Versionen der Programmiersprache, so dass einige Code-Anpassungen vorgenommen werden mussten. Unter anderem mussten Variablen bei Funktionsanfang deklariert und einige Datentypen ersetzt werden. Die Basis des Projekts bildete der öffentliche Code llama2.c(öffnet im neuen Fenster) vom Entwickler Andrej Karpathy.
Nach all diesen Änderungen funktionierte das Sprachmodell wie vorgesehen, allerdings enorm langsam. Komplett ohne GPU-Unterstützung berechnet der Pentium 2 Queries an Llama 3.2 1B mit 0,0093 Tokens pro Sekunde. Eine Milliarde Parameter scheinen der alten CPU dann doch etwas viel zu sein, zumal hier nur eine Shard davon genutzt werden konnte, die auch in den begrenzten Arbeitsspeicher passt. Das wesentlich kleinere Stories260K wurde mit immerhin 39,31 Tokens pro Sekunde berechnet.



