17 puntos por kuroneko 2023-07-21 | 3 comentarios | Compartir por WhatsApp
  • 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

 
wkang586 2023-07-31

¿Cuánto más van a torturar a esa cosita...?
Creo que los humanos son la criatura más grotesca.

 
kuroneko 2023-07-21

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....

 
ninebow 2023-07-21

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 +_+