इंटेंस INT quantization के सटीकता पर नकारात्मक प्रभाव के बिना H100/Blackwell पर कम latency की आवश्यकता है।
→TensorRT-LLM के माध्यम से FP8 (E4M3) quantization का उपयोग करें; Hopper और Blackwell में native FP8 Tensor Cores हैं।
क्यों: FP8, INT8 की तुलना में dynamic range को बेहतर ढंग से संरक्षित करता है और Hopper+ पर पूर्ण हार्डवेयर गति से चलता है, जिससे INT8-क्लास throughput पर लगभग FP16 गुणवत्ता मिलती है।
संदर्भ↗
मॉडल मुश्किल से GPU memory में फिट होता है और throughput memory-bandwidth-bound है।
→INT4 weight-only quantization (AWQ या GPTQ) लागू करें; activations को FP16/FP8 में रखें।
क्यों: Weight-only INT4 लगभग INT8 की तुलना में memory को आधा कर देता है और bandwidth के दबाव को कम करता है; activation precision उच्च रहता है इसलिए सटीकता का नुकसान कम होता है।
post-training quantization और quantization-aware training के बीच निर्णय लेना।
→PTQ से शुरू करें (एक प्रतिनिधि सैंपल पर कैलिब्रेट करें); QAT पर तभी वापस जाएं जब PTQ सटीकता का नुकसान बजट से अधिक हो।
क्यों: PTQ तेज़ है और उसे किसी retraining की आवश्यकता नहीं है; QAT सटीकता को पुनर्प्राप्त करता है लेकिन एक training run का खर्च आता है, इसलिए इसे precision-critical मॉडलों के लिए आरक्षित रखें।
लंबे-context serving में जहाँ KV cache memory पर हावी होता है और batch size को सीमित करता है।
→TensorRT-LLM में FP8 या INT8 KV-cache quantization सक्षम करें।
क्यों: KV cache sequence length × batch के साथ बढ़ता है; इसे quantize करने से बड़ी batches और लंबे contexts के लिए memory खाली होती है, जिसका गुणवत्ता पर न्यूनतम प्रभाव पड़ता है।
मिश्रित रिक्वेस्ट लंबाई static batching के साथ GPU निष्क्रिय समय का कारण बनती है।
→TensorRT-LLM में in-flight (continuous) batching का उपयोग करें ताकि समाप्त हुई sequences को बाहर कर दिया जाए और नई sequences बीच में ही जुड़ जाएं।
क्यों: Continuous batching GPU को संतृप्त रखता है और heterogeneous request streams के लिए throughput को static batching से कहीं अधिक बढ़ाता है।
संदर्भ↗
एक बड़ा teacher मॉडल गुणवत्ता को पूरा करता है लेकिन latency और cost लक्ष्य को पूरा नहीं कर पाता।
→एक छोटे student मॉडल में Distill करें, फिर inference के लिए student को quantize करें।
क्यों: Distillation क्षमता को एक सस्ती architecture में स्थानांतरित करता है; quantization के साथ मिलकर यह cost/latency बचत को बढ़ाता है।
एक interactive use case के लिए single-stream latency बहुत अधिक है।
→एक छोटे draft मॉडल के साथ speculative decoding लागू करें जिसे target मॉडल द्वारा सत्यापित किया गया हो।
क्यों: draft कई tokens का प्रस्ताव करता है जिन्हें बड़ा मॉडल एक पास में सत्यापित करता है, जिससे output distribution बदले बिना wall-clock latency कम हो जाती है।
हर चीज़ को INT4 में quantize करने से कुछ संवेदनशील layers पर सटीकता कम हो जाती है।
→mixed-precision का उपयोग करें: संवेदनशील layers (जैसे final projection, attention) को उच्च precision पर रखें और बाकी को quantize करें।
क्यों: प्रति-layer संवेदनशीलता भिन्न होती है; selective precision वहाँ सटीकता की रक्षा करती है जहाँ यह मायने रखती है जबकि weights के बड़े हिस्से को अभी भी कम करती है।
एक उचित quantization scheme के बावजूद PTQ सटीकता खराब है।
→production traffic से मेल खाते हुए एक in-distribution सैंपल (सैकड़ों प्रतिनिधि prompts) के साथ recalibrate करें।
क्यों: Calibration activation ranges सेट करता है; एक गैर-प्रतिनिधि सैंपल खराब scales और टाली जा सकने वाली सटीकता का नुकसान पैदा करता है।