4 पॉइंट द्वारा GN⁺ 2023-10-04 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • यह लेख 512MB RAM वाले Raspberry Pi Zero 2 माइक्रो कंप्यूटर पर Stable Diffusion XL 1.0 चलाने की चर्चा करता है.
  • चुनौती यह है कि swap space बढ़ाए बिना या intermediate results को disk पर offload किए बिना, लगभग 1 अरब parameters वाले बड़े transformer model Stable Diffusion 1.5 को चलाया जाए.
  • लेखक ने OnnxStream बनाया है, जो memory consumption को न्यूनतम करने पर केंद्रित एक छोटा और hackable inference library है.
  • OnnxStream inference engine और model weights देने वाले component को अलग करता है, जिससे model parameters के विभिन्न प्रकार के loading, caching और prefetching संभव होते हैं.
  • OnnxStream, OnnxRuntime की तुलना में 55 गुना कम memory उपयोग करता है, जबकि केवल 0.5-2 गुना धीमा है.
  • इस लेख में OnnxStream का उपयोग करके VAE decoder की विभिन्न precisions पर Stable Diffusion example implementation द्वारा बनाई गई images शामिल हैं.
  • OnnxStream Stable Diffusion example implementation अब SDXL 1.0 को support करती है, जो SD 1.5 की तुलना में computationally अधिक costly है, लेकिन बड़ी images generate कर सकती है.
  • OnnxStream, SDXL 1.0 को 300MB से कम RAM में चला सकता है, इसलिए यह Raspberry Pi Zero 2 के लिए उपयुक्त है.
  • यह लेख SDXL 1.0 के लिए विशेष optimizations पर चर्चा करता है, जिनमें memory consumption को 4.4GB से घटाकर 298MB करने के लिए tile decoding का उपयोग शामिल है.
  • OnnxStream की क्षमताओं में inference engine और WeightsProvider का separation, attention slicing, dynamic और static quantization, FP16 support आदि शामिल हैं.
  • यह लेख विभिन्न operating systems पर Stable Diffusion example को build करने के लिए विस्तृत निर्देश देता है.
  • sd.cpp का Stable Diffusion implementation दो अन्य projects पर आधारित है, और इसे NCNN की जगह OnnxStream उपयोग करने के लिए संशोधित किया गया है.

1 टिप्पणियां

 
GN⁺ 2023-10-04
Hacker News राय
  • OnnxStream के उपयोग पर एक लेख, जिसमें दिखाया गया है कि यह OnnxRuntime की तुलना में 55 गुना कम मेमोरी इस्तेमाल करता है, जबकि 0.5-2 गुना धीमा है।
  • मेमोरी उपयोग और inference time के बीच का trade-off कुछ scenarios में फायदेमंद हो सकता है, और उसी RAM पर बड़े batch size की अनुमति दे सकता है।
  • कुछ उपयोगकर्ता MacBook Pro पर invoke.ai के जरिए Stable Diffusion इस्तेमाल कर रहे हैं, लेकिन बेहतर parameterization के लिए सिफारिशें ढूंढ रहे हैं।
  • लेख में उल्लेख है कि इस तरीके से इमेज बनाने में बहुत लंबा समय लगता है, और Readme में 11 घंटे लगने की बात लिखी गई है।
  • मेमोरी उपयोग और inference time के बीच का trade-off real-time या near-real-time applications में बाधा बन सकता है, जहां latency एक महत्वपूर्ण factor है।
  • "0.5-2 गुना धीमा" जैसी अभिव्यक्ति को लेकर भ्रम है, जो यह दिखाता है कि community के भीतर communication में स्पष्टता की कमी हो सकती है।
  • कुछ उपयोगकर्ता प्रमुख open source models को चलाने और generation के लिए न्यूनतम आवश्यकताओं का सारांश खोज रहे हैं।
  • इस क्षेत्र में तेज प्रगति ध्यान खींचती है, खासकर पिछले 6-18 महीनों के दौरान speed improvements प्रभावशाली रही हैं।
  • यह सुझाव दिया गया है कि Stable Diffusion जैसी तकनीक को regulate करने की कोशिश बेकार हो सकती है, क्योंकि ऐसे models और उनका inference infrastructure इतना छोटा किया जा सकता है कि वे PS2 पर चल सकें।
  • generation time लंबा है, लेकिन कुछ उपयोगकर्ता इस बात से प्रभावित हैं कि Stable Diffusion, Pi Zero जैसे hardware पर चल सकता है।