PersistentKV: Page-Aware Decode Scheduling for Long-Context LLM Serving on Commodity GPUs
PersistentKV एक नेटिव ब्लॉक-टेबल डिकोड अटेंशन इंजन और एक एडेप्टिव, पेज-अवेयर शेड्यूलिंग पॉलिसी पेश करता है जो बैच साइज और वर्कलोड विशेषताओं के आधार पर FlashInfer और विशिष्ट वर्कक्यू (workqueue) रणनीतियों के बीच गतिशील रूप से चयन करके कमोडिटी GPUs पर लॉन्ग-कॉन्टेक्स्ट LLM सर्विंग को अनुकूलित करता है, जिससे मौजूदा सिंगल-कर्नेल दृष्टिकोणों की तुलना में महत्वपूर्ण थ्रूपुट सुधार प्राप्त होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक विशाल पुस्तकालय चला रहे हैं जहाँ एक अकेला लाइब्रेरियन (AI) एक ही समय में कई अलग-अलग लोगों (उपयोगकर्ताओं) के सवालों के जवाब देने की कोशिश कर रहा है। ऐसा करने के लिए, लाइब्रेरियन को हर बातचीत के लिए तथ्यों की एक विशाल, लगातार बढ़ती हुई नोटबुक ("KV cache") रखनी पड़ती है।
समस्या यह है कि आधुनिक पुस्तकालयों में, ये नोटबुक बहुत बड़ी होती हैं। लाइब्रेरियन जवाब लिखने के बजाय सही नोट्स खोजने के लिए पन्ने पलटने और अलमारियों तक जाने में अधिक समय बिता देता है। यही वह "मेमोरी ट्रैफिक" (memory traffic) की समस्या है जो AI को धीमा कर देती है।
PersistentKV इस काम को करने के तरीके को व्यवस्थित करने का एक नया तरीका है ताकि वे तेज़ हो सकें, विशेष रूप से मानक, सामान्य कंप्यूटरों (जैसे गेमिंग लैपटॉप) पर, न कि बहुत महंगे डेटा सेंटर वाले मशीनों पर।
यहाँ सरल उपमाओं (analogies) का उपयोग करके इसका विवरण दिया गया है:
1. समस्या: "एक ही आकार सबके लिए" (One-Size-Fits-All) वाली गलती
वर्तमान में, अधिकांश AI सिस्टम एक बहुत ही कुशल विधि का उपयोग करते हैं जिसे FlashInfer कहा जाता है। FlashInfer को एक अत्यधिक प्रशिक्षित लाइब्रेरियन के रूप में सोचें जो उन लोगों की भीड़ को संभालने में माहिर है जिनके सवाल छोटे और सरल होते हैं। वे एक साथ पूरे समूह को बहुत तेज़ी से प्रोसेस कर सकते हैं।
हालाँकि, यह विधि संघर्ष करती है जब:
- भीड़ छोटी है, लेकिन सवाल बहुत बड़े हैं: यदि केवल एक व्यक्ति बहुत लंबा, जटिल प्रश्न पूछ रहा है (एक "लॉन्ग-कॉन्टेक्स्ट" क्वेरी), तो लाइब्रेरियन का उपयोग कम हो जाता है। वे अगले व्यक्ति के आने का इंतज़ार करते हैं, जिससे समय बर्बाद होता है।
- भीड़ मिली-जुली है: यदि आपके पास छोटे सवाल पूछने वाले और बहुत लंबे सवाल पूछने वाले लोगों का मिश्रण है, तो सिस्टम सभी को एक ही "बैच" में डालने की कोशिश करता है। यह एक ऐसे व्यक्ति को लाइन में खड़ा करने जैसा है जिसने 1-पेज का निबंध लिखा है और उसे किसी ऐसे व्यक्ति के साथ खड़ा कर दिया है जो 100-पेज का उपन्यास लिख रहा है, या इससे भी बुरा, छोटे निबंध को खाली पन्नों के साथ भरने की कोशिश करना ताकि वह उपन्यास जैसा दिखे। यह बेकार प्रयास पैदा करता है।
2. समाधान: "स्मार्ट स्प्लिटिंग" रणनीति (PersistentKV)
लेखकों ने एक नया सिस्टम बनाया है जिसे PersistentKV कहा जाता है। सभी को एक बड़े समूह में डालने के बजाय, यह सिस्टम एक स्मार्ट मैनेजर की तरह काम करता है जो प्रत्येक व्यक्ति की विशिष्ट आवश्यकताओं को देखता है और काम को अलग तरह से विभाजित करता है।
- "स्प्लिट" (विभाजन) की उपमा: कल्पना करें कि एक लंबा उपन्यास पढ़ा जाना है। एक व्यक्ति द्वारा एक बार में पूरी चीज़ पढ़ने के बजाय, मैनेजर किताब को 32 छोटे अध्यायों में काट देता है। वे एक ही समय में उस किताब के विभिन्न हिस्सों को पढ़ने के लिए अलग-अलग सहायकों को सौंप देते हैं।
- यह क्यों मदद करता है: यदि केवल एक व्यक्ति एक लंबी कहानी पूछ रहा है, तो यह "स्प्लिटिंग" (विभाजन) पद्धति टीम को व्यस्त रखती है ताकि वे एक ही लंबी कहानी के अलग-अलग अध्यायों पर एक साथ काम कर सकें। यह कंप्यूटर के मस्तिष्क में "खाली सीटों" को भर देता है।
- "वर्क क्यू" (कार्य कतार) की उपमा: पुराने सिस्टम में, यदि 8 लोग अलग-अलग लंबाई की कहानियाँ दे रहे हैं, तो सिस्टम 16 अलग-अलग छोटे कार्य (प्रत्येक लंबाई के लिए एक) शुरू करने की कोशिश कर सकता है, जो अराजक और धीमा है।
- PersistentKV का समाधान: यह एक "कॉम्पैक्ट वर्क क्यू" का उपयोग करता है। यह 8 लोगों को देखता है, देखता है कि वास्तव में किसे क्या चाहिए, और कार्यों की एक एकल, कुशल सूची बनाता है। यह केवल उन्हीं सहायकों को काम भेजता है जिन्हें वास्तव में इसकी आवश्यकता है, खाली पन्नों को छोड़ देता है।
3. "एडेप्टिव पॉलिसी" (अनुकूलन नीति): स्मार्ट मैनेजर
इस पेपर का सबसे महत्वपूर्ण हिस्सा केवल नया टूल नहीं है; यह निर्णय लेने का नियम है। लेखकों ने महसूस किया कि "Splitting" (विभाजन) रणनीति हमेशा बेहतर नहीं होती है।
- परिदृश्य A (छोटा समूह, लंबी कहानी): यदि आपके पास केवल 1 व्यक्ति है जिसके पास एक लंबी कहानी है, तो नई "Splitting" विधि विजेता है। यह 1.4x की गति से चीज़ों को तेज़ करती है।
- परिदृश्य B (मध्यम समूह, मिश्रित कहानियाँ): यदि आपके पास मिश्रित लंबाई की कहानियों वाले 8 लोग हैं, तो "Compact Work Queue" विजेता है। यह लगभग 1.2x की गति से चीज़ों को तेज़ करता है।
- परिदृश्य C (द "गोल्डिलॉक्स" ज़ोन - 4 लोग): यदि आपके पास 4 लोग हैं, तो नया तरीका वास्तव में धीमा हो जाता है क्योंकि काम को विभाजित करने और जोड़ने का ओवरहेड बहुत अधिक समय लेता है।
- समाधान: सिस्टम इतना स्मार्ट है कि वह कह सकता है, "हे, 4 लोगों के लिए, चलिए पुराने, भरोसेमंद FlashInfer का उपयोग करते हैं।" यह स्थिति के आधार पर स्वचालित रूप से टूल बदल देता है।
4. परिणाम: वास्तव में क्या हुआ?
शोधकर्ताओं ने इसका परीक्षण एक मानक RTX 3060 ग्राफिक्स कार्ड (एक सामान्य उपभोक्ता GPU, सुपरकंप्यूटर नहीं) पर किया।
- सटीकता (Accuracy): उनके उत्तर मानक विधि के समान ही सही थे (बहुत मामूली अंतर के भीतर)।
- गति (Speed):
- एकल, बहुत लंबी बातचीत के लिए, वे 40% तेज़ थे।
- मिश्रित बातचीत की लंबाई वाले 8 लोगों के समूहों के लिए, वे 6% से 26% तेज़ थे।
- 4 लोगों के समूहों के लिए, उन्होंने नया तरीका आज़माया नहीं; वे पुराने तरीके पर टिके रहे ताकि देरी से बचा जा सके।
मुख्य निष्कर्ष (The Bottom Line)
यह पेपर यह दावा नहीं करता है कि उनकी नई विधि हर स्थिति के लिए "सर्वश्रेष्ठ" है। इसके बजाय, यह साबित करता है कि आप काम को कैसे शेड्यूल करते हैं वह गणित जितना ही महत्वपूर्ण है।
AI को एक लचीले मैनेजर की तरह मानकर, जो यह जानता है कि कब एक बड़े काम को टुकड़ों में विभाजित करना है और कब पुराने रूटीन पर टिके रहना है, वे मानक कंप्यूटरों को लंबी, जटिल AI बातचीत चलाने के लिए काफी तेज़ बना सकते हैं। यह भीड़ के आकार के लिए सही उपकरण खोजने के बारे में है, न कि हर काम के लिए एक ही हथौड़े का उपयोग करने के बारे में।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।