- Una biblioteca para ejecutar Stable Diffusion en una Raspberry Pi Zero 2 con 512 MB de RAM.
- Se desarrolló la biblioteca OnnxStream con enfoque en la optimización del consumo de memoria.
- Se optimizó el uso de memoria separando los componentes que proporcionan los pesos al modelo.
- En teoría, es posible ejecutar el modelo recibiendo los pesos directamente desde un servidor HTTP sin escribir nada en disco.
- Como resultado, usa hasta 55 veces menos memoria que OnnxRuntime, pero es entre 0.5 y 2 veces más lento.
- Sin embargo, el modelo VAE incluido en Stable Diffusion sigue usando alrededor de 1 GB de RAM incluso con esta biblioteca.
- Se optimizó aún más el uso de memoria del modelo VAE mediante cuantización estática de 8 bits (W8A8).
- Finalmente, se logró generar una imagen en una RPI Zero 2 real en 3 horas.
- Al final, solo usa alrededor de 260 MB de RAM.
3 comentarios
¿Cuánto más van a torturar a esa cosita...?
Creo que los humanos son la criatura más grotesca.
De verdad es sorprendente. Que un modelo de varios GB se ejecute con 260 MB de RAM...
Que haya tardado 3 horas también es porque era una Raspberry Pi; en una CPU de alto rendimiento obviamente parece que sería más rápido.
Y además usa mucha menos RAM.
A este paso, quizá termine apareciendo una forma de ejecutarlo en el edge con Serverless....
Oh, qué proyecto tan interesante. ¡Gracias!
Parece que también habrá muchos intentos por reducir el cuello de botella entre la CPU y la RAM +_+