लार्ज लैंग्वेज मॉडल (एलएलएम) में "L" बड़े पैमाने पर दिखने का सुझाव देता है, लेकिन असल ज़िंदगी में बारीकियां ज़्यादा अहमियत रखती हैं. कुछ एलएलएम में खरबों पैरामीटर होते हैं, जबकि अन्य एलएलएम, बहुत कम पैरामीटर के साथ असरदार तरीके से काम करते हैं.
असल दुनिया के कुछ उदाहरणों और अलग-अलग मॉडल साइज़ के व्यावहारिक नतीजों पर एक नज़र डालें.
एलएलएम के साइज़ और साइज़ की क्लास
वेब डेवलपर के तौर पर, हम संसाधन के साइज़ को डाउनलोड साइज़ के तौर पर देखते हैं. किसी मॉडल के दस्तावेज़ में दर्ज साइज़, इसके बजाय इसके पैरामीटर की संख्या को दिखाता है. उदाहरण के लिए, Gemma 2B दो अरब पैरामीटर के साथ जेमा को दिखाता है.
एलएलएम में लाखों, करोड़ों, अरबों या खरबों पैरामीटर हो सकते हैं.
बड़े एलएलएम, अपने छोटे एलएलएम की तुलना में ज़्यादा पैरामीटर इस्तेमाल करते हैं. इसलिए, उन्हें भाषा के ज़्यादा मुश्किल कनेक्शन को कैप्चर करने में मदद मिलती है. साथ ही, उनकी मदद से छोटी-छोटी समस्याओं को भी हल किया जा सकता है. उन्हें अक्सर बड़े डेटासेट की मदद से भी ट्रेनिंग दी जाती है.
आपने देखा होगा कि कुछ मॉडल साइज़, जैसे कि 2 अरब या 7 अरब आम होते हैं. उदाहरण के लिए, Gemma 2B, Gemma 7B या Mistral 7B. मॉडल साइज़ क्लास अनुमानित ग्रुप होते हैं. उदाहरण के लिए, Gemma 2B में करीब दो अरब पैरामीटर हैं. हालांकि, इसमें पूरी तरह से शामिल नहीं हैं.
मॉडल साइज़ क्लास से, एलएलएम की परफ़ॉर्मेंस का आकलन किया जा सकता है. इन्हें बॉक्सिंग में वज़न वाली क्लास की तरह देखें: एक ही साइज़ की क्लास के मॉडल की तुलना ज़्यादा की जा सकती है. दो 2B मॉडल की परफ़ॉर्मेंस एक जैसी होनी चाहिए.
हालांकि, छोटा मॉडल, कुछ खास टास्क के लिए बड़े मॉडल की तरह ही काम कर सकता है.
![HuggingFace मॉडल के साइज़ के चेकबॉक्स का स्क्रीनशॉट.](https://web.dev/static/articles/llm-sizes/image/model-sizes-hugging-face.png?authuser=6&hl=hi)
हालांकि, सबसे नई आधुनिक एलएलएम, जैसे कि GPT-4 और Gemini Pro या Ultra के मॉडल साइज़ के बारे में हमेशा जानकारी नहीं दी जाती, लेकिन ऐसा माना जाता है कि ये करोड़ों या खरबों पैरामीटर हैं.
सभी मॉडल अपने नाम में पैरामीटर की संख्या नहीं दिखाते. कुछ मॉडल की वर्शन संख्या सफ़िक्स होती है. उदाहरण के लिए, Gemini 1.5 Pro, मॉडल के 1.5 वर्शन (इसके बाद के वर्शन) को दिखाता है.
एलएलएम?
कौनसा मॉडल, एलएलएम के हिसाब से बहुत छोटा होता है? एआई (AI) और एमएल कम्यूनिटी के बीच एलएलएम की परिभाषा कुछ हद तक तरल हो सकती है.
कुछ मॉडल, अरबों पैरामीटर वाले सबसे बड़े मॉडल को ही एलएलएम मानते हैं. वहीं, DistilBERT जैसे छोटे मॉडल को सामान्य NLP मॉडल माना जाता है. अन्य मॉडल में एलएलएम के हिसाब से छोटे, लेकिन असरदार मॉडल शामिल होते हैं, जैसे कि DistilBERT.
डिवाइस पर मौजूद इस्तेमाल के उदाहरणों के लिए, छोटे एलएलएम
अनुमान लगाने के लिए, बड़े एलएलएम को बहुत ज़्यादा स्टोरेज और बहुत ज़्यादा कंप्यूट पावर की ज़रूरत होती है. उन्हें खास हार्डवेयर (जैसे कि TPU) वाले खास सर्वर पर चलाना होता है.
वेब डेवलपर के तौर पर, हमारी दिलचस्पी यह है कि कोई मॉडल इतना छोटा है कि उसे डाउनलोड किया जा सके और उपयोगकर्ता के डिवाइस पर चलाया जा सके.
लेकिन, इस सवाल का जवाब देना मुश्किल है! फ़िलहाल, ऐसा कोई तरीका नहीं है कि आप यह जान पाएं कि "यह मॉडल ज़्यादातर मिड-रेंज डिवाइसों पर काम कर सकता है", कई वजहों से:
- डिवाइस की मेमोरी, जीपीयू/सीपीयू के स्पेसिफ़िकेशन वगैरह के हिसाब से, डिवाइस की क्षमताएं अलग-अलग होती हैं. कम कीमत वाला Android फ़ोन और NVIDIA® RTX लैपटॉप, दोनों में काफ़ी अंतर है. आपके पास कुछ डेटा पॉइंट हो सकते हैं, जो बताते हैं कि आपके उपयोगकर्ताओं के पास कौनसे डिवाइस हैं. वेब ऐक्सेस करने के लिए इस्तेमाल किए जाने वाले, बेसलाइन डिवाइस की फ़िलहाल कोई परिभाषा नहीं है.
- जिस मॉडल या फ़्रेमवर्क में यह चलता है उसे कुछ हार्डवेयर पर चलाने के लिए ऑप्टिमाइज़ किया जा सकता है.
- प्रोग्राम के हिसाब से, अपने-आप होने वाली प्रोसेस के ज़रिए यह तय नहीं किया जा सकता कि किसी एलएलएम को डाउनलोड करके, किसी खास डिवाइस पर चलाया जा सकता है या नहीं. किसी डिवाइस की डाउनलोड करने की क्षमता दूसरी चीज़ों पर निर्भर करती है कि जीपीयू में कितनी वीआरएम है.
हालांकि, हमारे पास काफ़ी अनुभव है: आज के समय में, कुछ लाख से लेकर करोड़ों पैरामीटर वाले कुछ मॉडल, उपभोक्ता-ग्रेड के डिवाइस पर ब्राउज़र में ही चल सकते हैं.
उदाहरण के लिए:
- MediaPipe LLM Infaence API के साथ Gemma 2B (यहां तक कि सिर्फ़ सीपीयू वाले डिवाइसों के लिए भी सही है). इसे आज़माएं.
- Transformers.js का इस्तेमाल करके DistilBERT चुनें.
यह एक नवजात फ़ील्ड है. इसमें बदलाव होने की उम्मीद की जा सकती है:
- WebAssembly और WebGPU में किए गए इनोवेशन की मदद से, WebGPU ज़्यादा लाइब्रेरी, नई लाइब्रेरी, और ऑप्टिमाइज़ेशन में काम करने की सुविधा देता है. इससे उपयोगकर्ता के डिवाइस में, अलग-अलग साइज़ के एलएलएम बेहतर तरीके से चलाने की ज़रूरत होती है.
- उम्मीद है कि छोटे और बेहतर परफ़ॉर्म करने वाले एलएलएम, छोटा करने वाली तकनीकों का इस्तेमाल करके तेज़ी से सामान्य होंगे.
छोटे एलएलएम पर ध्यान देने वाली बातें
छोटे एलएलएम का इस्तेमाल करते समय, आपको परफ़ॉर्मेंस और डाउनलोड के साइज़ को ध्यान में रखना चाहिए.
परफ़ॉर्मेंस
किसी भी मॉडल की क्षमता आपके इस्तेमाल के उदाहरण पर निर्भर करती है! आपके इस्तेमाल के उदाहरण के हिसाब से छोटा एलएलएम, सामान्य एलएलएम से बेहतर परफ़ॉर्म कर सकता है.
हालांकि, एक ही मॉडल फ़ैमिली में, छोटे एलएलएम अपने बड़े एलएलएम की तुलना में कम कम क्षमता वाले होते हैं. आम तौर पर, छोटे एलएलएम का इस्तेमाल करते समय, आपको प्रॉम्प्ट इंजीनियरिंग से जुड़े कुछ और काम करने होंगे.
![Chrome DevTools नेटवर्क पैनल का स्क्रीनशॉट.](https://web.dev/static/articles/llm-sizes/image/performance.png?authuser=6&hl=hi)
सोर्स: HuggingFace Open LLM लीडरबोर्ड, अप्रैल 2024
डाउनलोड आकार
ज़्यादा पैरामीटर का मतलब है कि डाउनलोड का साइज़ बड़ा होना. इससे इस बात पर भी असर पड़ता है कि किसी मॉडल को डिवाइस पर इस्तेमाल करने के लिए, सही तरीके से डाउनलोड किया जा सकता है या नहीं. भले ही, वह मॉडल छोटा ही क्यों न हो.
हालांकि, पैरामीटर की संख्या के आधार पर किसी मॉडल के डाउनलोड साइज़ का हिसाब लगाने की तकनीकें हैं, लेकिन यह जटिल हो सकता है.
साल 2024 की शुरुआत में मिले डेटा के हिसाब से, डाउनलोड किए जाने वाले मॉडल के साइज़ को बहुत कम देखा जाता है. इसलिए, हमारा सुझाव है कि आप अपने डिवाइस पर और ब्राउज़र में इस्तेमाल के उदाहरणों के लिए, Chrome DevTools के नेटवर्क पैनल में या दूसरे ब्राउज़र डेवलपर टूल के साथ डाउनलोड का साइज़ प्रयोग के तौर पर देखें.
![Chrome DevTools नेटवर्क पैनल का स्क्रीनशॉट.](https://web.dev/static/articles/llm-sizes/image/download-size.png?authuser=6&hl=hi)
Gemma का इस्तेमाल MediaPipe LLM Infrence API के साथ किया जाता है. DistilBERT का इस्तेमाल Transformers.js के साथ किया जाता है.
मॉडल को छोटा करने की तकनीकें
किसी मॉडल की मेमोरी की ज़रूरतों को काफ़ी कम करने के लिए, कई तकनीकों का इस्तेमाल किया जाता है:
- LoRA (कम रैंक वाला अडैप्टेशन): फ़ाइन ट्यूनिंग की ऐसी तकनीक जिसमें पहले से तय किए गए वज़न फ़्रीज़ होते हैं. LoRA के बारे में और पढ़ें.
- काट-छांट करना: मॉडल का साइज़ कम करने के लिए, कम ज़रूरी वेट को हटाना.
- क्वांटाइज़ेशन: फ़्लोटिंग-पॉइंट नंबर (जैसे, 32-बिट) से लोअर-बिट प्रज़ेंटेशन (जैसे, 8-बिट) तक वज़न के सटीक होने को कम करना.
- नॉलेज डिस्टिलेशन: छोटे मॉडल को ट्रेनिंग देना, ताकि वह पहले से ट्रेन किए गए किसी बड़े मॉडल की नकल कर सके.
- पैरामीटर शेयर करना: मॉडल के कई हिस्सों के लिए एक जैसे वेट का इस्तेमाल करके, यूनीक पैरामीटर की कुल संख्या को कम करना.