Performante Hardware unter Linux für lokale KI Anwendungen

Rate this post

Wer ein wenig mit lokalen LLM herumspielen möchte, findet rasch die Limitationen heraus. Nicht jeder hat einen massiv aufgerüsteten Desktop Rechner mit 2 TB Arbeitsspeicher und eine CPU, auf der man unter Volllast Spiegeleier braten kann. Eher typisch ist ein Laptop mit 32 GB RAM oder wie bei mir, ein Lenovo P14s mit 64 GB RAM. Trotz dieser üppigen Ausstattung scheitert es oft daran, ein etwas umfangreicheres KI Modell zu laden, denn 128 GB RAM sind für viele dieser Modelle eher Standard. Nun kann man bei aktuellen Laptops auch keinen Arbeitsspeicher nachrüsten, weil die Chips direkt auf der Platine verlötet sind. Das gleiche Problem haben wir natürlich auch mit der Grafikkarte. Deswegen habe ich mir beim Laptopkauf angewöhnt, nahezu die Maximalausstattung zu konfigurieren, und hoffe dann, damit 5–8 Jahre lang meine Ruhe zu haben. Gerade die Qualität der Lenovo ThinkPad Serie hat mich bisher bei diesem Vorhaben nicht enttäuscht. Mein aktuelles System ist circa 2 Jahre alt und läuft so weit zuverlässig.

Als Betriebssystem nutze ich seit Jahren Linux und aktuell habe ich Debian 13 am Laufen. Im Vergleich zu Windows sind Linux- und Unix-Distributionen wesentlich ressourcenschonender und nutzen die Leistung nicht für grafische Animationen und komplexe Farbverläufe, sondern ermöglichen eine leistungsstarke Umgebung für die verwendeten Anwendungen. Daher auch mein dringender Rat, für alle, die lokale LLMs probieren möchten: sich einen leistungsstarken Rechner zu besorgen und diesen mit Linux zu betreiben. Aber der Reihe nach. Schauen wir uns zuerst die einzelnen Hardwarekomponenten etwas genauer an.

Beginnen wir mit der CPU. Für LLMs, CAD Anwendungen und auch Computerspiele gilt, dass diese Berechnungen durchführen, die hervorragend parallel verarbeitet werden können. Bei parallel ausgeführten Berechnungen ist die Anzahl der verfügbaren CPU‑Kerne ein wichtiges Kriterium. Je mehr Kerne, umso mehr parallele Berechnungen können ausgeführt werden.

Natürlich müssen die Prozessoren die Daten für die Berechnung schnell anfragen können. Hier kommt der Arbeitsspeicher (RAM) ins Spiel. Je mehr Arbeitsspeicher vorhanden ist, umso effizienter können die Daten zur Berechnung bereitgestellt werden. Bezahlbare Laptops kann ma bereits mit 32 GB RAM finden. Natürlich steigt der Anschaffungspreis mit mehr RAM exponentiell. Sicher gibt es einige hochgezüchtete Gamer-Geräte im Consumerbereich, die ich allerdings wegen der meist kurzen Lebensdauer und dem dazu vergleichsweise hohen Preis eher nicht empfehlen kann.

Der nächste logische Schritt in der Hardwarekette ist die Festplatte. Einfache SSDs beschleunigen den Transfer zum Arbeitsspeicher enorm, aber es gibt noch Steigerungen. NVMe Karten ab 2 GB Speicherkapazität können in der 4. Generation bis zu 7000 MB/s erreichen.

Bei der Grafikkarte haben wir bei Laptops so unsere Probleme. Aufgrund der Größe und der benötigten Leistung , sind die in Laptops verbauten Grafikkarten eher ein Kompromiss, als ein wirkliches Highlight. Dabei wäre eine gute Grafikkarte ideal für parallele Berechnungen, wie sie bei LLMs durchgeführt werden. Als Lösung können wir den Laptop mit einer externen Grafikkarte verbinden. Dank der Bitcoin Miner aus der Krypto Community wurde hier bereits einiges an Erfahrung gesammelt. Damit man allerdings eine externe Grafikkarte an den Laptop anschließen kann, muss man auch einen Anschluss haben, der diese Datenmenge verarbeiten kann. USB 3 ist für unser Vorhaben viel zu langsam und würde den Vorteil der externen Grafikkarte durch die geringe Datenrate massiv ausbremsen.

Die Lösung für unser Problem lautet Thunderbolt. Äußerlich sehen Thunderbolt-Anschlüsse wie USB-C aus, sind aber um einiges schneller. Thunderbolt erkennt man an dem kleinen Blitz (siehe Abbildung 1) auf den Kabeln, beziehungsweise an den Buchsen. Es sind also nicht die Anschlüsse für die Stromversorgung. Um sicherzustellen, ob man auf dem Computer Thunderbolt zur Verfügung hat, kann man dies mit einem kleinen Linux Shell Befehl nachprüfen.

ed@local: $ lspci | grep -i thunderbolt
00:07.0 PCI bridge: Intel Corporation Raptor Lake-P Thunderbolt 4 PCI Express Root Port #0
00:07.2 PCI bridge: Intel Corporation Raptor Lake-P Thunderbolt 4 PCI Express Root Port #2
00:0d.0 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 USB Controller
00:0d.2 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI #0
00:0d.3 USB controller: Intel Corporation Raptor Lake-P Thunderbolt 4 NHI #1

In meinem Fall zeigt mir die Ausgabe meines Computers, dass zwei Thunderbolt Anschlüsse in der Version 4 vorhanden sind.

Um nun eine externe Grafikkarte anzuschließen, benötigen wir ein Trägersystem, auf das eine PCI Karte gesteckt werden kann. Hier bietet die Firma ANQUORA mit dem ANQ-L33 eGPU Enclosure eine gute Lösung. Das Board kann eine Grafikkarte mit bis zu drei Slots aufnehmen. Der Kostenpunkt liegt zwischen 130 und 200 Euro. Hinzu kommt noch ein Standard ATX Netzteil, das für die Stromversorgung benötigt wird. Die Leistung des Netzteils ergibt sich aus dem Stromverbrauch der Grafikkarte. Das Netzteil sollte man auch nicht zu günstig einkaufen, da die Geräuschentwicklung den ein oder anderen stören könnte. Die offene Bauform des Boards gibt genügend Freiheiten bei der Auswahl der Grafikkarte.

Die Auswahl der Grafikkarte wiederum ist ein ganz eigenes Thema. Da ich als Betriebssystem Linux verwende, benötige ich auch eine Grafikkarte, die von Linux unterstützt wird. Für die Beschleunigung von LLMs benötigt man eine Grafikkarte mit möglichst vielen GPU Kernen und entsprechend hohem internen Arbeitspeicher. Damit sich die Anschaffung auch lohnt und man wirklich einen Leistungsschub bemerkt, sollte die Karte mit mindestens 8 GB RAM ausgestattet sein. Mehr darf natürlich immer sein, nur steigt dann auch der Preis der Karte schnell exorbitant an. Hier lohnt sich durchaus auch ein Blick in den Gebrauchtmarkt.

Rechnet man alle Kosten zusammen, beläuft sich die Investition für eine externe GPU auf mindestens 500 Euro. Natürlich ist hier nur eine preiswerte Grafikkarte mit berücksichtigt. Hochwertige Grafikkarten können allein bereits problemlos die 500 Euro Priesbremse überschreiten. Wer im Bereich Grafikkarten gern seine Expertise beisteuern möchte, ist gern eingeladen, einen Artikel beizusteuern.

Damit man nun seine Einkaufstour nicht auf Blaue beginnt und dann über das Ergebnis enttäuscht ist, ist es sehr ratsam, sich vorher zu überlegen, was man mit der lokalen LLM machen möchte. Zur Unterstützung bei der Programmierung benötigt man weniger Rechenpower als für die Generierung von Grafiken und Audio. Wer LLMs professionell nutzt, kann durch die Anschaffung einer sehr hochpreisigen Grafikkarte durch selbst gehostete Modelle im Vergleich zu den Kosten für beispielsweise Claud Code erheblich einsparen. Die Spezifikation von LLMs richtet sich nach den verfügbaren Parametern. Hier gilt: Je mehr Parameter, umso genauer ist die Antwort und umso mehr Rechenleistung wird benötigt. Bei der Genauigkeit unterscheidet man zudem:

  • FP32 (Single-Precision Floating Point): Standardgenauigkeit, benötigt den meisten Speicherplatz. (z.B. 32 Bit pro Parameter)
  • FP16 (Half-Precision Floating Point): Halbe Genauigkeit, halbiert den Speicherbedarf im Vergleich zu FP32, kann aber die Genauigkeit leicht reduzieren. (z.B. 16 Bit pro Parameter / 4Byte)
  • BF16 (Brain Floating Point): Eine weitere Option für halbgenaue Berechnungen, oft bevorzugt in Deep Learning aufgrund seiner besseren Leistung bei bestimmten Operationen. (z.B. 16 Bit pro Parameter / 2 Byte)
  • INT8/INT4 (Integer Quantization): Noch geringere Präzision, reduziert den Speicherbedarf drastisch und beschleunigt die Inferenz, kann aber zu einem größeren Genauigkeitsverlust führen. (z.B. 8 Bit pro Parameter / 1 Byte).

Weitere Einflüsse auf die Hardwareanforderungen für LLM haben die Punkte:

  • Batch Size: Die Anzahl der Eingabeanfragen, die gleichzeitig verarbeitet werden.
  • Kontextlänge (Context Length): Die maximale Länge des Textes, den das Modell bei einer Anfrage berücksichtigen kann. Längere Kontextlängen benötigen mehr Speicherplatz, da der gesamte Kontext im Speicher gehalten werden muss.
  • Modellarchitektur: Verschiedene Architekturen haben unterschiedliche Speicheranforderungen.

Um abzuschätzen, wie hoch der Speicherverbrauch eines Modells wird, kann man folgende Berechnung heranziehen: Parameter * Genauigkeit = Speicherverbrauch für das Modell.

7.000.000.000 Parameter * 2 Bytes/Parameter (BF16) = 14.000.000.000 Bytes = 14 GB

Bei den Hardwareempfehlungen sollte man auf die Dokumentation des Modells Rücksicht nehmen. Diese geben meist nur die minimalen beziehungsweise durchschnittlichen Anforderungen an. Es gibt allerdings allgemeine Richtwerte, an dene man sich orientieren kann.

  • Kleine Modelle (bis 7 Milliarden Parameter): Eine GPU mit mindestens 8 GB VRAM sollte ausreichen, besonders wenn Sie Quantisierung verwenden.
  • Mittlere Modelle (7-30 Milliarden Parameter): Eine GPU mit 16 GB bis 24 GB VRAM ist empfehlenswert.
  • Große Modelle (über 30 Milliarden Parameter): Mehrere GPUs mit jeweils mindestens 24 GB VRAM oder eine GPU mit sehr viel VRAM (z.B. 48 GB, 80 GB) sind erforderlich.
  • CPU-only: Für kleine Modelle und einfache Experimente kann die CPU ausreichend sein, aber die Inferenz wird deutlich langsamer sein als auf einer GPU. Hier ist ein großer RAM-Bedarf wichtig (mehrere GB / 32+).

Wir sehen, dass die Nutzung lokal laufender LLMs durchaus realistisch sein kann, wenn man die entscheidende Hardware vorrätig hat. Es muss nicht immer gleich ein Supercomputer sein, dennoch sind die meisten Lösungen bei den üblichen Elektronikkaufhausketten von der Stange und nicht wirklich geeignet. Somit habe ich mit diesem Artikel die Grundlagen für eigene Experimente gelegt.


Dieser Eintrag wurde von Elmar Dott unter Artikel veröffentlicht und mit , , , verschlagwortet. Setze ein Lesezeichen für den Permalink.
Elmar Dott

Über Elmar Dott

Elmar Dott realisiert seit über 20 Jahren als freier Berater in internationalen Projekten große Web-Applikationen. Seine Schwerpunkte sind DevOps, Konfigurationsmanagement, Software-Architekturen & Release Management. Als Trainer teilt er sein Wissen in Schulungen und spricht auch regelmäßig auf Konferenzen über aktuelle Themen.

Schreibe einen Kommentar