- 512MB RAM वाले Raspberry Pi Zero 2 पर Stable Diffusion चलाने के लिए एक लाइब्रेरी।
- मेमोरी खपत के optimization पर फोकस करते हुए OnnxStream लाइब्रेरी विकसित की गई।
- मॉडल को weights देने वाले components को अलग करके मेमोरी उपयोग को optimize किया गया।
- सैद्धांतिक रूप से HTTP server से weights सीधे पास करके डिस्क पर कुछ भी लिखे बिना भी मॉडल चलाया जा सकता है।
- नतीजतन, यह OnnxRuntime की तुलना में अधिकतम 55 गुना कम मेमोरी इस्तेमाल करता है, लेकिन 0.5~2 गुना धीमा है।
- लेकिन Stable Diffusion में शामिल VAE मॉडल इस लाइब्रेरी का उपयोग करने पर भी लगभग 1GB RAM इस्तेमाल करता है।
- VAE मॉडल में 8-bit static quantization (W8A8) के जरिए मेमोरी उपयोग को और optimize किया गया।
- आखिरकार, असली RPI Zero 2 पर 3 घंटे में इमेज generate करने में सफलता मिली।
- अंतिम रूप से लगभग 260MB RAM ही इस्तेमाल हुई।
3 टिप्पणियां
उस छोटे से बच्चे को और कितना सताओगे.....
लगता है इंसान ही सबसे विकृत creature है।
वाकई हैरान करने वाला है। कई GB के मॉडल को 260MB RAM में चलाना...
3 घंटे लगने की बात भी Raspberry Pi की वजह से है; हाई-परफॉर्मेंस CPU पर यह जाहिर तौर पर तेज़ होगा।
RAM भी काफ़ी कम इस्तेमाल होगी।
कहीं ऐसा न हो कि आगे चलकर Serverless के साथ Edge पर चलाने का तरीका भी निकल आए....
ओह, यह काफ़ी दिलचस्प प्रोजेक्ट है। धन्यवाद!
लगता है CPU - RAM के बीच की bottleneck को कम करने के लिए भी काफी कोशिशें होंगी +_+