मैंने 12 साल पुराने Raspberry Pi पर लोकल LLM चलाया (यह वास्तव में काम कर गया!)

BBetter Stack
컴퓨터/소프트웨어가전제품/카메라

Transcript

00:00:00यह पहली पीढ़ी का रास्पबेरी पाई है, जो 2014 में आया था।
00:00:05इसमें 700 MHz सिंगल-कोर प्रोसेसर और 512 MB रैम है।
00:00:12आज के मानकों के हिसाब से, यह मूल रूप से एक कैलकुलेटर है।
00:00:16लेकिन आज, हम देखेंगे कि क्या हम इस 12 साल पुराने हार्डवेयर को
00:00:21स्थानीय रूप से इस पर एक लार्ज लैंग्वेज मॉडल चलाकर इसकी अंतिम सीमा तक धकेल सकते हैं।
00:00:26इस वीडियो में, मैं आपको दिखाऊंगा कि वह कौन सा छोटा मॉडल है जिसे आप रास्पबेरी पाई पर चला सकते हैं,
00:00:30और हम देखेंगे कि यह कैसा प्रदर्शन करता है, और मैं आपको दिखाऊंगा कि सभी आवश्यक डिपेंडेंसी कैसे इंस्टॉल करें
00:00:35ताकि आप इसे स्वयं आज़मा सकें।
00:00:37इसमें बहुत मज़ा आने वाला है, तो चलिए शुरू करते हैं।
00:00:40सच कहूं तो, मुझे नहीं लगा था कि इस आर्किटेक्चर के लिए
00:00:47इतना हल्का मॉडल ढूंढना संभव होगा।
00:00:49लेकिन कुछ शोध के बाद, मुझे वास्तव में एक उम्मीदवार मिल गया।
00:00:52मिलिए Falcon H1 Tiny से।
00:00:54यह सिर्फ 90 मिलियन पैरामीटर्स वाला एक अविश्वसनीय रूप से कॉम्पैक्ट मॉडल है।
00:00:59इसे अबू धाबी में टेक्नोलॉजी इनोवेशन इंस्टीट्यूट द्वारा विकसित किया गया था
00:01:03विशेष रूप से लैंग्वेज मॉडलिंग की चरम निचली सीमाओं का पता लगाने के लिए।
00:01:08लेकिन वे इतना छोटा मॉडल कैसे बना सके?
00:01:10क्या इसके पीछे कोई तकनीकी जादू है?
00:01:13खैर, वास्तव में ऐसा नहीं है।
00:01:14वे मूल रूप से उसी हाइब्रिड ट्रांसफार्मर प्लस मांबा आर्किटेक्चर का उपयोग कर रहे हैं
00:01:19जिसे आईबीएम जैसी कंपनियों ने अपने छोटे ग्रेनाइट 4 मॉडल के लिए इस्तेमाल किया था।
00:01:24जिस पर मैंने एक वीडियो भी बनाया है अगर आप उसे देखना चाहें।
00:01:27लेकिन यहाँ एक बात है।
00:01:28इस मॉडल को मेमोरी में सफलतापूर्वक फिट करने के लिए, हमें क्वांटिज़ेशन के बारे में बात करनी होगी।
00:01:33अब, फाल्कन मॉडल 2-बिट, 4-बिट और 8-बिट वर्ज़न में उपलब्ध हैं।
00:01:38अब, आप अल्ट्रा-लीन IQ या महत्व क्वांटिज़ेशन आज़माने के लिए ललचा सकते हैं।
00:01:43लेकिन यहाँ एक पेंच है।
00:01:45वे नए तरीके एक जटिल बिट मैनिपुलेशन पर भरोसा करते हैं
00:01:49जिसे कुशल होने के लिए आधुनिक CPU इंस्ट्रक्शंस की आवश्यकता होती है।
00:01:52हमारे रास्पबेरी पाई के पुराने ARMv6 चिप पर, यह काम नहीं करेगा।
00:01:57इसलिए इसके बजाय, हमें पुराने स्कूल के Q4 मॉडल के साथ जाना होगा
00:02:01जो हमारे मामले के लिए गोल्ड स्टैंडर्ड है।
00:02:04यह एक मध्यम आकार की लेगेसी क्वांटिज़ेशन पद्धति का उपयोग करता है
00:02:07जिसे पाई का प्रोसेसर वास्तव में बिना अटके संभाल सकता है।
00:02:11यह लॉजिक को बरकरार रखते हुए हमें सबसे अच्छा इंटेलिजेंस प्रति मेगाबाइट अनुपात देता है।
00:02:17लेकिन इस मॉडल को पहली पीढ़ी के रास्पबेरी पाई पर चलाना कोई मामूली काम नहीं है।
00:02:22चूंकि पाई ARMv6 आर्किटेक्चर का उपयोग करता है,
00:02:26इसमें आधुनिक NEON इंस्ट्रक्शंस की कमी है जिस पर लगभग सभी AI लाइब्रेरी निर्भर करती हैं।
00:02:31लेकिन सौभाग्य से, llama.cpp है जिसका उपयोग हम इंफेरेंस चलाने के लिए कर सकते हैं।
00:02:36लेकिन ऐसा करने के लिए, हमें इसके बाइनरी को विशेष रूप से हमारे ARMv6 के लिए कंपाइल करना होगा।
00:02:42और यदि आप इसे सीधे पाई पर कंपाइल करने का प्रयास करेंगे,
00:02:45तो कंपाइलर को समाप्त करने में शायद 18 घंटे लगेंगे।
00:02:49वह भी तब, जब यह पहले आउट-ऑफ-मेमोरी एरर से क्रैश न हो जाए।
00:02:53तो इसे बायपास करने के लिए, हमें थोड़ा रचनात्मक होना होगा।
00:02:56हमें doc_cross का उपयोग करके अपने लैपटॉप पर इन बाइनरी को पहले से क्रॉस-कंपाइल करना होगा,
00:03:02विशेष रूप से VFP मैथ यूनिट सक्षम के साथ ARMv6 इंस्ट्रक्शन सेट को लक्षित करते हुए,
00:03:08और फिर उन्हें SSH के माध्यम से कॉपी करना होगा ताकि हम सीधे इंफेरेंस शुरू कर सकें।
00:03:13तो हम अभी बिल्कुल यही करने जा रहे हैं।
00:03:15तो सबसे पहले, हमें रास्पबेरी पाई इमेजर का उपयोग करके अपने पाई पर सबसे हल्का OS फ्लैश करना होगा।
00:03:22और केवल 512 मेगाबाइट रैम वाले बोर्ड के लिए, हर मेगाबाइट मायने रखता है।
00:03:28इसलिए मैं रास्पबेरी पाई OS लाइट, 32-बिट वर्ज़न के साथ जा रहा हूँ,
00:03:32क्योंकि इसमें डेस्कटॉप इंटरफ़ेस नहीं है और यह मेमोरी के बहुत कम हिस्से पर चलता है
00:03:38जो मानक OS उपयोग करता है, जिससे मॉडल के चलने के लिए हमारी लगभग पूरी रैम उपलब्ध रहती है।
00:03:44और यहाँ एक और महत्वपूर्ण नोट है, उन्नत सेटिंग्स का उपयोग करना सुनिश्चित करें
00:03:47अपने वाई-फाई को पहले से कॉन्फ़िगर करने और SSH सक्षम करने के लिए।
00:03:51क्योंकि इन पुराने बोर्डों पर, सब कुछ दूरस्थ रूप से प्रबंधित करना बहुत आसान है,
00:03:55ताकि आपको उस सुस्त लोकल टर्मिनल से लड़ना न पड़े।
00:03:58अब, एक बार जब पाई बूट हो जाए और हमने इसमें SSH कर लिया हो, तो हमें ARMv6 की समस्या को हल करना होगा।
00:04:05इसलिए यदि हमने यहीं llama CPP को कंपाइल करने की कोशिश की,
00:04:08तो पाई सचमुच अगला डेढ़ दिन सिर्फ हेडर्स को प्रोसेस करने में ही बिता देगा।
00:04:13इसलिए इसके बजाय, हम कंप्यूटर की गति बढ़ाने और समय बचाने के लिए इसे एक नियमित लैपटॉप पर करेंगे।
00:04:18तो चलिए llama CPP का सोर्स कोड क्लोन करते हैं और एक समर्पित बिल्ड
00:04:23डायरेक्टरी बनाते हैं जहाँ हम अपना बिल्ड स्टोर करेंगे जिसे हम अपने रास्पबेरी पाई पर उपयोग करेंगे।
00:04:28अब, यहाँ एक और समस्या है।
00:04:29मेरा मैक ARMv8 का उपयोग कर रहा है, जो कि 64-बिट वर्ज़न है, न कि 32-बिट ARMv6।
00:04:37और उनके इंस्ट्रक्शन सेट अलग-अलग हैं।
00:04:40इसलिए विशेष रूप से पाई के लिए बाइनरी कंपाइल करने के लिए, हमें doccross का उपयोग करना होगा,
00:04:45जो कि एक क्रॉस कंपाइलर टूलचेन है जो मेरे मैक पर चलता है,
00:04:48लेकिन विशेष रूप से पाई के पुराने आर्किटेक्चर के लिए बाइनरी बनाता है।
00:04:53इसके बाद, हमें बिल्ड को कॉन्फ़िगर करना होगा।
00:04:55और यहीं पर हमें बेहद सटीक होने की जरूरत है।
00:04:58तो हमें कुछ बहुत ही विशिष्ट फ्लैग्स पास करने होंगे।
00:05:00सबसे पहले, हमें एक सिंगल पोर्टेबल बाइनरी बनाने के लिए shared libs को बंद करना होगा।
00:05:05और फिर हमें NEON को बंद करना होगा क्योंकि हमारे पाई में उन आधुनिक मैथ इंस्ट्रक्शंस की कमी है।
00:05:10और हमें अपनी मेमोरी फुटप्रिंट को जितना संभव हो सके कम रखने के लिए OpenMP को डिसेबल करना होगा।
00:05:15हम अनिवार्य रूप से हर आधुनिक विलासिता को हटा रहे हैं
00:05:18यह सुनिश्चित करने के लिए कि बाइनरी हमारे पुराने स्कूल के पाई बोर्ड के साथ संगत हो।
00:05:22और अब अगर हम बिल्ड दबाते हैं, तो लगभग दो मिनट में, हमारे पास एक पूरी तरह से
00:05:26कंपाइल किया हुआ ऑप्टिमाइज़्ड llama completion बाइनरी हमारे पाई बोर्ड पर कॉपी होने के लिए तैयार होगा।
00:05:31और अब मैं नेटवर्क के माध्यम से सीधे अपने पाई से जुड़ने के लिए SSH का उपयोग करूंगा
00:05:35और पाई पर एक नई डायरेक्टरी बनाऊंगा और फिर हमारे कस्टम बिल्ड बाइनरी को उस पर कॉपी करने के लिए SCP का उपयोग करूंगा।
00:05:42और यहाँ एक आखिरी काम हमें करना है।
00:05:44आइए फाल्कन के 2-बिट, 4-बिट और 8-बिट लेगेसी क्वांटिज़्ड मॉडल डाउनलोड करें,
00:05:50क्योंकि हम उन सभी का क्रमवार परीक्षण करेंगे।
00:05:53और फिर उन्हें मॉडल्स फ़ोल्डर में नेटवर्क के माध्यम से एक-एक करके हमारे पाई पर कॉपी करें।
00:05:58अब यहाँ मज़ेदार हिस्सा आता है।
00:05:59आइए अपने पाई पर चलते हैं और अपना पहला इंफेरेंस टेस्ट निष्पादित करते हैं।
00:06:03हम सबसे आक्रामक कंप्रेशन, 2-बिट क्वांटिज़्ड मॉडल के साथ शुरुआत करेंगे।
00:06:07और यहाँ हमें यह लंबा कमांड चलाने की जरूरत है।
00:06:10और मूल रूप से मैं यहाँ एक साधारण
00:06:13“नमस्ते, आप कैसे हैं?” के साथ इसे प्रॉम्प्ट कर रहा हूँ और आउटपुट को 32 टोकन तक सीमित कर रहा हूँ।
00:06:18और हम बिल्कुल एक थ्रेड निर्दिष्ट कर रहे हैं क्योंकि, हमारे पास बस इतना ही है।
00:06:22और हम रैम के हर संभव बाइट को बचाने के लिए कॉन्टेक्स्ट साइज को 128 टोकन पर छोटा रख रहे हैं।
00:06:29लेकिन यहाँ सबसे महत्वपूर्ण फ्लैग no-mmap है।
00:06:32आम तौर पर, llama CPP मॉडल लोड करने के लिए मेमोरी मैपिंग का उपयोग करता है, जो हाई-एंड GPU के लिए बहुत अच्छा है,
00:06:38लेकिन हमारे पाई बोर्ड के लिए यह एक दुःस्वप्न है।
00:06:41सिर्फ 512 मेगाबाइट रैम वाले 32-बिट सिस्टम पर,
00:06:45mmap विफल हो सकता है यदि उसे एड्रेस स्पेस का लगातार ब्लॉक नहीं मिलता है।
00:06:50इसलिए इसे डिसेबल करके, हम मॉडल को सीधे हीप (heap) में लोड करने के लिए मजबूर करते हैं,
00:06:55जिससे हमें अपनी सीमित मेमोरी पर बहुत अधिक स्थिर नियंत्रण मिलता है।
00:06:58और इसी के साथ, चलिए कमांड चलाते हैं।
00:07:00और ये रहा, हमारा पहला टोकन।
00:07:03जैसा कि हम यहाँ देख सकते हैं, 2-बिट वर्ज़न बहुत संघर्ष कर रहा है।
00:07:08सबसे पहले, हम देख सकते हैं कि यह हर तीन सेकंड में एक टोकन प्रोसेस कर रहा है,
00:07:14जो कि एक पुराने रास्पबेरी पाई बोर्ड पर अपेक्षित है।
00:07:18लेकिन अधिक महत्वपूर्ण बात यह है कि उत्तर बिल्कुल बकवास है।
00:07:2190 मिलियन पैरामीटर वाले मॉडल पर, वेट्स इतने संकुचित होते हैं
00:07:25कि भाषाई तर्क मूल रूप से ढह गया है।
00:07:28यह बमुश्किल समझने लायक है, लेकिन तकनीकी रूप से यह काम कर रहा है।
00:07:32तो अब देखते हैं कि क्या होता है अगर हम इसे 4-बिट मॉडल से बदलते हैं।
00:07:35और देखिए, अब हमें वापस एक सुसंगत अभिवादन मिलता है।
00:07:40तो यह एक सफलता है।
00:07:42अब हमारे पास वास्तव में पाई पर स्थानीय रूप से चलने वाला एक AI मॉडल है
00:07:47और वह हमारे प्रॉम्प्ट्स का तार्किक रूप से जवाब दे रहा है।
00:07:49तो बहुत बढ़िया!
00:07:50अब इसे और आगे ले चलते हैं।
00:07:53देखते हैं कि क्या पाई 8-बिट मॉडल को संभाल सकता है।
00:07:56और इस बार मैं इससे कुछ अधिक समझदारी भरा सवाल पूछने जा रहा हूँ,
00:07:59जैसे कि अल्बानिया की राजधानी क्या है?
00:08:02और खैर, यह गलत है क्योंकि अल्बानिया की राजधानी तिराना है
00:08:08और यह स्पष्ट रूप से तथ्यात्मक रूप से सही नहीं है।
00:08:10लेकिन अगर मैं पूछता हूँ कि बेल्जियम की राजधानी क्या है, तो यह सही जवाब देता है।
00:08:15तो यह हमें कुछ बहुत दिलचस्प दिखा रहा है।
00:08:17ऐसा लगता है कि 90 मिलियन पैरामीटर की कमी अपनी कीमत के साथ आती है।
00:08:22इसके पास बड़े, अधिक लोकप्रिय देशों के बारे में सटीक जानकारी हो सकती है,
00:08:26लेकिन कम ज्ञात देशों और शायद कम ज्ञात विषयों के बारे में जानकारी का अभाव है।
00:08:31और ज्ञान की प्रकृति ही ऐसी है।
00:08:33उन 90 मिलियन पैरामीटर्स के भीतर आप सीमित मात्रा में ही ज्ञान फिट कर सकते हैं।
00:08:38लेकिन फिर भी, परिणाम बहुत शानदार है।
00:08:41और यह इस बात की पुष्टि है कि हाँ, वास्तव में ऐसे AI मॉडल मौजूद हैं जो काफी छोटे
00:08:46और हल्के हैं कि 12 साल पुराने रास्पबेरी पाई पर चल सकें।
00:08:50क्या यह तेज़ है?
00:08:51बिल्कुल नहीं।
00:08:52क्या यह सटीक है?
00:08:53यह शायद नहीं हो सकता।
00:08:54क्या आपको इसे प्रोडक्शन में इस्तेमाल करना चाहिए?
00:08:55शायद नहीं।
00:08:57जब तक कि आप एक बहुत, बहुत, बहुत, बहुत धीमा रोबोट बनाना न चाहें।
00:09:02लेकिन सबसे महत्वपूर्ण बात यह है कि अब हम जानते हैं कि यह सैद्धांतिक रूप से संभव है।
00:09:06तो मूल रूप से, मैं इस वीडियो में बस यही साबित करना चाहता था।
00:09:09और सच कहूँ तो, इस प्रयोग में बहुत मज़ा आया।
00:09:13तो ये रहा दोस्तों।
00:09:14ये Falcon H1 Tiny मॉडल हैं।
00:09:17शायद वर्तमान में मौजूद सबसे छोटे AI मॉडल।
00:09:20और अब हम जानते हैं कि वे वास्तव में इतने छोटे हैं कि पहली पीढ़ी के रास्पबेरी पाई पर चल सकते हैं,
00:09:25जो कि बहुत शानदार है।
00:09:27मैं यह जश्न मनाना बंद नहीं कर सकता कि यह तथ्य कितना अच्छा है।
00:09:30हालाँकि इसका व्यावहारिक कार्यान्वयन बेकार है, फिर भी यह शानदार है।
00:09:35तो दोस्तों मुझे बताएं, अगर आपके पास कोई मज़ेदार विचार,
00:09:37टिप्पणी या राय है जो आपने अभी देखा उसके बारे में।
00:09:40उन्हें नीचे कमेंट सेक्शन में पोस्ट करें।
00:09:42और दोस्तों, अगर आपको इस प्रकार के तकनीकी विश्लेषण पसंद हैं,
00:09:45तो कृपया वीडियो के नीचे उस लाइक बटन को दबाकर मुझे बताएं।
00:09:49और हमारे चैनल को सब्सक्राइब करना भी न भूलें।
00:09:51मैं Better Stack से Andris हूँ, और मैं आपको अगले वीडियो में मिलूँगा।

Key Takeaway

12 साल पुराने रास्पबेरी पाई पर ARMv6 क्रॉस-कंपिलेशन, रास्पबेरी पाई OS लाइट और 4-बिट Q4 लेगेसी क्वांटिज़ेशन का उपयोग करके 90 मिलियन पैरामीटर वाले Falcon H1 Tiny मॉडल को स्थानीय रूप से सफलतापूर्वक चलाया जा सकता है।

Highlights

  • 2014 में आया पहली पीढ़ी का रास्पबेरी पाई 700 MHz सिंगल-कोर प्रोसेसर और 512 MB रैम से लैस है।

  • अबू धाबी के टेक्नोलॉजी इनोवेशन इंस्टीट्यूट द्वारा विकसित Falcon H1 Tiny मॉडल में केवल 90 मिलियन पैरामीटर्स हैं।

  • पुराने ARMv6 आर्किटेक्चर पर आधुनिक NEON इंस्ट्रक्शंस और बिट मैनिपुलेशन न होने के कारण नए IQ क्वांटिज़ेशन के बजाय पारंपरिक Q4 क्वांटिज़ेशन का उपयोग आवश्यक है।

  • रास्पबेरी पाई पर सीधे कंपाइल करने में लगने वाले 18 घंटे के समय और आउट-ऑफ-मेमोरी क्रैश से बचने के लिए doccross टूलचेन की मदद से लैपटॉप पर बाइनरी को क्रॉस-कंपाइल किया जाता है।

  • मेमोरी मैपिंग (mmap) को डिसेबल करके मॉडल को सीधे हीप (heap) में लोड करने से 32-बिट सिस्टम पर एड्रेस स्पेस की कमी के कारण होने वाले क्रैश रुक जाते हैं।

Timeline

हार्डवेयर सीमाएं और Falcon H1 Tiny मॉडल की विशेषताएं

  • पहली पीढ़ी का रास्पबेरी पाई 700 MHz सिंगल-कोर प्रोसेसर और 512 MB रैम के साथ आता है।
  • अबू धाबी के टेक्नोलॉजी इनोवेशन इंस्टीट्यूट ने चरम निचली सीमाओं की जांच के लिए 90 मिलियन पैरामीटर वाला Falcon H1 Tiny मॉडल बनाया है।
  • यह छोटा मॉडल आईबीएम के ग्रेनाइट 4 की तरह हाइब्रिड ट्रांसफार्मर प्लस मांबा आर्किटेक्चर पर काम करता है।

2014 के इस पुराने हार्डवेयर को आज के मानकों के अनुसार एक कैलकुलेटर माना जा सकता है। इस पर स्थानीय रूप से लार्ज लैंग्वेज मॉडल चलाने के लिए अत्यधिक छोटे मॉडल की आवश्यकता होती है। Falcon H1 Tiny इसी आवश्यकता को पूरा करता है। यह मॉडल बिना किसी जटिल तकनीकी जादू के केवल अपने विशिष्ट आर्किटेक्चर के कारण इतना कॉम्पैक्ट बनने में सक्षम हुआ है।

क्वांटिज़ेशन पद्धति का चयन और आर्किटेक्चर की चुनौतियाँ

  • आधुनिक अल्ट्रा-लीन IQ क्वांटिज़ेशन विधियां पुराने ARMv6 चिप पर काम नहीं करती हैं।
  • रास्पबेरी पाई के प्रोसेसर के लिए पुरानी Q4 क्वांटिज़ेशन पद्धति गोल्ड स्टैंडर्ड है।
  • Q4 मॉडल लॉजिक को बरकरार रखते हुए सबसे अच्छा इंटेलिजेंस प्रति मेगाबाइट अनुपात प्रदान करता है।

नए क्वांटिज़ेशन तरीके जटिल बिट मैनिपुलेशन पर भरोसा करते हैं जिसके लिए आधुनिक CPU इंस्ट्रक्शंस की आवश्यकता होती है। रास्पबेरी पाई का प्रोसेसर इन इंस्ट्रक्शंस को संभालने में सक्षम नहीं है। इसलिए एक मध्यम आकार की लेगेसी क्वांटिज़ेशन पद्धति का चयन किया जाता है ताकि प्रोसेसर बिना अटके काम कर सके।

क्रॉस-कंपिलेशन रणनीति और पर्यावरण तैयार करना

  • ARMv6 आर्किटेक्चर में आधुनिक AI लाइब्रेरी के लिए आवश्यक NEON इंस्ट्रक्शंस की कमी होती है।
  • रास्पबेरी पाई पर सीधे कंपाइल करने में लगभग 18 घंटे का समय लग सकता है या आउट-ऑफ-मेमोरी एरर आ सकता है।
  • मैमरी बचाने के लिए डेस्कटॉप इंटरफ़ेस के बिना आने वाले रास्पबेरी पाई OS लाइट 32-बिट वर्ज़न का उपयोग किया जाता है।

इंफेरेंस चलाने के लिए llama.cpp का उपयोग किया जाता है लेकिन इसकी बाइनरी को ARMv6 के लिए विशेष रूप से कंपाइल करना पड़ता है। पाई बोर्ड पर ही कंपाइल करने के बजाय लैपटॉप पर doc_cross का उपयोग करके क्रॉस-कंपाइल करना एक कुशल विकल्प है। OS लाइट का उपयोग करने से डेस्कटॉप इंटरफ़ेस न होने के कारण रैम का अधिकतम हिस्सा मॉडल के लिए खाली बचता है। रिमोट मैनेजमेंट को आसान बनाने के लिए SSH और वाई-फाई को पहले से कॉन्फ़िगर किया जाता है।

लैपटॉप पर बाइनरी का कस्टम बिल्ड बनाना

  • मैक के 64-बिट ARMv8 और पाई के 32-बिट ARMv6 इंस्ट्रक्शन सेट अलग होने के कारण doccross टूलचेन आवश्यक है।
  • बिल्ड कॉन्फ़िगरेशन के दौरान shared libs, NEON और OpenMP को पूरी तरह से डिसेबल किया जाता है।
  • तैयार की गई बाइनरी और क्वांटिज़्ड मॉडल्स को SCP के माध्यम से नेटवर्क पर रास्पबेरी पाई में स्थानांतरित किया जाता है।

सिस्टम की गति बढ़ाने के लिए कंपिलेशन का काम लैपटॉप पर किया जाता है। कंपाइल करते समय पोर्टेबल बाइनरी बनाने के लिए shared libs को बंद किया जाता है। मेमोरी फुटप्रिंट को न्यूनतम रखने के लिए OpenMP को हटाया जाता है। यह सटीक फ्लैग्स हर आधुनिक विलासिता को हटाकर बाइनरी को पुराने हार्डवेयर के अनुकूल बनाते हैं। दो मिनट में बिल्ड तैयार होने के बाद इसे पाई पर भेज दिया जाता है।

इंफेरेंस टेस्ट के परिणाम और मॉडल का व्यावहारिक मूल्यांकन

  • no-mmap फ्लैग का उपयोग मॉडल को सीधे हीप (heap) में लोड करने के लिए मजबूर करता है जिससे सीमित मेमोरी स्थिर रहती है।
  • 2-बिट क्वांटिज़्ड मॉडल प्रति तीन सेकंड में एक टोकन प्रोसेस करता है लेकिन इसका भाषाई तर्क पूरी तरह ढह जाता है।
  • 4-बिट और 8-बिट मॉडल तार्किक और सुसंगत उत्तर देने में सक्षम हैं लेकिन उनकी तथ्यात्मक सटीकता सीमित है।

512 MB रैम वाले 32-बिट सिस्टम पर mmap विफल हो सकता है क्योंकि उसे लगातार एड्रेस स्पेस नहीं मिलता। हीप का उपयोग करके इस समस्या को हल किया जाता है। परीक्षण में पाया गया कि 2-बिट मॉडल का आउटपुट बकवास था क्योंकि वेट्स बहुत अधिक संकुचित थे। 4-बिट मॉडल ने सही प्रतिक्रिया दी। 8-बिट मॉडल ने बेल्जियम की राजधानी का सही उत्तर दिया लेकिन अल्बानिया जैसी कम लोकप्रिय श्रेणियों में गलत जानकारी दी, जो दर्शाती है कि 90 मिलियन पैरामीटर्स में सीमित ज्ञान ही समा सकता है। यह व्यवस्था उत्पादन के लिए उपयुक्त नहीं है लेकिन सैद्धांतिक रूप से काम करती है।

Community Posts

View all posts