एलएलएम में केवी कैश: समझ और शुरू से कार्यान्वयन
केवी कैश एलएलएम अनुमान के लिए एक कुशल तकनीक है जो मध्यवर्ती की और वैल्यू वेक्टरों को संग्रहीत करती है ताकि पुनः उपयोग किया जा सके, अनावश्यक गणनाओं से बचा जा सके। लेख अवधारणा को समझाता है और पायटोर्च में शुरू से कोड कार्यान्वयन प्रदान करता है, जिसमें दिखाया गया है कि टेक्स्ट जनरेशन के दौरान मल्टी-हेड अटेंशन तंत्र को की और वैल्यू कैश करने के लिए कैसे संशोधित किया जाए।
KV कैश पिछले अटेंशन गणनाओं से की (K) और वैल्यू (V) वेक्टरों को संग्रहीत करता है ताकि बाद के टोकन उत्पन्न करते समय उन्हें पुन: उपयोग किया जा सके, जिससे पुनर्गणना से बचकर अनुमान में तेजी आती है। KV कैश के बिना, प्रत्येक जनरेशन चरण में पिछले सभी टोकनों के लिए की और वैल्यू की पुनर्गणना होती है; कैश के साथ, केवल नए टोकन के वेक्टरों की गणना की जाती है और कैश में जोड़ दिए जाते हैं। लेख लेखक की पुस्तक के GPT-जैसे मॉडल पर आधारित कोड कार्यान्वयन प्रदान करता है। मुख्य परिवर्तन हैं: MultiHeadAttention क्लास में कैश बफर (cache_k और cache_v) जोड़ना, फॉरवर्ड विधि को संशोधित करना ताकि कैश का सशर्त उपयोग हो, एक रीसेट विधि जोड़ना, और use_cache फ्लैग को मॉडल के माध्यम से प्रचारित करना। जनरेशन में, जब use_cache सत्य होता है, तो मॉडल प्रारंभिक प्रॉम्प्ट के बाद केवल नए टोकन को संसाधित करता है, जबकि कैश के बिना यह प्रत्येक चरण में पूर्ण अनुक्रम को संसाधित करता है। एक सरल प्रदर्शन तुलना से पता चलता है कि KV कैश परीक्षण किए गए उदाहरण के लिए जनरेशन गति लगभग दोगुनी कर देता है।
स्रोत: Sebastian Raschka —
मूल
