스크립트
00:00:00यह 35 बिलियन पैरामीटर वाला मॉडल सीधे मेरे iPhone पर चल रहा है। मैं 11 टोकन प्रति
00:00:06सेकंड जनरेट कर पा रहा हूँ। कुछ स्मार्ट इंजीनियरिंग के जरिए, जिसके लिए यह मॉडल कभी डिज़ाइन नहीं किया गया था,
00:00:11और इस वीडियो में मैं आपको दिखाऊँगा कि आप भी ऐसा कैसे कर सकते हैं। यहाँ जो मैं चला रहा हूँ, वह एक “Mixture of Experts” मॉडल है।
00:00:21इसमें 35 बिलियन पैरामीटर्स हैं, जो सामान्य 4-बिट फ़ाइल के रूप में लगभग 20 GB की होती है और इसे RAM में रहना पड़ता,
00:00:28लेकिन SSD से ज़रूरत के मुताबिक़ एक्सपर्ट्स को स्ट्रीम करने जैसी तकनीकों के कारण, जो वेट्स वास्तव में
00:00:33मेमोरी में रहने चाहिए, वे घटकर सिर्फ़ 1.4 GB रह जाते हैं। मैं समझाऊँगा कि यह सब कैसे काम करता है, और फिर
00:00:39हम iPhone के सेटअप प्रोसेस को देखेंगे। ज़्यादातर मॉडल पूरी तरह से RAM में रहते हैं, लेकिन Mixture of Experts
00:00:45मॉडल की बढ़िया बात यह है कि एक समय में इसका केवल छोटा सा हिस्सा ही एक्टिव रहता है। इसका मतलब है निष्क्रिय हिस्से
00:00:51SSD पर ही अपनी बारी का इंतज़ार कर सकते हैं। सीमित मेमोरी में बड़े मॉडल चलाने की चाल
00:00:56यह है कि एक्सपर्ट्स को तभी मेमोरी में स्ट्रीम किया जाए जब उनकी ज़रूरत हो। हम Qwen
00:01:023.5 का 35 बिलियन पैरामीटर वेरिएंट चला रहे हैं, और अंत में “A3B” का मतलब है कि किसी एक टोकन के लिए
00:01:10केवल 3 बिलियन पैरामीटर ही एक्टिव होते हैं। इसमें 40 लेयर्स हैं, जिनमें से प्रत्येक में 256 छोटे एक्सपर्ट्स और एक शेयर्ड एक्सपर्ट है।
00:01:19एक राउटर प्रति टोकन इनमें से 8 एक्सपर्ट्स को चुनता है, इसलिए एक सिंगल टोकन कुल 35 बिलियन में से
00:01:26केवल लगभग 3 बिलियन पैरामीटर ही चलाता है। अब यह पूरा मॉडल ही विभाजित है; आमतौर पर यह सब मेमोरी में रहता है, लेकिन यह
00:01:32वास्तव में एक iPhone में फिट नहीं होगा। इसके बजाय, जिन हिस्सों की हर टोकन को ज़रूरत होती है—जैसे एम्बेडिंग्स, अटेंशन, राउटर्स
00:01:39और शेयर्ड एक्सपर्ट—उन्हें केवल एक बार लोड किया जाता है और वे पूरे समय RAM में ही रहते हैं। और यह लगभग
00:01:441.4 GB है। और एक्सपर्ट्स (300 MB की 40 फ़ाइलें, कुल 12 GB) SSD पर रहते हैं। इसलिए हर टोकन के लिए
00:01:53अटेंशन GPU पर चलता है, फिर राउटर 8 एक्सपर्ट्स को चुनता है और इंजन उन 8 को सीधे SSD से
00:02:00GPU मेमोरी में रीड करता है और शेयर्ड एक्सपर्ट के साथ उन्हें चलाता है। यह उन 40 लेयर्स में से
00:02:06हर एक में होता है, यानी हर एक टोकन के लिए 320 छोटी री्ड्स। और अगर आप अटेंशन तकनीक से परिचित नहीं हैं,
00:02:14तो यह मॉडल का वह हिस्सा है जो बातचीत में अब तक की सभी बातों को पीछे मुड़कर देखता है और पता लगाता है
00:02:19कि अगले शब्द की भविष्यवाणी के लिए कौन से पिछले शब्द मायने रखते हैं। अटेंशन हर टोकन पर चलता है, चाहे
00:02:25कुछ भी हो, इसलिए इसे मेमोरी में ही रहना पड़ता है। एक्सपर्ट्स वह हिस्सा हैं जो अटेंशन द्वारा संदर्भ समझ लेने के बाद
00:02:31टोकन के बारे में वास्तविक विचार प्रक्रिया करते हैं। लेकिन चूँकि केवल 8 एक्सपर्ट्स का उपयोग होता है, हम बाकी को
00:02:36डिक्स (SSD) पर ही छोड़ सकते हैं। ऐप में कोई एक्सपर्ट कैश नहीं है; हर रीड ऑपरेटिंग सिस्टम से होकर गुज़रती है
00:02:42और iOS हाल ही में इस्तेमाल किए गए एक्सपर्ट्स को अपने पेज कैश में तब तक रखता है जब तक उसके पास अतिरिक्त RAM होती है।
00:02:49डेवलपर्स ने वास्तव में अपना खुद का 9.8 GB का कैश बनाया था और फिर उसे हटा दिया, जिससे परफॉर्मेंस 38% तेज़ हो गई,
00:02:55क्योंकि Mac या iPhone पर ऐप जो भी RAM लेता है, वह GPU और पेज कैश दोनों से छिन जाती है,
00:03:03और वह पेज कैश ही यहाँ ज़्यादातर काम कर रहा है। 11 टोकन प्रति सेकंड की गति पर, यदि हर एक्सपर्ट फ़्लैश मेमोरी से आता,
00:03:09तो फ़ोन को 5 GB प्रति सेकंड से अधिक की रीड स्पीड चाहिए होती, जबकि iPhone की फ़्लैश मेमोरी केवल 1.6 GB प्रति सेकंड ही करती है।
00:03:15इसलिए ज़्यादातर एक्सपर्ट्स उस RAM से आ रहे हैं जिसे OS हमारे लिए मैनेज कर रहा है। अगली ट्रिक है “टायर्ड क्वांटाइजेशन” (Tiered Quantization)।
00:03:22क्वांटाइजेशन मॉडल के वेट्स को कंप्रेस करता है ताकि वे कम जगह लें, लेकिन यह उनकी
00:03:29सटीकता को भी कम कर देता है और इसलिए बुद्धिमत्ता को प्रभावित करता है। लेकिन इस मॉडल के साथ लगभग 25%
00:03:35एक्सपर्ट्स ही लगभग 80% काम संभालते हैं। इसलिए एक्टिव एक्सपर्ट्स 4-बिट पर ही रहते हैं और कम इस्तेमाल होने वालों को
00:03:41घटाकर 2-बिट कर दिया जाता है, जिससे वे 44% छोटे हो जाते हैं। पूरी फ़ाइल 19 GB से घटकर 13 GB हो जाती है (34% छोटी),
00:03:50जिसका मतलब है कि इसका ज़्यादा हिस्सा उस पेज कैश में आ जाता है। मेरे iPhone 17 पर, मॉडल के “थिंकिंग मोड” में होने पर भी
00:03:57यह 11 टोकन प्रति सेकंड की गति से चलता है। हालाँकि, सिर्फ़ “Hello” कहने पर भी फ़ोन काफ़ी गरम हो जाता है;
00:04:03मुझे हाथ में फ़ोन की गर्मी महसूस हो रही थी, इसलिए इसका टेस्ट करते समय ध्यान रखें। सच कहूँ तो,
00:04:08मैं कुछ भी ज़्यादा जटिल टाइप करने से थोड़ा डर रहा हूँ क्योंकि यह शायद मेरे हाथ को ही पिघला दे!
00:04:14हम जो विशिष्ट इंजन चला रहे हैं, वह डैन वुड्स का “Flash MoE” नामक एक प्रोजेक्ट है। इसे MacBook के लिए लिखा गया था
00:04:19और इसका एक छोटा iOS पोर्ट है जिसे “Flash iOS” कहा जाता है, जो उसी इंजन को एक iPhone ऐप में रैप करता है;
00:04:26और यही मुझे इसे अपने फ़ोन पर चलाने की अनुमति देता है। मुझे शुरुआत में एक बग का भी सामना करना पड़ा जहाँ मॉडल की
00:04:31सोच एक लूप में अटक जाती थी। यह ठीक शुरू होता था और फिर लगभग 10 शब्दों के बाद यह हमेशा के लिए
00:04:35उन्हीं दो टोकन को दोहराने लगता था। इसे ठीक करने के लिए मैंने `async_pre_read_weight` नामक फ़ंक्शन को अपडेट किया ताकि यह
00:04:41प्रत्येक एक्सपर्ट की रीड की तुलना उसके खुद के साइज से करे। 2-बिट वाले एक्सपर्ट्स 4-बिट वाले एक्सपर्ट्स के साइज के आधे होते हैं,
00:04:48इसलिए फिक्स से पहले हर 2-बिट एक्सपर्ट साइज चेक में फेल हो जाता था और स्किप हो जाता था। मॉडल प्रभावी रूप से
00:04:54आधे एक्सपर्ट्स के साथ चल रहा था और इसलिए यह लूप करने लगता था। और दोस्तों, अगर आपको यह वीडियो पसंद आ रहा है, तो
00:04:59चैनल को सब्सक्राइब करके आप हमारी बड़ी मदद कर सकते हैं ताकि हम हर दिन मुफ़्त कंटेंट बनाते रहें। अब
00:05:05इसे अपने फ़ोन पर सेट करने के लिए, आपको रिपॉजिटरी को क्लोन करना होगा, मेरे द्वारा बताए गए फ़िक्स को
00:05:11`metal_infer/infer.m` में लागू करना होगा, Xcode प्रोजेक्ट को अपनी टीम और बंडल आईडी से लिंक करना होगा। इसके लिए आपको एक पेड Apple Developer
00:05:18अकाउंट की आवश्यकता होगी। फिर एक रिलीज बिल्ड बनाएं और इसे अपने iPhone पर इंस्टॉल करें। प्री-पैक्ड
00:05:24टायर्ड मॉडल डाउनलोड करें (जो लगभग 13 GB का है), इसे USB के जरिए ऐप में पुश करें (जिसमें लगभग सात मिनट
00:05:30लगेंगे), फ़ोन पर Flash MoE ऐप खोलें, मॉडल पर टैप करें और चैट करना शुरू करें। और अगर आप
00:05:36और भी तेज़ गति के लिए अपने Mac पर लोकल मॉडल चलाना चाहते हैं, तो अगला वीडियो देखें। मैं Better Stack से
00:05:43Warren हूँ, देखने के लिए आपका बहुत-बहुत धन्यवाद, और निश्चित रूप से, मैं आपसे अगले वीडियो में मिलूँगा!
커뮤니티 글
아직 글이 없습니다. 이 영상에 대한 첫 번째 글을 작성해 보세요!
이 영상에 대해 글쓰기