- Library untuk menjalankan Stable Diffusion di Raspberry Pi Zero 2 dengan RAM 512MB.
- Mengembangkan library OnnxStream yang berfokus pada optimasi konsumsi memori.
- Mengoptimalkan penggunaan memori dengan memisahkan komponen yang menyediakan bobot ke model.
- Secara teori, bobot bisa dikirim langsung dari server HTTP sehingga model dapat dijalankan tanpa menulis apa pun ke disk.
- Hasilnya, penggunaan memori hingga 55 kali lebih kecil dibandingkan OnnxRuntime, tetapi 0,5~2 kali lebih lambat.
- Namun, model VAE yang disertakan dalam Stable Diffusion tetap menggunakan sekitar 1GB RAM meski memakai library ini.
- Penggunaan memori VAE kemudian dioptimalkan lebih lanjut melalui kuantisasi statis 8-bit (W8A8).
- Pada akhirnya, berhasil menghasilkan gambar dalam 3 jam di RPI Zero 2 yang sebenarnya.
- Pada tahap akhir, hanya menggunakan sekitar 260MB RAM.
3 komentar
Mau disiksa seberapa jauh lagi si kecil itu.....
Sepertinya manusia adalah makhluk paling nyeleneh.
Benar-benar menakjubkan. Menjalankan model berukuran beberapa GB hanya dengan RAM 260MB...
Kalau sampai butuh 3 jam juga karena ini Raspberry Pi; di CPU berperforma tinggi tentu akan jauh lebih cepat.
Penggunaan RAM-nya juga jauh lebih sedikit.
Jangan-jangan lama-lama akan muncul cara untuk menjalankannya di edge secara serverless....
Oh, proyek yang menarik. Terima kasih!
Sepertinya juga akan ada banyak upaya untuk mengurangi bottleneck antara CPU dan RAM +_+