एक मॉडल की सटीकता कम करके इसे छोटा और तेज़ बनाना। एक 32-बिट फ्लोटिंग पॉइंट में प्रशिक्षित मॉडल को 8-बिट, 4-बिट या भी कम तक क्वांटाइज किया जा सकता है — इसके आकार को 4-8 गुना कम करते हुए आश्चर्यजनक रूप से छोटे गुणवत्ता के नुकसान के साथ। GGUF, llama.cpp के माध्यम से स्थानीय अनुमान के लिए लोकप्रिय फॉर्मेट है।
Quantization को समझने के लिए, आपको यह समझना होगा कि यह क्या compress कर रहा है। एक न्यूरल नेटवर्क का "ज्ञान" अरबों संख्यात्मक parameters (weights) के रूप में संग्रहीत होता है, हर एक एक floating-point संख्या। प्रशिक्षण के दौरान, इन्हें आम तौर पर FP32 (32-bit floating point) या BF16 (bfloat16, 16-bit) में संग्रहीत किया जाता है। BF16 में एक 7-अरब-parameter मॉडल 7B × 2 bytes = 14GB मेमोरी लेता है। Quantization हर weight की परिशुद्धता को कम करता है — इसे कम bits के साथ representing करता है। INT8 (8-bit integer) पर, वही मॉडल ~7GB तक shrinks होता है। INT4 (4-bit) पर, यह ~3.5GB है। मुख्य अंतर्दृष्टि यह है कि neural network weights आश्चर्यजनक रूप से redundant हैं — आपको वास्तव में उन्हें usefully represent करने के लिए 16 bits की परिशुद्धता की आवश्यकता नहीं है। अधिकांश weights शून्य के आसपास cluster होते हैं और बहुत मोटे representations के साथ approximated किए जा सकते हैं।
आप जिन मुख्य quantization formats का सामना करेंगे उनमें से प्रत्येक विभिन्न तकनीकी दृष्टिकोण लेता है। GPTQ (GPU-optimized, post-training quantization) पहली व्यावहारिक विधियों में से एक थी — यह विश्लेषण करता है कि calibration डेटा पर वास्तविक inference के दौरान weights कैसे interact करते हैं और उन्हें इस तरह से quantize करता है जो error propagation को कम करता है। AWQ (Activation-aware Weight Quantization) ने मॉडल quality के लिए सबसे अधिक मायने रखने वाले weights के छोटे प्रतिशत पर ध्यान केंद्रित करके और उन्हें उच्च परिशुद्धता के साथ protect करके इस पर सुधार किया। GGUF llama.cpp द्वारा उपयोग किया जाने वाला format है और CPUs तथा GPUs दोनों पर flexible mixed-precision quantization के लिए डिज़ाइन किया गया है। GGUF फ़ाइलों में naming convention आपको बताती है कि आपको क्या मिल रहा है: Q4_K_M का अर्थ है medium quality पर K-quant विधि का उपयोग करके 4-bit quantization। Q5_K_M 5-bit है। Q2_K आक्रामक 2-bit (noticeable quality हानि) है। Q8_0 8-bit (लगभग lossless) है।
Quantization से quality हानि वास्तविक है लेकिन अक्सर overstated है। BF16 से Q8 (8-bit) में जाना अनिवार्य रूप से free है — benchmarks आम तौर पर मानक मूल्यांकनों पर 0.5% से कम degradation दिखाते हैं। Q5_K_M अभी भी मॉडल की अधिकांश क्षमता बनाए रखता है और अक्सर local inference के लिए मधुर बिंदु है। Q4_K_M वह जगह है जहाँ आप सूक्ष्म अंतरों को नोटिस करना शुरू करते हैं: मॉडल numbers के साथ थोड़ा कम सटीक हो सकता है, कभी-कभी बहुत लंबे outputs पर thread खो सकता है, या जटिल निर्देशों का पालन करने में marginally बदतर हो सकता है। 4-bit से नीचे, quality अधिक noticeably degrades होती है — Q2 और Q3 quantizations एक मॉडल को noticeably dumber बना सकते हैं, विशेष रूप से reasoning कार्यों पर। सामान्य thumb नियम है: रोज़मर्रा के उपयोग के लिए Q4_K_M या Q5_K_M तक quantize करें, और केवल कम जाएँ यदि आप शाब्दिक रूप से अपनी VRAM में मॉडल को अन्यथा fit नहीं कर सकते।
Quantization का एक दूसरा आयाम है जो अक्सर overlooked हो जाता है: यह केवल मेमोरी नहीं बचाता, यह inference को तेज़ बनाता है। यह counterintuitive है यदि आप quantized math को "approximate" और इसलिए धीमा सोचते हैं। लेकिन LLM inference के लिए, token generation के दौरान bottleneck VRAM से मॉडल weights पढ़ना है (memory bandwidth), उनके साथ computing नहीं। एक Q4 मॉडल में Q8 की तुलना में आधा डेटा पढ़ने के लिए होता है, इसलिए tokens लगभग दो गुना तेज़ी से बाहर आते हैं — यह मानते हुए कि आपका inference engine quantized compute का सही ढंग से समर्थन करता है। यही कारण है कि एक desktop GPU पर Q4_K_M मॉडल चलाने वाला llama.cpp कभी-कभी एक cloud API के tokens-per-second से मेल खा सकता है: quantized मॉडल hardware की प्रति इकाई genuinely अधिक कुशल है। trade-off हमेशा वही होता है — आप गति और access के लिए कुछ quality का व्यापार कर रहे हैं — लेकिन कई applications के लिए, यह एक अच्छा व्यापार है।
जानने योग्य नवीनतम विकास quantization-aware training (QAT) है, जहाँ मॉडल को बाद में quantize करने के बजाय शुरुआत से quantization को ध्यान में रखकर प्रशिक्षित किया जाता है। Meta ने Llama मॉडलों के QAT संस्करण जारी किए जो उसी bit width पर post-training-quantized समकक्षों से बेहतर प्रदर्शन करते हैं। यह दृष्टिकोण ऐसे मॉडल उत्पन्न करता है जो कम परिशुद्धता पर काम करने के लिए "born" हैं बजाय इसके कि उन पर थोपा जाए, और यह संभवतः वहाँ है जहाँ क्षेत्र जा रहा है क्योंकि local inference बढ़ना जारी है।