मॉडल डाउनलोड करने के बाद, रनटाइम पर मेमोरी/वीडियो मेमोरी अपर्याप्त होने की त्रुटि आ सकती है। यह शायद स्थानीय मॉडल आज़माने वाले अधिकांश लोगों के लिए सबसे अनचाहा परिणाम है।
जैसा कि पहले बताया गया है, मॉडल को रनटाइम पर अपने वेट्स को RAM या VRAM में लोड करना होता है, और उत्तर उत्पन्न करने के लिए अतिरिक्त स्थान भी चाहिए। यदि आपका डिवाइस मॉडल को समा नहीं सकता, तो छोटे पैरामीटर वाले मॉडल पर स्विच करने के अलावा, आप यह भी देख सकते हैं कि क्वांटाइज्ड संस्करण उपलब्ध है या नहीं।
मॉडल के वेट्स बड़ी संख्या में संख्यात्मक मानों से बने होते हैं, और प्रत्येक मान को संग्रहीत करने के लिए निश्चित स्थान की आवश्यकता होती है। क्वांटाइजेशन इन संख्यात्मक मानों की प्रस्तुति सटीकता को कम करके मॉडल के संसाधन उपयोग को कम करता है। उदाहरण के लिए, 16-बिट फ्लोटिंग पॉइंट के रूप में संग्रहीत वेट्स को मुख्य रूप से 8-बिट या 4-बिट कम सटीकता प्रस्तुतियों में बदला जा सकता है। पैरामीटर की संख्या आमतौर पर नहीं बदलती, लेकिन प्रत्येक पैरामीटर द्वारा कब्जा किया गया स्थान छोटा हो जाता है।
7 अरब पैरामीटर वाले मॉडल को उदाहरण के रूप में लेते हुए, केवल वेट्स की गणना करते हुए क्वांटाइजेशन ओवरहेड की अनदेखी करते हुए, निम्नलिखित मोटे अनुमान प्राप्त किए जा सकते हैं:
वेट्स प्रस्तुति विधि | सैद्धांतिक वेट्स आकार |
16 बिट | लगभग 14 GB |
8 बिट | लगभग 7 GB |
4 बिट | लगभग 3.5 GB |
यहाँ GB दशमलव इकाइयों में गणना किया गया है। वास्तविक क्वांटाइज्ड फ़ाइलें स्केलिंग फैक्टर जैसी जानकारी भी संग्रहीत करती हैं और मिश्रित सटीकता का उपयोग कर सकती हैं, इसलिए वास्तविक आकार अनुमान से भिन्न हो सकता है।
सामान्य उपयोगकर्ताओं के लिए, क्वांटाइजेशन का सबसे सीधा लाभ यह है कि मॉडल फ़ाइलें छोटी हो जाती हैं, डाउनलोड और स्टोरेज के लिए स्पेस बचती हैं, और रनटाइम पर वेट्स के लिए कम RAM या VRAM की आवश्यकता होती है। जब हार्डवेयर और इन्फरेंस फ्रेमवर्क सपोर्ट करते हैं, तो क्वांटाइजेशन इन्फरेंस गति भी बढ़ा सकता है।
हालांकि, फ़ाइल को मूल आकार के एक-चौथाई तक छोटा करने का मतलब यह नहीं है कि उत्तर गति चार गुना बढ़ जाएगी।
सटीकता कम करने से उत्तर गुणवत्ता भी प्रभावित हो सकती है, विशिष्ट प्रभाव मॉडल, क्वांटाइजेशन विधि और कार्य पर निर्भर करता है। क्वांटाइज्ड संस्करण चुनते समय, यह पुष्टि करने के अलावा कि यह चल सकता है, आपको अपने प्रश्नों से परीक्षण भी करना चाहिए कि उत्तर अभी भी विश्वसनीय हैं या नहीं।
पहले से डाउनलोड या फाइन-ट्यून किए गए मॉडल के लिए, सामान्य दृष्टिकोण पोस्ट-ट्रेनिंग क्वांटाइजेशन (PTQ) है, जो मॉडल प्रशिक्षण पूरा होने के बाद वेट्स और अन्य संख्यात्मक मानों को कम सटीकता प्रस्तुतियों में बदल देता है। कुछ विधियों को क्वांटाइजेशन प्रक्रिया को कैलिब्रेट करने और त्रुटि को कम करने के लिए प्रतिनिधि डेटा की एक छोटी बैच की आवश्यकता होती है।
एक अन्य श्रेणी क्वांटाइजेशन-अवेयर ट्रेनिंग (QAT) है, जो प्रशिक्षण के दौरान क्वांटाइजेशन के प्रभावों का अनुकरण करता है, जिससे मॉडल पहले से ही कम सटीकता प्रस्तुतियों के अनुकूल हो सकता है।
साइन इन करें चर्चा में शामिल हों
Ollama के साथ मॉडल चलाते समय, आप अक्सर GGUF, Q4, Q8 जैसे नाम देखेंगे। ये नाम मुख्य रूप से मॉडल के स्टोरेज फॉर्मेट और क्वांटाइजेशन विधि से संबंधित हैं, और यही वह कारण है कि बड़े मॉडल व्यक्तिगत कंप्यूटर पर चल सकते हैं।
अगस्त 2023 में, Georgi Gerganov ने GGUF फॉर्मेट पेश किया। इसके मुख्य लाभों में सिंगल-फ़ाइल डिप्लॉयमेंट, स्केलेबिलिटी, मेमोरी मैपिंग सपोर्ट, संपूर्ण जानकारी और उपयोग में आसानी शामिल हैं। एक GGUF फ़ाइल में फ़ाइल हेडर, मेटाडेटा कुंजी-मान जोड़े और टेंसर जानकारी शामिल होती है। ये घटक मिलकर मॉडल की संरचना और व्यवहार को परिभाषित करते हैं। जैसा कि नीचे दिखाया गया है, GGUF बड़े मॉडल इन्फरेंस के लिए एक मॉडल फ़ाइल फॉर्मेट है, जिसे वर्तमान में llama.cpp और Ollama जैसे स्थानीय इन्फरेंस टूल्स द्वारा व्यापक रूप से उपयोग किया जाता है। Ollama GGUF फॉर्मेट हैंडलिंग, मॉडल क्वांटाइजेशन और मॉडल लोडिंग प्रक्रियाओं को एन्कैप्सुलेट करता है, जिससे उपयोगकर्ताओं को मॉडल फॉर्मेट बदलने की आवश्यकता नहीं होती — वे सीधे प्री-क्वांटाइज्ड मॉडल डाउनलोड और चला सकते हैं। एक GGUF फ़ाइल में केवल मॉडल पैरामीटर नहीं होते; इसमें मॉडल की बुनियादी जानकारी, मॉडल आर्किटेक्चर और टेंसर डेटा भी शामिल होते हैं। GGUF इस जानकारी को एक समान फ़ाइल फॉर्मेट के माध्यम से व्यवस्थित करता है, जिससे llama.cpp जैसे इन्फरेंस टूल्स इसे सीधे पढ़ और लोड कर सकते हैं। इसकी बुनियादी संरचना नीचे दिए गए चित्र में दिखाई गई है।
ModelScope संरचित GGUF फ़ाइलों को प्रदर्शित करने का भी समर्थन करता है, जैसा कि नीचे दिखाया गया है। जब इन्फरेंस टूल्स GGUF फ़ाइलें लोड करते हैं, तो वे इस जानकारी को सीधे पढ़ सकते हैं और मॉडल लोड कर सकते हैं, बिना अलग-अलग मॉडल कॉन्फ़िगरेशन फ़ाइलें तैयार करने की आवश्यकता के।
GGUF स्वयं केवल एक मॉडल फ़ाइल फॉर्मेट है और सीधे मॉडल के RAM या VRAM उपयोग को कम नहीं करता। मॉडल के संसाधन उपयोग को वास्तव में कम करने वाला क्वांटाइजेशन है।
llama.cpp और GGUF मॉडल में, Q4, Q5, Q8, Q4_K_M अलग-अलग क्वांटाइजेशन नामों का प्रतिनिधित्व करते हैं। यहाँ, Q क्वांटाइजेशन के लिए है, और बाद की संख्या प्राथमिक क्वांटाइजेशन बिट चौड़ाई को दर्शाती है। उदाहरण के लिए, Q4 का मतलब मुख्य रूप से 4-बिट क्वांटाइजेशन है, और Q8 का मतलब मुख्य रूप से 8-बिट क्वांटाइजेशन है।
ध्यान दें कि Q4 का मतलब यह नहीं है कि मॉडल में सभी पैरामीटर एकरूप से 4-बिट प्रस्तुति का उपयोग करते हैं। सामान्य Q4_K_M को उदाहरण के रूप में लेते हुए, यह llama.cpp में K-quant क्वांटाइजेशन प्रकार से संबंधित है। नाम में Q4 का मतलब मुख्य रूप से 4-बिट क्वांटाइजेशन है, K K-quant क्वांटाइजेशन स्कीम के उपयोग को दर्शाता है, और M उस स्कीम में Medium कॉन्फ़िगरेशन को दर्शाता है। वास्तविक मॉडल में, अलग-अलग टेंसर अलग-अलग क्वांटाइजेशन सटीकता का उपयोग कर सकते हैं, न कि सभी पैरामीटर एकरूप से 4-बिट प्रस्तुति का उपयोग करते हैं, जैसा कि नीचे दिए गए चित्र में दिखाया गया है।
GGUF मॉडल चुनते समय, पहले यह पुष्टि करें कि आपका इन्फरेंस टूल उस मॉडल को सपोर्ट करता है, फिर विशिष्ट क्वांटाइजेशन संस्करण देखें। कम क्वांटाइजेशन सटीकता आमतौर पर RAM और VRAM उपयोग को कम करती है, जिससे मॉडल को सामान्य डिवाइस पर चलाना आसान हो जाता है, लेकिन मॉडल प्रदर्शन का कुछ हिस्सा खो सकता है। अधिक क्वांटाइजेशन सटीकता आमतौर पर मूल मॉडल की क्षमताओं को अधिक संरक्षित करती है, लेकिन अधिक हार्डवेयर संसाधनों की भी आवश्यकता होती है।
यदि कोई संस्करण पहले से आपके डिवाइस की RAM या VRAM सीमा के करीब है, तो कॉन्टेक्स्ट और रनटाइम प्रक्रियाओं के लिए जगह छोड़ने के लिए एक छोटे संस्करण पर स्विच करने पर विचार करें। यदि संसाधन पर्याप्त हैं, तो आप विभिन्न संस्करणों के उत्तरों की तुलना करने के लिए एक ही प्रश्नों का उपयोग कर सकते हैं, विशेष रूप से सूचना निकासी, कोड जनरेशन या निर्धारित प्रारूप आउटपुट जैसे अपने लक्षित कार्यों पर ध्यान दें।
पहले स्थिर ऑपरेशन की पुष्टि करें, फिर उत्तर गुणवत्ता जांचें। इस तरह, आपके द्वारा चुना गया क्वांटाइज्ड संस्करण आपके डिवाइस और उपयोग के अनुरूप होगा।