CubicQuant: Parametric Non-Uniform Codebooks for High-Throughput LLM Inference with 1-8-Bit Weights
CubicQuant एक पैरामीट्रिक गैर-समान स्केलर प्रारूप पेश करता है जो समान रूप से अंतराल वाले मैग्नीट्यूड कोड्स को एक मोनोटोनिक क्यूबिक कर्व के माध्यम से अनुकूलित पुनर्निर्माण स्तरों (reconstruction levels) पर मैप करता है, जिससे यूनिफॉर्म इंटीजर और फाइनाइट फ्लोटिंग-पॉइंट क्वांटाइजेशन की तुलना में कम पुनर्निर्माण त्रुटि के साथ कुशल 1-8-बिट LLM इन्फरेंस सक्षम होता है और साथ ही प्रत्यक्ष GPU निष्पादन क्षमता बनाए रखता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक विशाल पुस्तकालय की किताबों को एक छोटे से बैकपैक में फिट करने की कोशिश कर रहे हैं। आर्टिफिशियल इंटेलिजेंस की दुनिया में, ये "किताबें" अरबों संख्याएँ (जिन्हें वेट्स या weights कहा जाता है) हैं जो एक लार्ज लैंग्वेज मॉडल (LLM) बनाते हैं—वह AI जो कहानियाँ लिखता है, सवालों के जवाब देता है और आपसे चैट करता है। इन AI मॉडल्स को कंप्यूटर पर तेज़ी से चलाने के लिए, वैज्ञानिक इन संख्याओं को छोटा करने की कोशिश करते हैं, जिसे क्वांटाइजेशन (quantization) कहा जाता है। इसे एक हाई-डेफिनिशन फोटो को अपने फोन पर जल्दी लोड होने के लिए छोटी फ़ाइल साइज़ में कंप्रेस करने जैसा समझें।
हालाँकि, इसमें एक कठिन संतुलन बनाना पड़ता है। यदि आप संख्याओं को बहुत अधिक या बहुत कठोरता से छोटा करते हैं, तो आप महत्वपूर्ण विवरण खो देते हैं, और AI मूर्खतापूर्ण गलतियाँ करने लगता है। यदि आप उन्हें बहुत बड़ा रखते हैं, तो कंप्यूटर अभिभूत हो जाता है और धीमा चलता है। पारंपरिक रूप से, वैज्ञानिकों ने इन संख्याओं को छोटा करने के दो मुख्य तरीके इस्तेमाल किए हैं: यूनिफॉर्म क्वांटाइजेशन (Uniform Quantization), जो समान अंतराल वाली एक स्केल (रूलर) की तरह है (सरल लेकिन कठोर), और फ्लोटिंग-पॉइंट (Floating-Point), जो एक लचीले स्केल की तरह है जो कुछ जगहों पर खिंचता है और कुछ जगहों पर सिकुड़ता है (अधिक लचीला लेकिन उपयोग में कठिन)। मुख्य सवाल हमेशा से यह रहा है: क्या हम एक ऐसा फॉर्मेट बना सकते हैं जो लचीले स्केल की तरह लचीला हो लेकिन सरल स्केल की तरह उपयोग में आसान भी हो?
यहीं पर क्यूबिकक्वांट (CubicQuant) नामक एक नई विधि आती है। यह एक जादुई, आकार बदलने वाले स्केल (shape-shifting ruler) को आविष्कार करने जैसा है जो डेटा को मापने के लिए इसके सटीक आकार के अनुकूल ढल सकता है, फिर भी इसे कंप्यूटर के लिए तुरंत पढ़ना इतना सरल बना देता है। इस पेपर के पीछे के शोधकर्ता, ज़ुएतियान "एलियट" गाओ (Xuetian "Elliot" Gao), एक ऐसी प्रणाली का प्रस्ताव करते हैं जो एक विशेष गणितीय वक्र (cubic curve) का उपयोग करती है ताकि यह तय किया जा सके कि इन संख्याओं को कैसे पैक किया जाए। हर संख्याओं के समूह को एक सीधी, कठोर रेखा में मजबूर करने के बजाय, क्यूबिकक्वांट यह अनुमति देता है कि "रूलर के निशान" वहाँ घने हो जाएँ जहाँ डेटा सघन है और वहाँ फैल जाएँ जहाँ डेटा विरल (sparse) है, और यह सब करते हुए डेटा को एक नियमित ग्रिड में कसकर पैक रखता है।
पेपर बताता है कि यह दृष्टिकोण आश्चर्यजनक रूप से अच्छा काम करता है। जब उन्होंने विभिन्न प्रकार के डेटा वितरणों (जैसे नॉर्मल डिस्ट्रीब्यूशन का बेल कर्व या लाप्लास डिस्ट्रीब्यूशन के तीखे स्पाइक्स) पर इसका परीक्षण किया, तो क्यूबicQuant ने मूल संख्याओं को पुनर्गठित करने में त्रुटि को काफी मात्रा में कम कर दिया—कुछ विशिष्ट डेटा प्रकारों के लिए मानक तरीकों की तुलना में 28.14% तक बेहतर। इसने यह भी दिखाया कि इस फॉर्मेट को आधुनिक ग्राफिक्स कार्ड (GPUs) पर बिना अनपैक किए सीधे चलाया जा सकता है, जो गति के लिए एक बड़ी जीत है। हालाँकि, लेखक सावधानी बरतते हुए नोट करते हैं कि हालांकि संख्याएँ सिमुलेशन और अलग-अलग परीक्षणों में बहुत अच्छी दिखती हैं, लेकिन उन्होंने अभी तक यह साबित नहीं किया है कि यह किसी उपयोगकर्ता के साथ चैट करने जैसे वास्तविक, वास्तविक दुनिया के अनुप्रयोग में AI को "स्मार्टर" या तेज़ बनाता है। परिणाम आशाजनक और गणितीय रूप से सुदृढ़ हैं, लेकिन यह देखना अभी बाकी है कि क्या यह AI की दुनिया को बदल देता है।
"आकार बदलने वाले स्केल" का जादू
यह समझने के लिए कि क्यूबिकक्वांट AI के "बैकपैक की समस्या" को कैसे हल करता है, आइए इसके तरीके को देखें।
पुराने तरीके: कठोर बनाम अव्यवस्थित
कल्पना कीजिए कि आपके पास अलग-अलग आकार की कंचों (marbles) की एक थैली है। आप उन्हें एक बॉक्स में पैक करना चाहते हैं।
- यूनिफॉर्म क्वांटाइजेशन (Uniform Quantization) एक निश्चित, समान दूरी वाली शेल्फ वाले बॉक्स का उपयोग करने जैसा है। यदि आपकी कंचे सभी एक ही आकार के हैं, तो यह एकदम सही है। लेकिन यदि आपके पास छोटे कंकड़ और बड़े पत्थर दोनों का मिश्रण है, तो या तो आप बड़े पत्थरों पर जगह बर्बाद करते हैं या कंकड़ों को कुचल देते हैं। यह सरल और तेज़ है, लेकिन यह आपके सामान के आकार के अनुकूल नहीं होता।
- लर्नड कोडबुक्स (Learned Codebooks) एक पेशेवर पैक करने वाले को काम पर रखने जैसा है जो हर एक कंचे को देखता है और उसके लिए एक कस्टम शेल्फ बनाता है। यह अविश्वसनीय रूप से कुशल है, लेकिन यह धीमा, अव्यवस्थित है, और इसे याद रखने के लिए बहुत सारे अतिरिक्त नोट्स (मेटाडेटा) की आवश्यकता होती है। यह कंप्यूटर के लिए जल्दी पढ़ना कठिन है।
क्यूबिकक्वांट समाधान
क्यूबिकक्वांट दोनों का सबसे अच्छा संगम है। यह एक पैरामीट्रिक नॉन-यूनिफॉर्म कोडबुक (parametric non-uniform codebook) का उपयोग करता है। यह एक फैंसी तरीका है यह कहने का कि यह एक "आकार बदलने वाले स्केल" का उपयोग करता है।
- निश्चित शेल्फ के बजाय, यह एक चिकनी, घुमावदार रेखा (एक क्यूबिक कर्व) का उपयोग करता है ताकि यह तय किया जा सके कि शेल्फ कहाँ जाएँ।
- यह कर्व प्रत्येक छोटे समूह (एक "ग्रुप") के लिए केवल दो आकार मापदंडों (shape parameters) और एक स्केल फैक्टर द्वारा नियंत्रित होता है।
- इसे एक लचीले स्केल की तरह समझें जो मुड़ सकता है। यदि डेटा शून्य के पास भीड़भाड़ वाला है (जैसे कई छोटी संख्याएँ), तो स्केल वहां अधिक "टिक" (पुनर्निर्माण स्तर) डालने के लिए मुड़ जाता है। यदि डेटा पूंछ (tails) में फैला हुआ है, तो स्केल खिंच जाता है।
- महत्वपूर्ण बात यह है कि यह मोड़ एक सरल सूत्र द्वारा नियंत्रित होता है। कंप्यूटर को एक विशाल लुकअप टेबल की आवश्यकता नहीं है; यह बस चलते समय (on the fly) कर्व की गणना करता है। यह डेटा को कसकर पैक रखता है (एक नियमित पूर्णांक स्ट्रीम की तरह) लेकिन इसे AI मॉडल के स्थानीय सांख्यिकी के अनुकूल होने की अनुमति देता है।
यह कैसे काम करता है: "ग्रुप" रणनीति
पेपर समझाता है कि AI मॉडल के वेट्स को छोटे समूहों (जैसे 128 या 256 संख्याओं के समूह) में विभाजित किया जाता है। प्रत्येक समूह के लिए, क्यूबिकक्वांट गणना करता है:
- एक स्केल (A Scale): इस समूह में संख्याएँ कुल मिलाकर कितनी बड़ी हैं।
- दो आकार गुणांक (Two Shape Coefficients - a और b): ये कर्व को बताते हैं कि उसे कैसे मुड़ना है। एक प्रारंभिक ढलान (slope) को नियंत्रित करता है, और दूसरा वक्रता (curvature) को नियंत्रित करता है।
इसका मतलब यह है कि भले ही पूरे मॉडल में अरबों संख्याएँ हों, कंप्यूटर को केवल प्रत्येक समूह के लिए बहुत कम अतिरिक्त जानकारी (मेटाडेटा) संग्रहीत करने की आवश्यकता है ताकि यह जान सके कि उस विशिष्ट हिस्से के लिए स्केल को कैसे "मोड़ना" है। पेपर नोट करता है कि 128 के समूह आकार के लिए, यह प्रत्येक वेट पर केवल 0.5 बिट्स का ओवरहेड जोड़ता है (4-बिट पेलोड के ऊपर), जिससे यह बहुत कुशल बन जाता है।
परिणाम: कम त्रुटि, वही गति
शोधकर्ता ने यह देखने के लिए प्रयोग चलाए कि यह नया स्केल पुराने तरीकों की तुलना में कितनी अच्छी तरह काम करता है। उन्होंने तीन प्रकार के डेटा वितरणों पर परीक्षण किया:
- यूनिफॉर्म (Uniform): डेटा समान रूप से फैला हुआ।
- गौसियन (Gaussian): क्लासिक "बेल कर्व" (अधिकांश चीजें औसत हैं, कुछ चरम हैं)।
- लाप्लास (Laplace): एक वितरण जिसमें एक तीखा शिखर और भारी पूंछ (tails) होती है (बहुत सारी छोटी संख्याएँ, लेकिन कुछ बहुत बड़ी आउटलेयर्स)।
निष्कर्ष:
- यूनिफॉर्म डेटा के लिए: चूंकि डेटा पहले से ही समान है, इसलिए लचीला स्केल ज्यादा मदद नहीं करता है। यह कठोर स्केल के समान प्रदर्शन करता है।
- गौसियन और लाप्लास डेटा के लिए: यहीं पर क्यूबिकक्वांट चमकता है। क्योंकि इन वितरणों में शून्य के पास बहुत सारी संख्याएँ क्लस्टर होती हैं और पूंछ में कम होती हैं, इसलिए लचीला स्केल विवरणों को बेहतर ढंग से कैप्चर करने के लिए शून्य के पास "टिक" को इकट्ठा कर सकता है।
- गौसियन डेटा पर, इसने मानक पद्धति की तुलना में त्रुटि को 13.49% कम कर दिया।
- लाप्लास डेटा पर, सुधार और भी बड़ा था, जो 28.14% था।
- इसने सर्वश्रेष्ठ "फ्लोटिंग-पॉइंट" फॉर्मेट को भी पछाड़ दिया (जो पहले से ही काफी लचीले हैं), बिट-विड्थ के आधार पर 6.27% से 9.44% तक बेहतर प्रदर्शन किया।
- पेपर इस बात पर जोर देता है कि ये सिमुलेशन और गणितीय प्रमाण हैं कि संख्याओं को कितनी अच्छी तरह पुनर्गठित किया जा सकता है। यह अभी यह दावा नहीं करता है कि यह AI को बातचीत करने में बेहतर या तेज़ बनाता है। AI की उत्तरों की "गुणवत्ता" (परप्लेक्सिटी, तर्क, आदि) अभी भी एक खुला प्रश्न है।
AI चलाने के "दो रास्ते"
क्यूबिकक्वांट की सबसे शानदार विशेषताओं में से एक यह है कि यह AI चलाने के दो अलग-अलग तरीकों का समर्थन करता है, और यह दोनों में पूरी तरह फिट बैठता है:
- मॉडल-डीटाइप पाथ (Model-Dtype Path): कंप्यूटर संख्याओं को ठीक वैसे ही पुनर्गठित करता है जैसे वे हैं (फ्लोटिंग-पॉइंट गणित का उपयोग करके)। यह सटीकता के लिए अच्छा है।
- डायनेमिक-A8 पाथ (Dynamic-A8 Path): कंप्यूटर चलते समय संख्याओं को एक मानक 8-बिट पूर्णांक (INT8) फॉर्मेट में मैप करता है। यह गति के लिए बहुत अच्छा है क्योंकि आधुनिक कंप्यूटरों में विशेष हार्डवेयर (टेन्सर कोर्स) होते हैं जो 8-बिट पूर्णांकों के साथ गणित करने में सुपर फास्ट होते हैं।
पेपर दिखाता है कि क्यूबिकक्वांट इन दोनों पथों के लिए एक साथ अच्छी तरह से काम करने के लिए "फिट" किया जा सकता है। यह एक ऐसी चाबी डिजाइन करने जैसा है जो दो अलग-अलग तालों में फिट हो सके। शोधकर्ता ने पाया कि छोटे कार्यों के लिए, मानक तरीका तेज़ है, लेकिन जैसे-जैसे कार्य बड़ा होता जाता है (डेटा की अधिक पंक्तियाँ), डायनेमिक-A8 पथ काफी तेज़ हो जाता है (NVIDIA H200 GPU पर कुछ परीक्षणों में 4.46x तक तेज़)।
यह क्या नहीं करता (द "नो" लिस्ट)
यह जानना महत्वपूर्ण है कि पेपर के अनुसार क्यूबिकक्वांट क्या नहीं करता है:
- यह AI बुद्धिमत्ता के लिए कोई जादुई समाधान नहीं है। पेपर स्पष्ट रूप से कहता है कि उन्होंने यह नहीं मापा है कि क्या यह AI को स्मार्ट बनाता है या निर्देशों का पालन करने में बेहतर बनाता है। यह एक भविष्य का प्रश्न है।
- यह सार्वभौमिक गति वृद्धि (universal speedup) नहीं है। गति लाभ डेटा के आकार और कंप्यूटर चिप के प्रकार पर बहुत अधिक निर्भर करता है। बहुत छोटे कार्यों के लिए, मानक तरीका अभी भी तेज़ हो सकता है।
- यह "परसिस्टेंट एक्टिवेशन" (Persistent Activation) की समस्या को हल नहीं करता है। शोधकर्ता ने स्थान बचाने के लिए स्टेप्स के बीच संपीड़ित (compressed) संख्याओं को मेमोरी में रखने की कोशिश की, लेकिन इसने वास्तव में काम धीमा कर दिया क्योंकि कंप्यूटर डेटा को प्रबंधित करने में बहुत अधिक समय बिता रहा था। इसलिए, उन्होंने फिलहाल के लिए इसे खारिज कर दिया है।
निष्कर्ष
क्यूबिकक्वांट AI वेट्स को पैक करने का एक चतुर नया तरीका है जो डेटा के आकार के अनुकूल होने के लिए एक सरल गणितीय वक्र का उपयोग करता है। यह एक बेहतरीन संतुलन प्रदान करता है: यह कठोर तरीकों की तुलना में विवरणों को बेहतर ढंग से कैप्चर करने के लिए पर्याप्त लचीला है, लेकिन आधुनिक कंप्यूटरों पर तेज़ी से चलाने के लिए पर्याप्त सरल भी है। गणित सही है, सिमुलेशन सटीकता में बड़े सुधार दिखाते हैं, और शक्तिशाली GPUs पर शुरुआती गति परीक्षण आशाजनक हैं। लेकिन किसी भी नए उपकरण की तरह, इसे वास्तविक दुनिया में यह देखने के लिए और अधिक परीक्षण की आवश्यकता है कि क्या यह वास्तव में हमारे द्वारा AI बनाने और उपयोग करने के तरीके को बदल देता है। फिलहाल के लिए, यह कुशल AI मॉडलों की अगली पीढ़ी के लिए एक बहुत ही मजबूत दावेदार है।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।