एलएलएम के साइज़ के बारे में जानकारी

Maud Nalpas
Maud Nalpas

लार्ज लैंग्वेज मॉडल (एलएलएम) में "एल" का मतलब बड़े पैमाने से है, लेकिन असल में यह ज़्यादा बारीक है. कुछ एलएलएम में अरबों पैरामीटर होते हैं, जबकि कुछ एलएलएम कम पैरामीटर के साथ भी बेहतर तरीके से काम करते हैं.

असल दुनिया के कुछ उदाहरणों और अलग-अलग मॉडल साइज़ के व्यावहारिक असर पर एक नज़र डालें.

वेब डेवलपर के तौर पर, हम किसी रिसॉर्स के साइज़ को उसके डाउनलोड साइज़ के तौर पर देखते हैं. मॉडल के दस्तावेज़ में दिए गए साइज़ का मतलब, उसके पैरामीटर की संख्या से है. उदाहरण के लिए, Gemma 2B का मतलब है कि Gemma में दो अरब पैरामीटर हैं.

एलएलएम में लाखों, करोड़ों, अरबों या खरबों पैरामीटर हो सकते हैं.

बड़े एलएलएम में, छोटे एलएलएम की तुलना में ज़्यादा पैरामीटर होते हैं. इससे, भाषा के ज़्यादा जटिल संबंधों को कैप्चर करने और बारीकियों वाले प्रॉम्प्ट को मैनेज करने में मदद मिलती है. इन मॉडल को अक्सर बड़े डेटासेट पर ट्रेन किया जाता है.

आपने देखा होगा कि 2 अरब या 7 अरब जैसे कुछ मॉडल साइज़ आम तौर पर इस्तेमाल किए जाते हैं. उदाहरण के लिए, Gemma 2B, Gemma 7B या Mistral 7B. मॉडल के साइज़ की क्लास, अनुमानित ग्रुपिंग होती हैं. उदाहरण के लिए, Gemma 2B में लगभग दो अरब पैरामीटर हैं, लेकिन सटीक संख्या नहीं है.

मॉडल के साइज़ की क्लास, एलएलएम की परफ़ॉर्मेंस का आकलन करने का एक आसान तरीका है. इनकी तुलना, बॉक्सिंग में अलग-अलग वज़न वाले खिलाड़ियों की कैटगरी से करें: एक ही साइज़ कैटगरी के मॉडल की तुलना करना आसान होता है. दो 2B मॉडल की परफ़ॉर्मेंस एक जैसी होनी चाहिए.

हालांकि, कुछ खास टास्क के लिए, छोटे मॉडल की परफ़ॉर्मेंस, बड़े मॉडल की परफ़ॉर्मेंस के बराबर हो सकती है.

HuggingFace मॉडल के साइज़ के चेकबॉक्स का स्क्रीनशॉट.
HuggingFace पर मॉडल के साइज़ की क्लास. ये क्लास, इंडस्ट्री स्टैंडर्ड नहीं हैं. ये ऑर्गैनिक तरीके से बनी हैं.

GPT-4 और Gemini Pro या Ultra जैसे सबसे नए और बेहतरीन एलएलएम के मॉडल साइज़ का हमेशा खुलासा नहीं किया जाता. हालांकि, माना जाता है कि इन मॉडल में अरबों या ट्रिलियन पैरामीटर होते हैं.

मॉडल के साइज़ में काफ़ी अंतर हो सकता है. इस इलस्ट्रेशन में, Gemini Pro की तुलना में DistilBERT एक छोटा बिंदु है.

सभी मॉडल अपने नाम में पैरामीटर की संख्या नहीं दिखाते. कुछ मॉडल के नाम के आखिर में, वर्शन नंबर जोड़ा जाता है. उदाहरण के लिए, Gemini 1.5 Pro का मतलब है कि मॉडल का 1.5 वर्शन (1 वर्शन के बाद).

एलएलएम है या नहीं?

एलएलएम के लिए मॉडल का साइज़ कब बहुत छोटा होता है? एआई और एमएल कम्यूनिटी में, एलएलएम की परिभाषा कुछ हद तक बदल सकती है.

कुछ लोगों के हिसाब से, अरबों पैरामीटर वाले बड़े मॉडल ही एलएलएम माने जाते हैं. वहीं, DistilBERT जैसे छोटे मॉडल को सामान्य एनएलपी मॉडल माना जाता है. एलएलएम की परिभाषा में, छोटे, लेकिन फिर भी बेहतर मॉडल शामिल हैं. जैसे, DistilBERT.

डिवाइस पर इस्तेमाल के उदाहरणों के लिए छोटे एलएलएम

बड़े एलएलएम के लिए, अनुमान लगाने के लिए ज़्यादा स्टोरेज और कंप्यूटिंग पावर की ज़रूरत होती है. उन्हें खास हार्डवेयर (जैसे, टीपीयू) वाले खास सर्वर पर चलाना ज़रूरी है.

वेब डेवलपर के तौर पर, हमें यह जानने में दिलचस्पी है कि कोई मॉडल, उपयोगकर्ता के डिवाइस पर डाउनलोड और चलाने के लिए काफ़ी छोटा है या नहीं.

हालांकि, इस सवाल का जवाब देना मुश्किल है! फ़िलहाल, यह जानने का कोई आसान तरीका नहीं है कि "यह मॉडल, ज़्यादातर मिड-रेंज डिवाइसों पर चल सकता है". इसकी ये वजहें हैं:

  • डिवाइस की क्षमताएं, मेमोरी, जीपीयू/सीपीयू की खास बातों वगैरह के हिसाब से अलग-अलग होती हैं. एक कम-ऑफ़र वाला Android फ़ोन और NVIDIA® RTX लैपटॉप, दोनों बहुत अलग हैं. आपके पास, उपयोगकर्ताओं के डिवाइसों के बारे में कुछ डेटा पॉइंट हो सकते हैं. फ़िलहाल, हमारे पास वेब को ऐक्सेस करने के लिए इस्तेमाल किए जाने वाले बेसलाइन डिवाइस की परिभाषा नहीं है.
  • किसी मॉडल या उसमें काम करने वाले फ़्रेमवर्क को, किसी खास हार्डवेयर पर चलने के लिए ऑप्टिमाइज़ किया जा सकता है.
  • यह तय करने का कोई प्रोग्राम वाला तरीका नहीं है कि किसी खास एलएलएम को किसी खास डिवाइस पर डाउनलोड और चलाया जा सकता है या नहीं. किसी डिवाइस पर डाउनलोड करने की क्षमता, कई बातों के साथ-साथ जीपीयू में मौजूद वीआरएएम पर भी निर्भर करती है.

हालांकि, हमारे पास कुछ अनुभवी जानकारी है: आज, कुछ लाख से लेकर कुछ अरब पैरामीटर वाले कुछ मॉडल, उपभोक्ता-ग्रेड डिवाइसों पर ब्राउज़र में चल सकते हैं.

उदाहरण के लिए:

  • MediaPipe LLM इंफ़रेंस एपीआई के साथ Gemma 2B (यह सिर्फ़ सीपीयू वाले डिवाइसों के लिए भी सही है). इसे आज़माएं.
  • Transformers.js के साथ DistilBERT.

यह एक नया फ़ील्ड है. आने वाले समय में, इस लैंडस्केप में बदलाव हो सकते हैं:

  • WebAssembly और WebGPU के इनोवेशन की मदद से, WebGPU ज़्यादा लाइब्रेरी, नई लाइब्रेरी, और ऑप्टिमाइज़ेशन में काम करता है. इससे, उपयोगकर्ता के डिवाइसों पर अलग-अलग साइज़ के एलएलएम को बेहतर तरीके से चलाया जा सकता है.
  • आने वाले समय में, छोड़ने की नई तकनीकों की मदद से, छोटे और बेहतर परफ़ॉर्म करने वाले एलएलएम का इस्तेमाल ज़्यादा से ज़्यादा किया जाएगा.

छोटे एलएलएम के लिए ध्यान देने वाली बातें

छोटे एलएलएम के साथ काम करते समय, आपको हमेशा परफ़ॉर्मेंस और डाउनलोड साइज़ का ध्यान रखना चाहिए.

परफ़ॉर्मेंस

किसी भी मॉडल की क्षमता, इस बात पर काफ़ी ज़्यादा निर्भर करती है कि उसे किस तरह इस्तेमाल किया जा रहा है! आपके इस्तेमाल के उदाहरण के हिसाब से, छोटा एलएलएम बेहतर परफ़ॉर्म कर सकता है. यह बड़े सामान्य एलएलएम से बेहतर परफ़ॉर्म कर सकता है.

हालांकि, एक ही मॉडल फ़ैमिली में, छोटे एलएलएम, बड़े एलएलएम के मुकाबले कम बेहतर होते हैं. एक ही इस्तेमाल के उदाहरण के लिए, आम तौर पर छोटे एलएलएम का इस्तेमाल करते समय, आपको ज़्यादा इंजनियरिंग का काम करना पड़ता है.

Chrome DevTools के नेटवर्क पैनल का स्क्रीनशॉट.
Gemma 2B का स्कोर, Gemma 7B के स्कोर से कम है.
सोर्स: HuggingFace Open LLM Leaderboard, अप्रैल 2024

डाउनलोड आकार

ज़्यादा पैरामीटर का मतलब है कि डाउनलोड का साइज़ बड़ा होगा. इससे यह भी तय होता है कि किसी मॉडल को, डिवाइस पर इस्तेमाल के उदाहरणों के लिए डाउनलोड किया जा सकता है या नहीं. भले ही, मॉडल को छोटा माना गया हो.

पैरामीटर की संख्या के आधार पर, मॉडल के डाउनलोड साइज़ का हिसाब लगाने के लिए तकनीकें उपलब्ध हैं. हालांकि, यह प्रोसेस मुश्किल हो सकती है.

साल 2024 की शुरुआत तक, मॉडल के डाउनलोड साइज़ को शायद ही रिकॉर्ड किया जाता था. इसलिए, हमारा सुझाव है कि आप डिवाइस पर और ब्राउज़र में इस्तेमाल करने के उदाहरणों के लिए, डाउनलोड साइज़ को एक्सपेरिमेंट के आधार पर देखें. इसके लिए, Chrome DevTools के नेटवर्क पैनल या ब्राउज़र के अन्य डेवलपर टूल का इस्तेमाल करें.

Chrome DevTools के नेटवर्क पैनल का स्क्रीनशॉट.
Chrome DevTools के नेटवर्क पैनल में, वेब ऐप्लिकेशन में ब्राउज़र और डिवाइस पर इनफ़रेंस के लिए, Gemma 2B और DistilBERT का इस्तेमाल किया जा सकता है. डाउनलोड किए जाने वाले डेटा का साइज़, 1.3 जीबी और 67 एमबी है.

Gemma का इस्तेमाल, MediaPipe LLM Inference API के साथ किया जाता है. DistilBERT का इस्तेमाल, Transformers.js के साथ किया जाता है.

मॉडल को छोटा करने की तकनीकें

मॉडल की मेमोरी की ज़रूरतों को काफ़ी कम करने के लिए, कई तकनीकें मौजूद हैं:

  • LoRA (Low-Rank Adaptation): यह एक ऐसी फ़ाइन ट्यूनिंग तकनीक है जिसमें पहले से ट्रेन किए गए वज़न को फ़्रीज़ कर दिया जाता है. LoRA के बारे में ज़्यादा पढ़ें.
  • प्रूनिंग: मॉडल का साइज़ कम करने के लिए, उसमें मौजूद कम अहमियत वाले वेट हटाना.
  • क्वांटाइज़ेशन: वज़न की सटीक वैल्यू को फ़्लोटिंग-पॉइंट संख्याओं (जैसे, 32-बिट) से कम बिट वाले रिप्रज़ेंटेशन (जैसे, 8-बिट) में बदलना.
  • नॉलेज डिस्टिलेशन: किसी छोटे मॉडल को ट्रेनिंग देकर, पहले से ट्रेन किए गए बड़े मॉडल के व्यवहार की नकल करना.
  • पैरामीटर शेयर करना: मॉडल के कई हिस्सों के लिए एक जैसे वेट का इस्तेमाल करके, यूनीक पैरामीटर की कुल संख्या कम करना.