- Eine Bibliothek, um Stable Diffusion auf einem Raspberry Pi Zero 2 mit 512 MB RAM auszuführen.
- Entwicklung der Bibliothek OnnxStream mit Fokus auf die Optimierung des Speicherverbrauchs.
- Der Speicherverbrauch wird optimiert, indem die Komponenten getrennt werden, die die Gewichte für das Modell bereitstellen.
- Theoretisch lässt sich das Modell direkt mit Gewichten von einem HTTP-Server ausführen, ohne etwas auf die Festplatte zu schreiben.
- Im Ergebnis benötigt sie bis zu 55-mal weniger Speicher als OnnxRuntime, ist dafür aber 0,5- bis 2-mal langsamer.
- Das in Stable Diffusion enthaltene VAE-Modell benötigt jedoch selbst mit dieser Bibliothek noch etwa 1 GB RAM.
- Der Speicherverbrauch des VAE-Modells wurde durch 8-Bit-statische Quantisierung (W8A8) weiter optimiert.
- Schließlich gelang es, auf einem echten RPI Zero 2 in drei Stunden ein Bild zu erzeugen.
- Am Ende wurden nur noch etwa 260 MB RAM verwendet.
3 Kommentare
Wie sehr wollt ihr den kleinen Kerl denn noch quälen.....
Ich glaube, der Mensch ist die bizarrste aller Kreaturen.
Wirklich erstaunlich. Ein mehrere GB großes Modell mit 260 MB RAM auszuführen ...
Dass es 3 Stunden gedauert hat, liegt wohl am Raspberry Pi; auf einer leistungsstarken CPU wäre es natürlich deutlich schneller.
Es braucht auch viel weniger RAM.
Ob daraus wohl irgendwann eine Methode wird, die serverlos am Edge ausgeführt werden kann ....
Oh, interessantes Projekt. Danke!
Ich denke, es wird auch viele Versuche geben, den Flaschenhals zwischen CPU und RAM zu verringern +_+