Zubnet AIसीखेंWiki › PagedAttention
बुनियादी ढांचा

PagedAttention

KV cache के लिए एक मेमोरी प्रबंधन तकनीक जो ऑपरेटिंग सिस्टम वर्चुअल मेमोरी से उधार लेती है। प्रत्येक अनुरोध के KV cache के लिए GPU मेमोरी का एक सन्निहित ब्लॉक आवंटित करने के बजाय (जो विखंडन के माध्यम से मेमोरी बर्बाद करता है), PagedAttention cache को गैर-सन्निहित ब्लॉकों ("pages") में संग्रहीत करता है जो मांग पर आवंटित किए जाते हैं और सामान्य उपसर्गों वाले अनुरोधों में साझा किए जा सकते हैं।

यह क्यों मायने रखता है

PagedAttention vLLM के पीछे का नवाचार है और अब अधिकांश LLM सर्विंग फ़्रेमवर्क द्वारा अपनाया गया है। इसने विखंडन से मेमोरी बर्बादी को समाप्त करके भोले कार्यान्वयन की तुलना में सर्विंग थ्रूपुट 2–4x बढ़ा दिया। इसके बिना, कई समवर्ती उपयोगकर्ताओं को लंबे-संदर्भ मॉडल की सेवा नाटकीय रूप से अधिक महंगी होगी।

गहन अध्ययन

PagedAttention जो समस्या हल करता है: जब एक अनुरोध आता है, तो आप नहीं जानते कि प्रतिक्रिया कितनी लंबी होगी, इसलिए आपको अधिकतम संभव लंबाई के लिए KV cache पूर्व-आवंटित करना चाहिए। यदि अधिकतम लंबाई 4096 टोकन है लेकिन प्रतिक्रिया केवल 200 टोकन है, तो आवंटित मेमोरी का 95% बर्बाद हो जाता है। सैकड़ों समवर्ती अनुरोधों से गुणा करें और GPU मेमोरी जल्दी भर जाती है, जो थ्रूपुट को सीमित करती है।

वर्चुअल मेमोरी सादृश्य

PagedAttention KV cache को निश्चित आकार के pages (जैसे, प्रति page 16 टोकन) में विभाजित करता है। Pages केवल आवश्यकता होने पर आवंटित किए जाते हैं और GPU मेमोरी में कहीं भी संग्रहीत किए जा सकते हैं (गैर-सन्निहित)। एक page table तार्किक स्थितियों को भौतिक मेमोरी स्थानों पर मैप करती है, ठीक OS वर्चुअल मेमोरी की तरह। यह विखंडन को समाप्त करता है: मेमोरी page-दर-page आवंटित होती है जैसे प्रतिक्रिया बढ़ती है, और मुक्त किए गए pages तुरंत नए अनुरोधों के लिए उपलब्ध होते हैं।

Prefix साझाकरण

एक शक्तिशाली एक्सटेंशन: जब कई अनुरोध एक ही प्रॉम्प्ट prefix साझा करते हैं (साझा system prompts के साथ सामान्य), उस prefix के लिए उनके KV cache pages भौतिक रूप से साझा किए जा सकते हैं — एक बार मेमोरी में संग्रहीत लेकिन सभी अनुरोधों द्वारा संदर्भित। यह OS डिज़ाइन से copy-on-write सिमेंटिक्स है जो LLM सर्विंग पर लागू किया गया है। उन अनुप्रयोगों के लिए जहां कई उपयोगकर्ता एक ही system prompt साझा करते हैं, यह साझा भाग के लिए मेमोरी उपयोग को 50%+ तक कम कर सकता है।

संबंधित अवधारणाएँ

← सभी शब्द
← OpenAI Perplexity →