पूर्ण मैट्रिक्स के बजाय सक्रिय वेट: CPU पर स्पाइक मॉडल की INT8 डिकोडिंग

27 सितम्बर 202624 बार देखा गया

लेख बाइनरी स्पाइक गेटिंग वाले भाषा मॉडल के C++ कार्यान्वयन का वर्णन करता है: विरल प्रोजेक्शनों को INT8 में संसाधित किया जाता है, जबकि गणनाओं में केवल सक्रिय वज़नों को ध्यान में रखा जाता है। एकल-थ्रेड परीक्षण में शुरुआती INT8 संस्करण ने FP32 के 9,82 की तुलना में 23,31 टोकन/सेकंड की गति हासिल की और वज़नों के लिए मेमोरी को 3355,2 से घटाकर 1087,4 MiB कर दिया; घने प्रोजेक्शनों को INT4 में बदलने से डिकोडिंग थ्रूपुट कम हो गया।

पूर्ण मैट्रिक्स के बजाय सक्रिय वेट: CPU पर स्पाइक मॉडल की INT8 डिकोडिंग

स्पाइक्स वेट्स की प्रोसेसिंग को कैसे बदलते हैं

लेख «Spike-Aware INT8 Execution for Spiking Language Models on Commodity CPUs» में Ting Liu स्पाइकिंग लैंग्वेज मॉडल को CPU पर डिकोड करने का वर्णन करते हैं।

  • बाइनरी स्पाइकिंग ऐक्टिवेशन से केवल सक्रिय वेट कॉलम पढ़े जा सकते हैं।
  • गुणा की जगह वेट का योग लिया जाता है।

इस तरीके का व्यावहारिक लाभ यह है कि उन कॉलम को प्रोसेस नहीं करना पड़ता जो सक्रिय नहीं हुए। लाभ ऐक्टिवेशन की स्पार्सिटी पर निर्भर करता है, केवल वेट फ़ॉर्मैट पर नहीं।

INT8 पाथ कैसे काम करता है

C++ इम्प्लीमेंटेशन को 874M पैरामीटर वाले स्पाइक-गेटेड लैंग्वेज मॉडल पर जाँचा गया। इसमें स्पार्स और डेंस प्रोजेक्शन के लिए अलग-अलग मोड इस्तेमाल किए जाते हैं।

  • स्पार्स प्रोजेक्शन में वेट INT8 के column-major फ़ॉर्मैट में स्टोर किए जाते हैं।
  • एक्यूमुलेशन पूर्णांकों में किया जाता है, और स्केल हर आउटपुट चैनल के लिए केवल एक बार लागू होता है।
  • डेंस प्रोजेक्शन में row-major ऐक्सेस और ऐक्टिवेशन FP32 में बनाए रखे जाते हैं।

यह एक मिश्रित योजना है, मॉडल के सभी ऑपरेशनों को INT8 में बदलना नहीं। चयन का मानदंड यह है कि स्पार्स INT8 पाथ के लिए डेंस प्रोजेक्शन में FP32 बनाए रखना स्वीकार्य हो।

गति और स्टोरेज के कौन-से आँकड़े दिए गए हैं

प्रारंभिक चेकपॉइंट की तुलना एक थ्रेड पर की गई। इस परीक्षण में INT8 ने डिकोडिंग की अधिक थ्रूपुट और वेट स्टोरेज का कम आकार दिखाया।

प्रारंभिक चेकपॉइंट, एक थ्रेडडिकोडिंग की गतिवेट स्टोरेज
FP329.82 tokens/s3355.2 MiB
INT823.31 tokens/s1087.4 MiB

अंतिम चेकपॉइंट के लिए AMD Ryzen 7 5800X पर अलग परिणाम दिए गए हैं। इसकी परिस्थितियाँ प्रारंभिक चेकपॉइंट की तुलना से अलग हैं।

अंतिम चेकपॉइंट का INT8 मोडआँकड़ा
डिकोडिंग, एक थ्रेड22.63 tokens/s
डिकोडिंग, चार थ्रेड47.90 tokens/s
512 टोकन की सीक्वेंस का प्रीफ़िल, आठ थ्रेड94.68 tokens/s

इन आँकड़ों को सीधे एक ही तुलना तालिका में नहीं रखना चाहिए: ये अलग-अलग चेकपॉइंट और मोड से जुड़े हैं। थ्रूपुट का आकलन करते समय चेकपॉइंट का संस्करण और थ्रेड की संख्या, दोनों महत्वपूर्ण हैं।

INT4 वाला विकल्प क्या बदलता है

डेंस प्रोजेक्शन के लिए INT4 विकल्प स्टोरेज का आकार और 17.4% घटाता है। हालांकि, डिकोडिंग की थ्रूपुट 46.6% कम हो जाती है।

लेख के संशोधित संस्करण में शुद्ध INT4 के अमान्य परिणाम वापस ले लिए गए हैं। इसलिए बताया गया समझौता डेंस प्रोजेक्शन में INT4 से संबंधित है, पूरी तरह INT4 मॉडल से नहीं।

चयन का मानदंड यह है कि डिकोडिंग की गति से अधिक प्राथमिकता स्टोरेज को दी जाए। शुद्ध INT4 के परिणामों को प्रदर्शन के प्रमाण के रूप में इस्तेमाल नहीं किया जा सकता।

ऊर्जा खपत के बारे में क्या जानकारी है

ARM पर आउटपुट हेड के एक अलग अध्ययन में, उम्मीदवारों की जाँच के दो कॉन्फ़िगरेशन के लिए डिकोडिंग की सीमित अवधि वाली विंडो पर ऊर्जा के अधिक आँकड़े दर्ज किए गए।

लेख के संशोधित संस्करण में संख्यात्मक वैलिडेशन और ARM पर wall-power के आधार पर ऊर्जा खपत का अध्ययन भी जोड़ा गया है। CPU गति परीक्षणों के डेटा से ऊर्जा बचत का निष्कर्ष निकालना पर्याप्त नहीं है।

अक्सर पूछे जाने वाले प्रश्न

समान सामग्री

सभी सामग्री
पूर्ण मैट्रिक्स के बजाय सक्रिय वेट: CPU पर स्पाइक मॉडल की INT8 डिकोडिंग