डिवाइस पर AI · पढ़ने में 8 मिनट

भाषा मॉडल फ़ोन में कैसे समाता है

लोकल AI ऐप हैरान करने वाली मात्रा में स्टोरेज माँगते हैं, और वजह फ़ालतू भारीपन नहीं है। वे गीगाबाइट कहाँ जाते हैं, यह समझ लेने पर यह भी समझ आता है कि मॉडल नए फ़ोन पर तेज़ और पुराने पर सुस्त क्यों है — और फ़ाइल का नाम Q3_K_S असल में आपको क्या बता रहा है।

मॉडल यानी संख्याओं का बड़ा ढेर

भाषा मॉडल सीखे हुए पैरामीटर का समूह है — वेट्स। हर एक एक संख्या है, और वे अरबों में होते हैं। मॉडल के नाम में “2B” का मतलब है लगभग दो अरब पैरामीटर।

पूरी सटीकता से रखा जाए तो हर वेट 4 बाइट लेता है। दो अरब वेट, हर एक 4 बाइट का, यानी लगभग 8 GB — और यह तो छोटे मॉडलों में से एक है। एक पंक्ति में समस्या यही है: फ़ाइल बड़ी इसलिए है कि संख्याएँ बहुत हैं और हर एक पूरी सटीकता से रखी जाती है।

क्वांटाइज़ेशन: हर संख्या के लिए कम बिट

क्वांटाइज़ेशन हर वेट को कम बिट में रखता है। हर वेट के लिए 32 बिट के बजाय 8, 4 या 3 बिट — साथ में वेट्स के हर ब्लॉक पर स्केलिंग फ़ैक्टर, ताकि अनुमान असली मान के पास बना रहे।

आकार में कमी लगभग सीधी है:

यह लॉसी कंप्रेशन है, JPEG की तरह। इसे काफ़ी आगे तक ले जाएँ तो ख़ामियाँ दिखने लगती हैं — भाषा मॉडल में वे धुँधले जवाब, दोहराव, या सवाल से भटक जाने की शक्ल में सामने आती हैं।

क्वांटाइज़ेशन मॉडल को एक जैसे ढंग से कम समझदार नहीं बनाता। वह उसे कम सटीक बनाता है, और कम सटीकता सबसे पहले सबसे कठिन इनपुट पर दिखती है।

फ़ाइल का नाम पढ़ना

कोई नाम, जैसे Q4_K_M या Q3_K_S — यह वर्शन नंबर नहीं, एक नुस्ख़ा है:

यानी Q3_K_S एक छोटा 3-बिट k-क्वांट है: कसकर संपीड़ित, तब चुना जाता है जब डिवाइस में समा जाना गुणवत्ता के आख़िरी कुछ प्रतिशत से ज़्यादा मायने रखता है।

GGUF: वह डिब्बा जिसमें सब रखा है

GGUF वह फ़ाइल फ़ॉर्मैट है जिसमें क्वांटाइज़्ड वेट्स और रनटाइम के लिए ज़रूरी मेटाडेटा रहता है — टोकनाइज़र, आर्किटेक्चर, प्रॉम्प्ट टेम्पलेट। एक ही फ़ाइल, साथ में कॉन्फ़िग की कोई डायरेक्टरी नहीं।

फ़ोन के लिए यह इसलिए मायने रखता है कि GGUF को डिज़ाइन ही किया गया है मेमोरी-मैपिंग के लिए। 1.7 GB को RAM में पढ़ने के बजाय रनटाइम फ़ाइल को अपने ऐड्रेस स्पेस में मैप करता है, और ऑपरेटिंग सिस्टम सिर्फ़ उन हिस्सों को अंदर लाता है जो सचमुच इस्तेमाल हो रहे होते हैं। इसीलिए फ़ोन की ख़ाली RAM से बड़ा मॉडल भी चल जाता है, और इसीलिए ऐप खोलने के बाद पहला जवाब अगले से धीमा आता है — पन्ने अभी लाए ही जा रहे होते हैं।

यह फ़ोन को गरम क्यों करता है

एक शब्द — यानी एक टोकन — बनाने का मतलब है इनपुट को उन अरबों पैरामीटर से गुज़ारना। फिर अगले टोकन के लिए वही दोबारा करना। सौ शब्दों का जवाब यानी सौ चक्कर।

यह CPU या न्यूरल एक्सेलेरेटर पर लगातार चलने वाला गणित है, और ठीक यही वह काम है जिसमें फ़ोन गर्मी के मामले में सबसे कमज़ोर हैं। गरम होने पर डिवाइस रफ़्तार घटा देते हैं, इसलिए लंबा, बिना रुके चलने वाला जनरेशन आगे बढ़ते-बढ़ते धीमा होता जाता है। अच्छे बने लोकल ऐप सब कुछ एक के बाद एक क़तार में लगाने के बजाय अपना काम थोड़ा-थोड़ा करके करते हैं — कामों के बीच फ़ासला रखकर, ताकि चिप ठंडी हो सके।

पुराने फ़ोन क्यों जूझते हैं

तीन अड़चनें, और तीनों कड़ी:

इसीलिए लोकल AI ऐप सब कुछ चलाने की कोशिश करने के बजाय एक न्यूनतम डिवाइस बता देते हैं। एक हद के नीचे अनुभव ख़राब नहीं होता, वह इस्तेमाल के लायक़ ही नहीं रहता।

आप जो सौदा कर रहे हैं

फ़ोन के आकार का क्वांटाइज़्ड मॉडल कठिन तर्क में किसी बड़े क्लाउड मॉडल की बराबरी नहीं करेगा। सीमित काम के लिए — इस वाक्य में इस शब्द का क्या अर्थ है, इस वाक्यांश का अनुवाद करो — वह पूरी तरह काफ़ी है, और उसके साथ तीन ऐसी बातें आती हैं जो क्लाउड मॉडल नहीं दे सकता: वह बिना कनेक्शन के चलता है, हर इस्तेमाल पर कुछ ख़र्च नहीं होता, और टेक्स्ट कभी डिवाइस से बाहर नहीं जाता।

डिवाइस पर चलने वाले AI का पूरा सौदा यही है। आप सबसे बड़ा संभव मॉडल छोड़ते हैं, और बदले में निजता, ऑफ़लाइन क्षमता और मीटर से आज़ादी पाते हैं।

ClickBook यह कैसे करता है

ClickBook एक क्वांटाइज़्ड GGUF मॉडल के साथ आता है और उसे आपके डिवाइस पर llama.cpp के ज़रिए चलाता है। iOS पर यह ऐप के भीतर ही आता है, इसलिए कुछ डाउनलोड नहीं करना पड़ता। लोकल AI ई-रीडर के बारे में और पढ़ें, या देखें ClickBook कैसे काम करता है.