vBuf-ML
vBuf-ML untersucht, wie große KI-Modelle mit begrenztem Arbeitsspeicher ausgeführt werden können: Benötigte Modellteile werden gezielt geladen, statt alles gleichzeitig bereitzuhalten.
Warum dieses Projekt?
Ein Modell kann größer sein als der verfügbare RAM oder Grafikspeicher. Die Größe der Datei allein soll deshalb nicht entscheiden, ob es überhaupt ausführbar ist. vBuf-ML trennt die Beschreibung eines Modells von seinen Daten und lädt benötigte Bereiche nach. Das eröffnet andere Speicherstrategien, macht langsame Datenträger aber nicht automatisch schnell.
Ein großes Modell wie ein Nachschlagewerk behandeln
Ein Sprachmodell besteht unter anderem aus sehr vielen Zahlen, den Modellgewichten. Für einen Rechenschritt wird nicht zwangsläufig jeder Teil gleichzeitig benötigt. Vergleichbar mit einem großen Nachschlagewerk hält vBuf-ML die Struktur griffbereit und holt die benötigten Abschnitte dazu.
Ein Speicherbudget begrenzt, wie viele dieser geladenen Modelldaten gleichzeitig vorgehalten werden. Bereits verwendete Bereiche können wieder freigegeben werden. Daten, die eine laufende Rechnung noch braucht, dürfen dabei nicht vorzeitig verschwinden.
Mehr als nur eine Datei in den Speicher einblenden
Eine speicherabgebildete Datei, oft mmap genannt, erlaubt ebenfalls Zugriff ohne vollständiges Kopieren. vBuf-ML ergänzt jedoch die Modellstruktur, Quellen für einzelne Datenbereiche und die Zusammenarbeit mit der Recheneinheit. Daten können etwa aus einer lokalen Datei oder gezielten HTTP-Bereichsabfragen kommen.
Wo die Daten liegen, wie viel davon im Speicher bleibt und wie CPU oder GPU darauf rechnen, sind getrennte Aufgaben. Das generische vBuf-Format bleibt darunter unverändert. Die konkrete Modell- und Hardwareunterstützung hängt von den implementierten Ausführungspfaden ab.
Was auf echter Hardware gezeigt wurde
Auf einem Pixel 7 Pro wurde ein rund 5,64 GB großes DeepSeek-V2-Lite-Modell mit einem Budget von 256 MiB für die von vBuf-ML vorgehaltenen Modelldaten getestet. Die dokumentierten Versuche umfassen die Verarbeitung einer Eingabe und eine begrenzte Textgenerierung.
Das bedeutet nicht, dass das gesamte Modell oder die komplette Anwendung nur 256 MiB RAM benötigt. Zusätzlicher Speicher wird unter anderem für Berechnungen, Zwischenergebnisse und die Laufzeit benötigt. Der interessante Befund ist: Die große Gewichtsdatei musste nicht vollständig in dieses Datenbudget passen.
Ein weiterer Versuch führte alle 46 Schichten eines rund 112,56 GB großen GLM-Modells auf einer Workstation mit 64 GiB RAM über den CPU-Pfad aus und prüfte eine kurze Generierung gegen eine unabhängige Referenz. GPU-Tests auf einer RTX 3060 decken dagegen bis zu acht aufeinanderfolgende Schichten ab, nicht das komplette Modell.
Das sind Machbarkeits- und Korrektheitsnachweise, keine Zusage flüssiger Chat-Geschwindigkeit. Deshalb werden Dateigröße und Datenbudget hier auch nicht als vermeintliche RAM-Ersparnis zweier gleichwertiger Anwendungen gegeneinander aufgetragen.
Quellcode & Dokumentation
Quellcode und die verfügbare Projektdokumentation findest du auf GitHub. Dort stehen auch die Hinweise zum Bauen, zur Nutzung und zur Lizenz.
vBuf-ML auf GitHub ↗