4 Punkte von GN⁺ 2023-10-04 | 1 Kommentare | Auf WhatsApp teilen
  • Dieser Artikel behandelt die Ausführung von Stable Diffusion XL 1.0 auf dem Mikrocomputer Raspberry Pi Zero 2 mit 512 MB RAM.
  • Die Herausforderung besteht darin, Stable Diffusion 1.5, ein großes Transformer-Modell mit fast 1 Milliarde Parametern, auszuführen, ohne den Swap-Speicher zu vergrößern oder Zwischenergebnisse auf die Festplatte auszulagern.
  • Der Autor hat OnnxStream entwickelt, eine kleine, hackbare Inferenzbibliothek mit Fokus auf minimale Speichernutzung.
  • OnnxStream trennt die Inferenz-Engine von den Komponenten, die die Modellgewichte bereitstellen, und ermöglicht so verschiedene Arten des Ladens, Cachings und Prefetchings von Modellparametern.
  • OnnxStream verbraucht 55-mal weniger Speicher als OnnxRuntime und ist dabei nur 0,5- bis 2-mal langsamer.
  • Der Artikel enthält Bilder, die von der Stable-Diffusion-Beispielimplementierung mit OnnxStream bei verschiedenen Präzisionsstufen des VAE-Decoders erzeugt wurden.
  • Die Stable-Diffusion-Beispielimplementierung von OnnxStream unterstützt jetzt SDXL 1.0, das rechnerisch aufwendiger ist als SD 1.5, dafür aber größere Bilder erzeugen kann.
  • OnnxStream kann SDXL 1.0 mit weniger als 300 MB RAM ausführen und eignet sich damit für den Raspberry Pi Zero 2.
  • Der Artikel behandelt spezifische Optimierungen für SDXL 1.0, darunter Tiled Decoding, um den Speicherverbrauch von 4,4 GB auf 298 MB zu senken.
  • Zu den Funktionen von OnnxStream gehören die Trennung von Inferenz-Engine und WeightsProvider, Attention Slicing, dynamische und statische Quantisierung sowie FP16-Unterstützung.
  • Der Artikel bietet detaillierte Anleitungen zum Erstellen des Stable-Diffusion-Beispiels auf verschiedenen Betriebssystemen.
  • Die Stable-Diffusion-Implementierung von sd.cpp basiert auf zwei anderen Projekten und wurde so angepasst, dass OnnxStream anstelle von NCNN verwendet wird.

1 Kommentare

 
GN⁺ 2023-10-04
Hacker-News-Kommentare
  • Ein Artikel über die Nutzung von OnnxStream; es zeigte sich, dass es 55-mal weniger Speicher als OnnxRuntime verbraucht, dabei aber 0,5- bis 2-mal langsamer ist.
  • Der Trade-off zwischen Speicherverbrauch und Inferenzzeit kann in manchen Szenarien vorteilhaft sein und bei gleichem RAM größere Batch-Größen ermöglichen.
  • Einige Nutzer verwenden Stable Diffusion auf einem MacBook Pro über invoke.ai, suchen aber nach Empfehlungen für eine bessere Parametrisierung.
  • Der Artikel erwähnt, dass die Bildgenerierung mit dieser Methode sehr lange dauert; im Readme steht, dass sie 11 Stunden dauert.
  • Der Trade-off zwischen Speicherverbrauch und Inferenzzeit kann Echtzeit- oder nahezu Echtzeit-Anwendungen behindern, bei denen Latenz ein entscheidender Faktor ist.
  • Es gibt Verwirrung über die Formulierung „0,5- bis 2-mal langsamer“, was darauf hindeutet, dass es in der Kommunikation innerhalb der Community an Klarheit mangeln könnte.
  • Einige Nutzer suchen nach einer Zusammenfassung der Mindestanforderungen, um wichtige Open-Source-Modelle auszuführen und damit Inhalte zu erzeugen.
  • Die schnellen Fortschritte in diesem Bereich fallen auf, besonders die Geschwindigkeitssteigerungen der letzten 6 bis 18 Monate sind beeindruckend.
  • Es wird angedeutet, dass Versuche, Stable-Diffusion-artige Technologien zu regulieren, vergeblich sein könnten, da sich diese Modelle und ihre Inferenz-Infrastruktur auf eine Größe verkleinern lassen könnten, die auf einer PS2 lauffähig ist.
  • Obwohl die Generierungszeit lang ist, sind einige Nutzer beeindruckt davon, dass Stable Diffusion auf Hardware wie einem Pi Zero laufen kann.