4 puan yazan GN⁺ 2023-10-04 | 1 yorum | WhatsApp'ta paylaş
  • Bu makale, 512 MB RAM'e sahip Raspberry Pi Zero 2 adlı mikro bilgisayarda Stable Diffusion XL 1.0 çalıştırılmasına dair bir tartışmayı ele alıyor.
  • Zorluk, swap alanını artırmadan veya ara sonuçları diske offload etmeden, yaklaşık 1 milyar parametreye sahip büyük bir transformer modeli olan Stable Diffusion 1.5'i çalıştırmak.
  • Yazar, bellek tüketimini en aza indirmeye odaklanan küçük ve hacklenebilir bir çıkarım kütüphanesi olan OnnxStream'i geliştirdi.
  • OnnxStream, çıkarım motorunu model ağırlıklarını sağlayan bileşenden ayırarak model parametreleri için farklı yükleme, önbellekleme ve prefetching türlerine izin veriyor.
  • OnnxStream, OnnxRuntime'a kıyasla 55 kat daha az bellek tüketirken yalnızca 0,5-2 kat daha yavaş.
  • Makalede, VAE decoder'ın farklı hassasiyet seviyelerinde OnnxStream kullanılarak hazırlanmış Stable Diffusion örnek uygulaması tarafından üretilen görseller yer alıyor.
  • OnnxStream Stable Diffusion örnek uygulaması artık SDXL 1.0'ı destekliyor; bu sürüm SD 1.5'e göre hesaplama açısından daha maliyetli olsa da daha büyük görseller üretebiliyor.
  • OnnxStream, SDXL 1.0'ı 300 MB'tan az RAM'de çalıştırabildiği için Raspberry Pi Zero 2 için uygun.
  • Makale, SDXL 1.0 için belirli optimizasyonları tartışıyor; bunlar arasında bellek tüketimini 4,4 GB'den 298 MB'a düşürmek için tiled decoding kullanılması da var.
  • OnnxStream'in özellikleri arasında çıkarım motoru ile WeightsProvider'ın ayrılması, attention slicing, dinamik ve statik quantization, FP16 desteği ve daha fazlası bulunuyor.
  • Makale, farklı işletim sistemlerinde Stable Diffusion örneğinin nasıl derleneceğine dair ayrıntılı talimatlar sunuyor.
  • sd.cpp içindeki Stable Diffusion uygulaması, diğer iki projeyi temel alıyor ve NCNN yerine OnnxStream kullanacak şekilde değiştirilmiş.

1 yorum

 
GN⁺ 2023-10-04
Hacker News görüşleri
  • OnnxStream kullanımına dair bir yazı; OnnxRuntime'a kıyasla 55 kat daha az bellek tükettiği, ancak 0,5-2 kat daha yavaş olduğu görülüyor.
  • Bellek kullanımı ile çıkarım süresi arasındaki ödünleşim, bazı senaryolarda avantajlı olabilir ve aynı RAM üzerinde daha büyük batch boyutlarına izin verebilir.
  • Bazı kullanıcılar MacBook Pro'da invoke.ai üzerinden Stable Diffusion kullanıyor, ancak daha iyi parametre ayarları için öneriler arıyor.
  • Yazıda, bu yöntemle görsel üretmenin uzun sürdüğünden bahsediliyor; Readme'de bunun 11 saat sürdüğü belirtiliyor.
  • Bellek kullanımı ile çıkarım süresi arasındaki ödünleşim, gecikmenin kritik olduğu gerçek zamanlı veya gerçeğe yakın zamanlı uygulamaları zorlaştırabilir.
  • "0,5-2 kat daha yavaş" ifadesi hakkında kafa karışıklığı var; bu, topluluk içi iletişimde netliğin eksik olabileceğini gösteriyor.
  • Bazı kullanıcılar, başlıca açık kaynak modelleri çalıştırmak ve üretim yapmak için gereken minimum gereksinimlerin bir özetini arıyor.
  • Bu alandaki hızlı ilerleme dikkat çekiyor; özellikle son 6-18 aydaki hız artışları etkileyici bulunuyor.
  • Stable Diffusion türü teknolojileri düzenleme girişimlerinin beyhude olabileceği öne sürülüyor; bu modellerin ve bunların çıkarım altyapısının PS2'de çalışabilecek boyuta kadar küçültülebileceği ifade ediliyor.
  • Üretim süresi uzun olsa da, bazı kullanıcılar Stable Diffusion'ın Pi Zero gibi donanımlarda çalışabilmesine hayran kalıyor.