𝗞𝗩 𝗖𝗮𝗰𝗵𝗲 𝗤𝘂𝗮𝗻𝘁𝗶𝘇𝗮𝘁𝗶𝗼𝗻 𝗳𝗼𝗿 𝗢𝗻-𝗗𝗲𝘃𝗶𝗰𝗲 𝗟𝗟𝗠𝘀
2 GB RAM वाले Android डिवाइस पर Llama 3.2 3B चलाना कठिन है। अधिकांश डेवलपर्स मॉडल वेट्स (model weights) पर ध्यान केंद्रित करते हैं। यह एक गलती है। असली मेमोरी खपत करने वाला कारक KV cache है।
जैसे-जैसे आप चैट करते हैं, KV cache बढ़ता जाता है। यदि आप मानक FP16 precision का उपयोग करते हैं, तो cache सैकड़ों मेगाबाइट ले लेता है। इसके कारण कुछ ही टर्न के बाद आपका ऐप क्रैश हो जाता है।
आप इसे तीन विशिष्ट चरणों के साथ ठीक कर सकते हैं।
- Use Mixed-Precision Quantization Keys और values को एक ही precision की आवश्यकता नहीं होती है। Key caches कम precision को अच्छी तरह संभाल लेते हैं, लेकिन Value caches नहीं।
- Keys के लिए INT4 का उपयोग करें।
- Values के लिए INT8 का उपयोग करें।
यह दृष्टिकोण आपके cache के आकार को 62% तक कम कर देता है। 2048 token context के लिए, यह 224 MB से घटकर 84 MB रह जाता है। यह मॉडल वेट्स को बदले बिना संभव होता है।
Implement Sliding Window Eviction आप हर token को एक्टिव मेमोरी में नहीं रख सकते। केवल सबसे हाल के 1536 tokens को रखने के लिए sliding window का उपयोग करें। सिस्टम प्रॉम्प्ट (system prompt) को सुरक्षित रखने के लिए पहले 64 tokens को anchors के रूप में रखें।
Use Flash Spilling जब tokens sliding window से बाहर निकलें, तो उन्हें flash storage में ले जाएँ। Android पर memory-mapped files का उपयोग करें। आधुनिक UFS 4.0 स्टोरेज इतना तेज़ है कि यह बिना किसी लैग के इस डेटा को वापस मेमोरी में पेज कर सकता है।
परिणाम महत्वपूर्ण हैं। Snapdragon 8 Gen 3 पर:
- पीक मेमोरी 2 GB की सीमा से नीचे आ जाती है।
- अधिकतम बातचीत के टर्न 4 से बढ़कर 12 से अधिक हो जाते हैं।
- Token की गति बढ़ जाती है क्योंकि छोटे caches मेमोरी बैंडविड्थ का बेहतर उपयोग करते हैं।
- मॉडल की गुणवत्ता लगभग वैसी ही रहती है।
इन गलतियों से बचें:
- Keys और values को एक ही स्तर पर quantize न करें। इससे गुणवत्ता कम हो जाएगी।
- Thermal throttling को नज़रअंदाज़ न करें। लगातार inference करने से डिवाइस गर्म हो जाता है। परफॉरमेंस को मैनेज करने के लिए Android Thermal HAL की जाँच करें।
- Cache lifecycle को न भूलें। मेमोरी लीक से बचने के लिए हमेशा mapped buffers को एक उचित scope से जोड़ें।
अपनी फीचर्स बनाने से पहले अपना मेमोरी बजट तैयार करें।
Source: https://dev.to/software_mvp-factory/kv-cache-quantization-for-on-device-llms-kf