4 poin oleh GN⁺ 2023-10-04 | 1 komentar | Bagikan ke WhatsApp
  • Artikel ini membahas upaya menjalankan Stable Diffusion XL 1.0 pada mikrokomputer Raspberry Pi Zero 2 yang memiliki RAM 512MB.
  • Tantangannya adalah menjalankan Stable Diffusion 1.5, sebuah model transformer besar dengan hampir 1 miliar parameter, tanpa menambah ruang swap atau memindahkan hasil antara ke disk.
  • Penulis membuat OnnxStream, library inferensi kecil yang mudah diutak-atik dan berfokus pada meminimalkan konsumsi memori.
  • OnnxStream memisahkan mesin inferensi dan komponen yang menyediakan bobot model, sehingga memungkinkan berbagai jenis loading, caching, dan prefetching untuk parameter model.
  • OnnxStream menggunakan memori 55 kali lebih sedikit dibandingkan OnnxRuntime, meski hanya 0,5-2 kali lebih lambat.
  • Artikel ini menyertakan gambar yang dihasilkan oleh implementasi contoh Stable Diffusion menggunakan OnnxStream pada berbagai tingkat presisi VAE decoder.
  • Implementasi contoh Stable Diffusion di OnnxStream kini mendukung SDXL 1.0, yang lebih mahal secara komputasi dibanding SD 1.5 tetapi dapat menghasilkan gambar yang lebih besar.
  • OnnxStream dapat menjalankan SDXL 1.0 dengan RAM di bawah 300MB, sehingga cocok untuk Raspberry Pi Zero 2.
  • Artikel ini membahas optimasi khusus untuk SDXL 1.0, termasuk penggunaan tile decoding untuk menurunkan konsumsi memori dari 4,4GB menjadi 298MB.
  • Fitur OnnxStream mencakup pemisahan mesin inferensi dan WeightsProvider, attention slicing, kuantisasi dinamis dan statis, serta dukungan FP16.
  • Artikel ini memberikan petunjuk rinci tentang cara membangun contoh Stable Diffusion di berbagai sistem operasi.
  • Implementasi Stable Diffusion milik sd.cpp didasarkan pada dua proyek lain, dan telah dimodifikasi agar menggunakan OnnxStream alih-alih NCNN.

1 komentar

 
GN⁺ 2023-10-04
Opini Hacker News
  • Artikel tentang penggunaan OnnxStream, yang tampaknya menggunakan memori 55 kali lebih sedikit dibandingkan OnnxRuntime, dengan kecepatan 0,5-2 kali lebih lambat.
  • Trade-off antara penggunaan memori dan waktu inferensi bisa menguntungkan dalam beberapa skenario, dan dapat memungkinkan ukuran batch yang lebih besar pada RAM yang sama.
  • Beberapa pengguna menggunakan Stable Diffusion di MacBook Pro melalui invoke.ai, tetapi sedang mencari rekomendasi untuk parameterisasi yang lebih baik.
  • Artikel tersebut menyebutkan bahwa menghasilkan gambar dengan metode ini membutuhkan waktu lama, dan Readme menyatakan butuh 11 jam.
  • Trade-off antara penggunaan memori dan waktu inferensi dapat menghambat aplikasi real-time atau nyaris real-time, di mana latensi merupakan faktor penting.
  • Ada kebingungan terhadap ungkapan "0,5-2 kali lebih lambat", yang menunjukkan kemungkinan kurangnya kejelasan dalam komunikasi di dalam komunitas.
  • Beberapa pengguna mencari ringkasan tentang persyaratan minimum untuk menjalankan dan menghasilkan model open source utama.
  • Kemajuan pesat di bidang ini menjadi sorotan, terutama peningkatan kecepatan selama 6-18 bulan terakhir yang sangat mengesankan.
  • Disarankan bahwa upaya untuk mengatur teknologi jenis Stable Diffusion bisa jadi sia-sia, karena model-model ini dan infrastruktur inferensinya dapat diperkecil hingga ukuran yang dapat dijalankan di PS2.
  • Meskipun waktu pembuatannya lama, beberapa pengguna kagum bahwa Stable Diffusion dapat dijalankan pada perangkat keras seperti Pi Zero.