Google TurboQuant: अत्यधिक compression के साथ AI efficiency को फिर से परिभाषित करना
(research.google)- यह quantization algorithms का एक सेट है जो high-dimensional vectors की memory overhead समस्या को मूल रूप से हल करता है, और LLM के key-value cache compression तथा vector search दोनों पर लागू किया जा सकता है
- PolarQuant से data को high-quality में compress करने के बाद, QJL algorithm केवल 1-bit से residual error को हटाता है — यह एक 2-stage compression architecture है
- training या fine-tuning के बिना key-value cache को 3-bit तक quantize करते हुए भी model accuracy में कोई गिरावट नहीं होती, और H100 GPU पर अधिकतम 8x performance improvement हासिल किया गया
- vector search में भी बड़े codebook या dataset-specific tuning के बिना optimal recall ratio दर्ज किया गया, और मौजूदा state-of-the-art techniques से बेहतर प्रदर्शन किया
- यह एक मूलभूत algorithmic contribution है जिसमें theoretical lower bound के करीब पहुँचने वाली provable efficiency है, और Gemini जैसे models व large-scale semantic search infrastructure में इसकी अहम भूमिका की उम्मीद है
वेक्टर और quantization की पृष्ठभूमि
- वेक्टर वह मूलभूत तरीका हैं जिनसे AI models जानकारी को समझते और process करते हैं; high-dimensional vectors image features, शब्दों के अर्थ, और dataset properties जैसी जटिल जानकारी को दर्शाते हैं
- high-dimensional vectors बहुत अधिक memory का उपयोग करते हैं, जिससे key-value cache (अक्सर उपयोग होने वाली जानकारी को सरल labels के रूप में संग्रहीत कर तुरंत खोजने योग्य बनाने वाली तेज digital reference sheet) में bottleneck पैदा होता है
- vector quantization high-dimensional vectors का आकार घटाने की एक पारंपरिक data compression technique है, जो vector search की speed बढ़ाने और key-value cache bottleneck कम करने में मदद करती है
- पारंपरिक vector quantization में छोटे data blocks के लिए quantization constants को full precision में compute और store करना पड़ता है, जिससे स्वयं memory overhead पैदा होता है; हर संख्या पर 1~2 bits की अतिरिक्त लागत quantization के उद्देश्य को आंशिक रूप से कम कर देती है
TurboQuant कैसे काम करता है
- TurboQuant एक compression method है जो accuracy loss के बिना model size में बड़ी कमी हासिल करता है, और key-value cache compression तथा vector search दोनों को support करता है
- यह दो मुख्य चरणों से बना है:
चरण 1: high-quality compression (PolarQuant method)
- data vectors को random rotation किया जाता है ताकि data की geometric structure सरल हो जाए, फिर standard high-quality quantizer को vector के हर हिस्से पर अलग-अलग लागू किया जाता है
- इस चरण में अधिकांश bits का उपयोग करके original vector की मुख्य अवधारणाओं और उनकी intensity को capture किया जाता है
चरण 2: छिपी हुई error को हटाना
- चरण 1 के बाद बची सूक्ष्म error पर QJL algorithm को केवल 1-bit residual compression power के साथ लागू किया जाता है
- QJL एक mathematical error checker की तरह काम करता है और bias को हटाकर अधिक सटीक attention scores देता है
QJL: zero-overhead 1-bit technique
- यह Johnson-Lindenstrauss transform का उपयोग करके high-dimensional data को घटाता है, जबकि data points के बीच की मुख्य distance और relationships को सुरक्षित रखता है
- परिणामस्वरूप vector की हर संख्या को एक single sign bit (+1 या -1) तक घटा दिया जाता है, जिससे memory overhead शून्य हो जाता है
- accuracy बनाए रखने के लिए high-precision queries और low-precision simplified data के बीच रणनीतिक संतुलन बनाने वाला एक special estimator इस्तेमाल किया जाता है
- इससे model attention scores को सटीक रूप से compute कर सकता है, जो यह तय करते हैं कि input के कौन से हिस्से महत्वपूर्ण हैं और किन्हें नज़रअंदाज़ किया जा सकता है
PolarQuant: compression के लिए एक नया "angle"
- यह memory overhead समस्या को पूरी तरह अलग तरीके से हल करने वाला approach है
- standard coordinates (X, Y, Z) की जगह vector को polar coordinates में बदला जाता है — जैसे "पूर्व में 3 blocks, उत्तर में 4 blocks" को "37 degree दिशा में 5 blocks" से बदलना
- इस transformation का परिणाम दो तरह की जानकारी से बनता है: core data की intensity दिखाने वाला radius और data की direction/meaning दिखाने वाले angles
- क्योंकि angles के patterns ज्ञात और अत्यधिक concentrated होते हैं, इसलिए लगातार बदलती सीमाओं वाली "square" grid के बजाय पहले से ज्ञात सीमाओं वाली fixed "circular" grid पर data map किया जा सकता है, जिससे महँगा data normalization step हट जाता है
- d-dimensional vector में coordinate pairs को group करके polar coordinate system में map किया जाता है, फिर radii को pairs में जोड़कर recursive polar transform दोहराया जाता है, और अंत में यह एक radius तथा descriptive angles के set में distilled हो जाता है
experiments और results
long-context benchmark performance
- LongBench, Needle In A Haystack, ZeroSCROLLS, RULER, L-Eval जैसे standard long-context benchmarks पर open-source LLMs (Gemma, Mistral) का उपयोग कर evaluation किया गया
- TurboQuant ने dot product distortion और recall दोनों में optimal scores हासिल किए, साथ ही key-value memory footprint को न्यूनतम रखा
- Llama-3.1-8B-Instruct model में question answering, code generation, summarization जैसी विभिन्न tasks पर KIVI baseline के मुकाबले मजबूत performance दिखाया
Needle-in-Haystack task
- बड़े text में specific information खोजने वाले test में TurboQuant ने सभी benchmarks पर perfect downstream results हासिल किए
- key-value memory size को कम से कम 6x घटा दिया गया
- PolarQuant ने भी इस task में लगभग lossless स्तर का प्रदर्शन किया
runtime performance
- training या fine-tuning के बिना key-value cache को 3-bit में quantize करते हुए भी model accuracy पर कोई समझौता नहीं
- original LLM से तेज runtime हासिल किया गया; implementation अत्यधिक efficient है और runtime overhead नगण्य है
- 4-bit TurboQuant ने H100 GPU पर 32-bit unquantized keys की तुलना में attention logits computation में अधिकतम 8x performance improvement दिखाया, JAX-optimized baseline के मुकाबले मापा गया
vector search performance
- high-dimensional vector search में PQ, RabbiQ जैसी state-of-the-art techniques के साथ comparative evaluation किया गया
- 1@k recall ratio का उपयोग किया गया, जो यह मापता है कि algorithm top-k approximations में वास्तविक top inner-product result को कितनी बार पकड़ता है
- बड़े लेकिन inefficient codebooks और dataset-specific tuning का उपयोग करने वाले baselines की तुलना में TurboQuant ने लगातार बेहतर recall ratio दर्ज किया
- GloVe dataset (d=200) में विभिन्न latest quantization baselines के मुकाबले optimal 1@k recall ratio हासिल किया
- data-oblivious तरीके से near-optimal distortion rate प्रदान करते हुए, 3-bit system की efficiency के साथ कहीं अधिक भारी models की precision बनाए रखी
आगे की संभावनाएँ
- TurboQuant, QJL, और PolarQuant केवल practical engineering solutions नहीं हैं, बल्कि मजबूत theoretical proofs से समर्थित मूलभूत algorithmic contributions भी हैं
- इनमें provable efficiency है और ये theoretical lower bounds के करीब काम करते हैं, इसलिए large-scale core systems में मजबूत और भरोसेमंद हैं
- Gemini जैसे models के key-value cache bottleneck को हल करना एक प्रमुख उपयोग है, लेकिन efficient online vector quantization का प्रभाव इससे कहीं व्यापक है
- जैसे-जैसे आधुनिक search keyword-centric approach से आगे बढ़कर intent और meaning की समझ की ओर जा रही है, वैसे-वैसे अरबों vectors वाले databases में semantically सबसे similar items खोजने के लिए vector search अनिवार्य हो रहा है
- TurboQuant न्यूनतम memory, लगभग zero preprocessing time, और state-of-the-art accuracy के साथ large-scale vector indexes को build और query करने में सक्षम बनाता है, जिससे Google-scale semantic search को अधिक तेज और efficient बनाया जा सकता है
4 टिप्पणियां
"Rotation अनंत शक्ति है। इस पर भरोसा करो।"
श्रद्धांजलि अर्पित करता हूँ।
मैंने सिर्फ़ इस टिप्पणी की वजह से लॉगिन किया।
Hacker News की टिप्पणियाँ
KV cache compression पर शोध वाकई एक दिलचस्प प्रगति है
लेकिन अफसोस है कि संबंधित शोध में मुख्य गणितीय मेकैनिज़्म का citation गायब है
high-dimensional geometry को संभालने के लिए geometric rotation लागू करने के बाद extreme quantization करने की तकनीक हमारी टीम के NeurIPS 2021 पेपर “DRIVE” में पहली बार प्रस्तावित की गई थी
इस rotation-आधारित approach और bias correction mechanism के जरिए optimal variance mean estimation हासिल किया गया था
बाद में Google के invited seminar में भी यह सामग्री प्रस्तुत की गई थी, और TurboQuant व PolarQuant की सैद्धांतिक समानताओं को देखते हुए उम्मीद है कि भविष्य के संस्करण में prior work का citation जोड़ा जाएगा
यानी क्या diagonal matrix और नया basis स्टोर करके अधिक compression किया जाता है?
कृपया समझाएँ कि इस शोध और MHLA का क्या संबंध है
ऐसे विचार हर कुछ साल में फिर से खोजे जाते हैं; उदाहरण के लिए 2017 के पेपर में भी इसी तरह का approach था
लेकिन यह भी संभव है कि शोधकर्ता ने काम काफ़ी आगे बढ़ जाने के बाद स्वतंत्र रूप से मिलती-जुलती सोच विकसित की हो
अच्छे विचार अक्सर उन लोगों तक स्वाभाविक रूप से पहुँचते हैं जो समस्या को गहराई से समझते हैं
“TurboQuant डेटा को random rotation देकर geometry को सरल बनाता है” — यह बात समझ नहीं आती
क्या rotation हमेशा कोई अधिक सरल रूप बना देगा, इसकी गारंटी है?
और “Johnson–Lindenstrauss transform से high-dimensional data को घटाकर हर vector को sign bit से व्यक्त किया जाता है” — इस हिस्से में भी यह बात सहज नहीं लगती कि एक ही boolean value से relational information बनी रहती है
कुछ dimensions में outlier activations उभरते हैं, और Adam optimizer की प्रकृति के कारण यह प्रभाव और बढ़ता है
संबंधित पेपर के रूप में SmoothQuant और Privileged Basis देखे जा सकते हैं
इससे अनावश्यक नियम सीखना घटता है और optimization अधिक स्थिर होता है
यानी model “अगर किसी खास dimension का कोई खास digit 5 है तो बिल्ली” जैसे तुच्छ नियम सीखने से बचता है
rotation matrix से गुणा करने पर डेटा अधिक समान रूप से वितरित होता है, जिससे efficient quantization संभव होती है
इसके बाद Lloyd–Max algorithm से boundaries और reconstruction values optimize किए जाते हैं, और बचा हुआ bias 1 bit से correct किया जाता है
इस तरह कम bits में भी उच्च precision बनाए रखी जा सकती है
उदाहरण के लिए, floating-point values को किसी दूसरी unit (bel→decibel) में बदलने पर वे अधिक समान मानों के रूप में व्यक्त हो सकते हैं, जिससे compression आसान हो जाती है
यानी दूर बिखरे डेटा को फिर से केंद्र के पास लाने की प्रक्रिया
और हर dimension को अलग-अलग encode किया जाता है, इसलिए पूरा vector एक अकेले boolean में नहीं सिमटता
यह blog post निम्न गुणवत्ता की है
graph के axis गलत label किए गए हैं, और video visualization भी Polar Quantization की अवधारणा बिल्कुल नहीं समझाती
एक और graph में axis 48 से शुरू होता है, जिससे वास्तविक अंतर बढ़ा-चढ़ाकर दिखता है
कुल मिलाकर visual material की विश्वसनीयता और communication quality कमजोर है
कोई पहले से ही इसे llama.cpp में implement कर रहा है
संबंधित commit देखें
उम्मीद है कि Johnson–Lindenstrauss theorem अब भी लागू रहेगी, जिससे हर coordinate की independent quantization सैद्धांतिक रूप से उचित होगी
domain knowledge कम है, लेकिन संरचना स्पष्ट दिखती है
4~6 हफ्तों में main branch में merge होने की संभावना काफ़ी है
TurboQuant को सहज रूप से समझाने वाला एक animation है
यह undergraduate स्तर पर व्यवस्थित किया गया एक सारांश है
मूल बात यह है कि KV cache को न्यूनतम information loss के साथ quantize करना
अधिकांश vectors high-dimensional sphere के equator के आसपास इकट्ठा होते हैं, इसलिए rotation के जरिए distribution को अधिक समान बनाकर entropy preservation बढ़ाई जाती है
PolarQuant ने polar-coordinate transform से यह करने की कोशिश की थी, लेकिन TurboQuant इसे सरल बनाता है और QJL bias correction जोड़ता है
अंततः PolarQuant + QJL + practical correction के जरिए high-efficiency compression हासिल होती है
blog post में बहुत-सी गलतियाँ हैं और यह उलझाऊ है
PolarQuant का hyperpolar coordinate codebook TurboQuant में भी आंशिक रूप से बना हुआ है
यह लेख AI components की व्याख्या के सबसे खराब स्तर में आता है
तकनीकी संदर्भ लगभग नहीं है
Johnson–Lindenstrauss theorem का उल्लेख है, लेकिन ठोस संबंध की व्याख्या नहीं है
जैसे “3 block east, 4 block north” को “5 block, 37 degree angle पर जाओ” कहकर समझाना — यह मिडिल स्कूल स्तर की उपमा जैसा लगता है
एक स्वतंत्र PyTorch implementation पहले ही जारी हो चुकी है
turboquant-pytorch
blog हाल में प्रकाशित हुआ है, लेकिन पेपर लगभग एक साल पहले arXiv पर जमा किया गया था
जानने की जिज्ञासा है कि क्या यह पहले से Gemini जैसे models में लागू हो चुका है, और अगर हाँ, तो क्या इससे व्यक्तिगत RAM लागत भी घट सकती है
हाल की compression research का वास्तविक applications तक पहुँचने का वेग आश्चर्यजनक है
जैसे image formats में AVIF और JPEG XL, video codec research से निकले विचारों से जुड़े हैं, वैसे ही AI quantization तकनीक भी जल्द वास्तविक inference environments में लागू हो सकती है
XYB color space जैसी कुछ अवधारणाएँ साझा हैं, और LLM में भी इसी तरह की custom engineering की ज़रूरत पड़ने की संभावना है