aiia.li
EN DE

local-ai

Die SSD als Arbeitsspeicher für Arme

Grosse Sprachmodelle scheitern auf dem eigenen Rechner meist am Arbeitsspeicher. Das Open-Source-Projekt edge0 lagert den Grossteil des Modells auf die SSD aus, und die Idee dahinter ist interessanter als das Projekt selbst.

Offline-KI scheitert selten am Prozessor, meistens am Arbeitsspeicher, und der ist bei Apple bekanntlich die teuerste Zutat. Wer ein ernsthaftes Sprachmodell auf dem eigenen Rechner betreiben will, ohne dass jede Frage erst über den Atlantik und zurück reist, landet deshalb früher oder später im Konfigurator und rechnet nach, was ihm die eigene Privatsphäre in Gigabyte wert ist.

Das Open-Source-Projekt edge0 schlägt einen anderen Weg vor, und obwohl ich es noch nicht selbst ausprobiert habe (das hole ich nach, dazu unten mehr), finde ich die Richtung interessant genug, um sie aufzuschreiben.

Das eigentliche Problem

Ein Sprachmodell ist im Kern eine sehr grosse Tabelle aus Zahlen, den sogenannten Gewichten, und klassischerweise muss diese Tabelle vollständig im Arbeitsspeicher liegen, damit das Modell überhaupt antworten kann. Die grössere edge0-Variante belegt selbst stark komprimiert noch rund 23 GB, was auf einem Mac mit 16 GB schlicht nicht geht und auf einem mit 24 GB bestenfalls theoretisch, sofern man nebenbei nichts Ausgefallenes vorhat, einen Browser zum Beispiel.

Viele Spezialisten, wenige im Einsatz

Die Modelle, auf die edge0 setzt, sind sogenannte Mixture-of-Experts-Modelle, kurz MoE. Man kann sie sich wie eine Handwerkertruppe vorstellen, Schreiner, Elektriker, Bauer, Wissenschaftler, von der für jede Aufgabe nur eine Handvoll gebraucht wird: Wer ein Bild aufgehängt haben will, braucht den Schreiner und nicht den Bauern. (In Wahrheit sind die Experten im Modell weniger ordentlich sortiert, es sind gelernte Teilnetze ohne klar abgegrenztes Fachgebiet, aber das Prinzip stimmt.) Das Qwen-Modell, auf dem die grössere Variante aufbaut, hat 35 Milliarden Parameter, von denen pro Schritt nur rund 3 Milliarden tatsächlich rechnen.

Bisher mussten trotzdem alle im Wohnzimmer herumstehen, also im Arbeitsspeicher, auch die, die gerade nichts zu tun haben. Die Idee von edge0 ist naheliegend, sobald man sie einmal gehört hat: Die Untätigen warten draussen im Lieferwagen, also auf der SSD, und werden hereingerufen, wenn man sie braucht.

Drei Tricks

SSD-Streaming. Die Gewichte der Experten bleiben auf der SSD und werden bei Bedarf gelesen. Der Speicherbedarf richtet sich damit nach dem, was gerade arbeitet, und nicht nach der Gesamtgrösse des Modells.

Prerouter. Das Problem am Lieferwagen ist der Weg zur Haustür. Damit das Modell nicht bei jedem Wort warten muss, bis der richtige Handwerker drin ist, sagt ein kleines, eigens trainiertes Zusatzmodul einen Schritt im Voraus, wer als Nächstes gebraucht wird, und ruft ihn schon herein. Laut Projekt bringt das bis zu 59 Prozent mehr Tempo beim Erzeugen von Text.

Recover-LoRA. Die Komprimierung auf 4 Bit kostet Qualität, das ist bekannt und nicht zu vermeiden. edge0 legt deshalb kleine Zusatzgewichte über das komprimierte Modell, die darauf trainiert wurden, sich möglichst wie das unkomprimierte Original zu verhalten. Das Grundmodell selbst bleibt dabei unangetastet.

Was die Zahlen sagen, und was nicht

Auf einem Mac mini M4 Pro mit 24 GB kommt die 35B-Variante laut README auf knapp 15 bis knapp 18 Tokens (grob: Wortbausteine) pro Sekunde, bei einem aktiven Speicherbedarf von 2,9 GB. Die kleinere 8B-Variante schafft rund 24 bis 25 Tokens pro Sekunde mit etwa 1 GB. Der Qualitätsverlust gegenüber dem unkomprimierten Original liegt im Schnitt bei 3,9 Punkten (35B) beziehungsweise 2,8 Punkten (8B), auf einer Skala bis 100.

Das klingt gut, und ein paar Dinge sollte man trotzdem dazulesen:

  • Die Qualitätsmessungen hat das Team selbst durchgeführt. Sie mögen stimmen, unabhängig bestätigt sind sie nicht.
  • Die 2,9 GB sind der Speicher, den das Framework selbst reserviert. Dass es beim zweiten Durchlauf schneller wird, liegt daran, dass macOS die gelesenen Experten im Dateicache behält, und der liegt, man ahnt es, im Arbeitsspeicher. Auf einem Mac mit 8 GB würde ich meine Erwartungen vorsorglich etwas tiefer hängen.
  • Bei längeren Gesprächen kommt Speicher hinzu; das README nennt für die 8B-Variante rund 3,3 GB bei etwa 3300 Tokens Kontext.
  • Das Projekt ist noch sehr jung, die Modelle tragen ausdrücklich den Zusatz „Preview", und es läuft vorerst nur auf Apple Silicon. Eine CUDA-Variante ist angekündigt.

Warum mich die Richtung trotzdem freut

Ob sich edge0 selbst durchsetzt, weiss ich nicht, und es ist mir, ehrlich gesagt, auch nicht so wichtig. Wichtiger ist, dass jemand ernsthaft daran arbeitet, grosse Modelle vom Arbeitsspeicher zu entkoppeln, denn damit verschiebt sich die Frage, wer KI lokal betreiben kann, vom Budget für RAM zum Platz auf der SSD, und der ist deutlich günstiger (auch wenn Apple sich bei SSD-Aufpreisen ebenfalls nicht lumpen lässt). Ein Modell, das auf einem Mac mini im Büro läuft, schickt keine Kundendaten ins Ausland, kostet keine Gebühr pro Anfrage und funktioniert auch dann noch, wenn das Internet im Zug wieder einmal beschliesst, im Tunnel über Grundsätzliches nachzudenken.

Dass edge0 dafür eine OpenAI-kompatible Schnittstelle mitbringt, ist ein Detail, das man leicht überliest und das in der Praxis viel ausmacht: Bestehende Werkzeuge lassen sich auf den lokalen Server umstellen, ohne dass man etwas neu schreiben muss.

Eigener Test

Ich bin dran.

Tags: local-aillmapple-siliconmixture-of-expertsopen-sourceprivacy