लार्ज लैंग्वेज मॉडल (एलएलएम) चलाना पहले केवल मल्टी-जीपीयू क्लाउड क्लस्टर्स का काम माना जाता था। आज मोबाइल हार्डवेयर इस स्तर पर पहुंच गया है कि हम अपनी जेब में रखे फोन के अंदर सीधे २-बिलियन पैरामीटर वाले मॉडल चला सकते हैं।
गूगल के लाइटआरटी (पूर्व में टेंसरफ्लो लाइट) और जेमा ओपन-मॉडल फैमिली के साथ, एंड्रॉइड डेवलपर्स एक ऐसा डिवाइस-पर जेनेरेटिव एआई एकीकृत कर सकते हैं जो तेज़ है, १००% निजी है, और पूरी तरह से ऑफ़लाइन काम करता है।
डिवाइस-पर एलएलएम क्यों चलाएं?
लंबे समय तक, मोबाइल एआई के लिए मानक पैटर्न एपीआई-आधारित रहा है: एक रिमोट सर्वर पर अनुरोध भेजें, क्लाउड में मॉडल चलने का इंतज़ार करें, और रिस्पॉन्स को पार्स करें। हालांकि यह आसान है, लेकिन इसके कुछ बड़े नुकसान हैं:
- गोपनीयता जोखिम: उपयोगकर्ता का डेटा, चैट हिस्ट्री और व्यक्तिगत इनपुट फोन से बाहर निकलकर बाहरी सर्वर पर चले जाते हैं। स्वास्थ्य, वित्तीय या व्यक्तिगत डेटा के लिए यह एक बहुत बड़ा जोखिम है।
- नेटवर्क निर्भरता: यदि उपयोगकर्ता का कनेक्शन खराब है या वह हवाई जहाज़ मोड में है, तो एआई काम करना बंद कर देता है। दुनिया के कई हिस्सों में विश्वसनीय मोबाइल इंटरनेट की गारंटी नहीं दी जा सकती।
- आवर्ती सर्वर लागत: प्रत्येक एपीआई कॉल पर सर्वर फीस लगती है जो आपके उपयोगकर्ता आधार के साथ रैखिक रूप से बढ़ती है। एक वायरल ऐप का बिल रातों-रात $५०/माह से बढ़कर $५०,०००/माह हो सकता है।
- विलंबता: तेज़ कनेक्शन पर भी, क्लाउड एलएलएम के लिए एक चक्कर लगाने में ५००एमएस-२सेकंड का समय लग जाता है। डिवाइस-पर इनफ़्रेंस छोटे इनपुट के लिए ३००एमएस से भी कम समय में जवाब दे सकता है।
डिवाइस-पर एआई इन तीनों समस्याओं का समाधान करता है। लाइटआरटी और एक कंप्रेस्ड जेमा मॉडल का उपयोग करके, आपका एप्लिकेशन स्थानीय रूप से इनफ़्रेंस चला सकता है। आपके उपयोगकर्ताओं को तुरंत जवाब, पूर्ण गोपनीयता और शून्य इंटरनेट डेटा खर्च मिलता है।
सही मॉडल चुनना
जेमा के सभी प्रकार मोबाइल के लिए उपयुक्त नहीं हैं। एक सुचारू उपयोगकर्ता अनुभव के लिए सही मॉडल और क्वांटिज़ेशन स्तर चुनना महत्वपूर्ण है:
| मॉडल | पैरामीटर्स | क्वांटिज़ेशन | फ़ाइल का आकार | आवश्यक रैम | किसके लिए सर्वश्रेष्ठ |
|---|---|---|---|---|---|
| जेमा २बी | २बी | आईएनटी४ | ~१.४ जीबी | ~२.५ जीबी | कम कीमत वाले फोन, तेज़ इनफ़्रेंस |
| जेमा २बी | २बी | आईएनटी८ | ~२.५ जीबी | ~४ जीबी | बेहतर गुणवत्ता, मध्यम श्रेणी के फोन |
| जेमा २बी | २बी | एफपी१६ | ~५ जीबी | ~६ जीबी | सर्वश्रेष्ठ गुणवत्ता, केवल फ्लैगशिप फोन |
| जेमा ७बी | ७बी | आईएनटी४ | ~४.५ जीबी | ~८ जीबी | १२+ जीबी रैम वाले फ्लैगशिप फोन |
व्यावहारिक सिफारिश: अधिकांश उत्पादन ऐप्स के लिए, आईएनटी४ क्वांटिज़ेशन के साथ जेमा २बी सबसे उपयुक्त है। यह ६ जीबी+ रैम वाले उपकरणों पर आसानी से चलते हुए आश्चर्यजनक रूप से सटीक आउटपुट देता है, जो २०२१ के बाद बेचे गए अधिकांश एंड्रॉइड फोन को कवर करता है।
आईएनटी४ क्वांटिज़ेशन प्रत्येक मॉडल के वजन को १६ बिट से घटाकर ४ बिट कर देता है, जिससे अधिकांश कार्यों के लिए गुणवत्ता में मामूली कमी के साथ फ़ाइल का आकार लगभग ७५% कम हो जाता है।
वास्तविक दुनिया का उदाहरण: नोमएआई कैलोरी ट्रैकर
इसका एक शानदार वास्तविक उदाहरण नोमएआई है, जो एंड्रॉइड के लिए एक ओपन-सोर्स, ऑफ़लाइन-प्रथम कैलोरी ट्रैकिंग ऐप है।
अधिकांश कैलोरी ट्रैकर अकाउंट बनाने की मांग करते हैं, विज्ञापन दिखाते हैं, और आपके भोजन लॉग डेटा को विज्ञापन नेटवर्क को बेचते हैं। नोमएआई भोजन के विवरण का विश्लेषण करने और पोषण मूल्यों का अनुमान लगाने के लिए आपके एंड्रॉइड डिवाइस पर स्थानीय रूप से जेमा-२बी चलाकर इस चलन को बदलता है।
- गिटहब रिपॉजिटरी: [नोमएआई गिटहब](P११)
नोमएआई में, जब कोई उपयोगकर्ता लिखता है "मैंने दो तले हुए अंडे और टोस्ट का एक टुकड़ा खाया", तो स्थानीय जेमा मॉडल इनपुट को पार्स करता है, मैक्रोज़ (प्रोटीन, कार्ब्स, फैट) का अनुमान लगाता है, और एक संरचित रिस्पॉन्स देता है, पूरी तरह से डिवाइस-पर, बिना किसी बैकएंड एपीआई के।
लाइटआरटी-एलएम के साथ एंड्रॉइड पर जेमा सेटअप करना
अपने स्वयं के एंड्रॉइड ऐप में स्थानीय इनफ़्रेंस शुरू करने के लिए, आप गूगल के लाइटआरटी-एलएम एसडीके का उपयोग कर सकते हैं:
१. डिपेंडेंसी जोड़ें
अपने P४ फ़ाइल में लाइटआरटी-एलएम रनटाइम डिपेंडेंसी जोड़ें:
P०
२. मॉडल डाउनलोड करें
मोबाइल उपकरणों के लिए, क्वांटिज़्ड मॉडल फ़ाइलों का उपयोग करें। आप निम्न माध्यमों से प्री-कन्वर्टेड मॉडल पा सकते हैं:
- कैगल: [कैगल पर जेमा मॉडल](P१२) खोजें
- हगिंग फेस: लाइटआरटी कम्युनिटी पेज पर P५ प्रारूप में समुदाय द्वारा परिवर्तित किए गए मॉडल देखें
मॉडल फ़ाइल को अपने ऐप के इंटरनल स्टोरेज में रखें (P६ में नहीं, फ़ाइल एपीके बंडल के लिए बहुत बड़ी है)। आप आमतौर पर इसे पहले लॉन्च पर डाउनलोड करेंगे या एंड्रॉइड ऐप बंडल असेट पैक के रूप में बंडल करेंगे।
३. इंजन को इनिशियलाइज़ करें
चूंकि १.४ जीबी मॉडल को मेमोरी में लोड करने में कुछ सेकंड लगते हैं, इसलिए हमेशा बैकग्राउंड थ्रेड पर इनफ़्रेंस इंजन को इनिशियलाइज़ करें। कोटलिन कोरूटीन्स का उपयोग करके एक बुनियादी सेटअप यहाँ दिया गया है:
P१
४. इसे अपने यूआई से जोड़ें
इंजन को अपने कंपोज़ या व्यू-आधारित यूआई से जोड़ें:
P२
महत्वपूर्ण: इंजन की आवश्यकता समाप्त होने पर हमेशा P७ कॉल करें। २बी पैरामीटर वाला मॉडल २+ जीबी रैम का उपभोग करता है, इसे रिलीज़ न करने पर ऑपरेटिंग सिस्टम द्वारा ऐप को बंद (आक्रामक ओएस मेमोरी किल्स) किया जा सकता है।
संरचित आउटपुट के लिए प्रॉम्प्ट इंजीनियरिंग
डिवाइस-पर एलएलएम एकीकरण के सबसे कठिन हिस्सों में से एक विश्वसनीय, संरचित आउटपुट प्राप्त करना है। क्लाउड मॉडल जैसे जीपीटी-४ या जेमिनी प्रो में निर्देशों का पालन करने की मजबूत क्षमता होती है, लेकिन छोटे २बी मॉडल को अधिक सावधानीपूर्वक प्रॉम्प्ट करने की आवश्यकता होती है।
नोमएआई के पोषण विश्लेषण के लिए, एक अच्छी तरह से तैयार किया गया सिस्टम प्रॉम्प्ट बहुत महत्वपूर्ण है:
P३
छोटे मॉडलों से विश्वसनीय संरचित आउटपुट के लिए टिप्स:
- आउटपुट प्रारूप के बारे में अत्यंत स्पष्ट रहें। यदि आवश्यक हो तो प्रॉम्प्ट में एक पूर्ण उदाहरण शामिल करें।
- नकारात्मक निर्देशों का उपयोग करें ("जेसन के बाहर कोई टेक्स्ट न जोड़ें"), छोटे मॉडल तब तक स्पष्टीकरण जोड़ने लगते हैं जब तक उन्हें मना न किया जाए।
- सत्यापित करें और पुन: प्रयास करें, अपने जेसन पार्सिंग को त्रुटि-हैंडलिंग में लपेटें और पार्सिंग विफल होने पर प्रॉम्प्ट को फिर से चलाएं। आईएनटी४ मॉडल के साथ पहले प्रयास में ~५-१०% विफलता दर की उम्मीद रखें।
- प्रॉम्प्ट्स को छोटा रखें, २बी मॉडल में सीमित कॉन्टेक्स्ट विंडो (आमतौर पर २०४८-८१९२ टोकन) होती है। लंबे सिस्टम प्रॉम्प्ट आपके रिस्पॉन्स बजट को खा जाते हैं।
आवश्यक अनुकूलन
अपने मोबाइल ऐप को सुचारू रखने और क्रैश को रोकने के लिए:
- बैकग्राउंड निष्पादन: मुख्य यूआई थ्रेड को ब्लॉक करने से बचने के लिए हमेशा कोरोटिन में P८ पर इनिशियलाइज़ेशन और जेनरेशन लूप चलाएं। मिड-रेंज उपकरणों पर मॉडल लोड करने में ही ३-८ सेकंड लग सकते हैं।
- हार्डवेयर त्वरण: उपलब्ध होने पर लाइटआरटी स्वचालित रूप से जीपीयू डेलीगेट या एनएनएपीआई डेलीगेट को कार्य सौंपता है। समर्पित एनपीयू (जैसे गूगल टेंसर या क्वालकॉम हेक्सागॉन चिप्स) वाले उपकरणों पर, यह इनफ़्रेंस की गति को दोगुना कर सकता है।
- मेमोरी प्रबंधन: मोबाइल ऑपरेटिंग सिस्टम उन ऐप्स को बंद कर देते हैं जो मेमोरी सीमा से अधिक हो जाते हैं। २बी मॉडल इनिशियलाइज़ करने से पहले, P९ के साथ उपलब्ध रैम की जांच करें और कम मेमोरी वाले उपकरणों (४ जीबी से कम कुल रैम) के लिए एक सुरक्षित बैकअप विकल्प दिखाएं।
- मॉडल प्रीलोडिंग: ऐप लॉन्च पर, बैकग्राउंड में तुरंत मॉडल लोड करना शुरू करें, इससे पहले कि उपयोगकर्ता एआई सुविधा पर जाए। यह इनिशियलाइज़ेशन में लगने वाले समय को छुपाता है।
- थर्मल थ्रॉटलिंग: लंबे इनफ़्रेंस सत्र महत्वपूर्ण गर्मी उत्पन्न करते हैं। P१० के साथ थर्मल स्थिति की निगरानी करें और डिवाइस के गर्म होने पर जेनरेशन स्पीड को कम करें।
प्रदर्शन की उम्मीदें
यहाँ यथार्थवादी अपेक्षाएं स्थापित करने के लिए अनुमानित बेंचमार्क दिए गए हैं (जेमा २बी आईएनटी४ पर मापा गया):
| डिवाइस श्रेणी | उदाहरण डिवाइस | टोकन/सेकंड | मॉडल लोड समय | रैम उपयोग |
|---|---|---|---|---|
| बजट | पिक्सेल ६ए | ~८-१२ टोकन/सेकंड | ~६-८सेकंड | ~२.५ जीबी |
| मिड-रेंज | पिक्सेल ८ | ~१५-२० टोकन/सेकंड | ~३-५सेकंड | ~२.५ जीबी |
| फ्लैगशिप | पिक्सेल ९ प्रो | ~२५-३५ टोकन/सेकंड | ~२-३सेकंड | ~२.५ जीबी |
| फ्लैगशिप (एनपीयू) | सैमसंग एस२४ अल्ट्रा | ~३०-४० टोकन/सेकंड | ~२-३सेकंड | ~२.५ जीबी |
ये अनुमानित आंकड़े हैं, वास्तविक प्रदर्शन प्रॉम्प्ट की लंबाई, बैकग्राउंड में चल रहे अन्य ऐप्स और थर्मल स्थिति पर निर्भर करता है।
सामान्य रूप से पढ़ने की गति लगभग ४ टोकन/सेकंड होती है, इसलिए बजट डिवाइस भी उपयोगकर्ता के पढ़ने की गति से तेज़ी से टेक्स्ट उत्पन्न कर सकते हैं, जिससे अनुभव बहुत सुचारू महसूस होता है।
सीमाएं और सावधानियां
डिवाइस-पर एलएलएम को पूरी तरह अपनाने से पहले इन वास्तविक चुनौतियों के बारे में जानें:
- मॉडल की सटीकता: एक २बी पैरामीटर वाला मॉडल क्लाउड-आधारित ७०बी+ मॉडल की तुलना में अधिक मतिभ्रम (हैलुसिनेट) करेगा। स्वास्थ्य या वित्तीय सुरक्षा से जुड़े संवेदनशील कार्यों के लिए हमेशा अस्वीकरण जोड़ें।
- डाउनलोड आकार: संपीड़ित होने पर भी मॉडल ~१.४ जीबी का होता है। इसके लिए आपके ऐप के ऑनबोर्डिंग फ्लो में एक समर्पित डाउनलोड चरण की आवश्यकता होती है, सीमित डेटा पैक वाले उपयोगकर्ताओं को इससे समस्या हो सकती है।
- डिवाइस अनुकूलता: व्यावहारिक रूप से, डिवाइस-पर एलएलएम केवल ६ जीबी+ रैम वाले उपकरणों (२०२० या उसके बाद जारी) पर ही अच्छे से काम करते हैं। पुराने उपकरणों के लिए आपको क्लाउड एपीआई या फ़ीचर गेटिंग जैसे बैकअप विकल्पों की आवश्यकता होगी।
- कॉन्टेक्स्ट विंडो सीमाएं: जेमा २बी डिफ़ॉल्ट रूप से ८१९२ टोकन का समर्थन करता है, लेकिन लंबे कॉन्टेक्स्ट इनफ़्रेंस को धीमा करते हैं और मेमोरी बढ़ाते हैं। चैट एप्लिकेशन्स के लिए सीमा में रहने के लिए पुरानी चैट प्रूनिंग लागू करें।
- पहला लॉन्च अनुभव: मॉडल लोडिंग स्क्रीन सबसे महत्वपूर्ण यूएक्स पल है। स्पष्ट प्रगति संकेतक, अनुमानित बचा हुआ समय दिखाएं और मॉडल बैकग्राउंड में लोड होने के दौरान उपयोगकर्ता को ऐप के अन्य हिस्सों का उपयोग करने की अनुमति दें।
निष्कर्ष
लाइटआरटी के माध्यम से स्थानीय रूप से जेमा चलाना मोबाइल एप्लिकेशन डिज़ाइन में एक बड़ा बदलाव है। यह डेवलपर्स को ऐसे अत्यधिक इंटरैक्टिव, बुद्धिमान सिस्टम बनाने का अधिकार देता है जो उपयोगकर्ता की गोपनीयता का सम्मान करते हैं, ऑफ़लाइन चलते हैं, और शून्य क्लाउड होस्टिंग लागत पर काम करते हैं।
यह तकनीक समझौतों से मुक्त नहीं है, मॉडल की सटीकता, डिवाइस अनुकूलता और डाउनलोड आकार वास्तविक बाधाएं हैं, लेकिन भोजन लॉगिंग, जर्नल लिखने, भाषा अनुवाद और व्यक्तिगत सहायकों जैसे उपयोग के मामलों के लिए, डिवाइस-पर एलएलएम पहले से ही एक व्यावहारिक, उत्पादन-तैयार डिज़ाइन पैटर्न हैं। नोमएआई जैसे प्रोजेक्ट साबित करते हैं कि मोबाइल एआई का भविष्य क्लाउड में नहीं, आपकी जेब में है।
