NVIDIA H100 के साथ Llama 2 70B को टर्बोचार्ज करना
त्वरित LLM इंफ़रेंस की यात्रा

Perplexity के आंसर इंजन में प्रदर्शन की खोज हमें NVIDIA और AWS द्वारा प्रदान की जाने वाली नवीनतम तकनीक को अपनाने के लिए प्रेरित करती है। इस ब्लॉग में, हम अपने नवीनतम प्रयोगों के परिणामों को साझा करने के लिए उत्साहित हैं: विभिन्न हार्डवेयर और सॉफ़्टवेयर सेटिंग्स में Llama 2 70B इंफ़रेंस की तुलना।
हमारा LLM इंफ़रेंस प्लेटफ़ॉर्म, pplx-api, ओपन-सोर्स लाइब्रेरी द्वारा संचालित एक अत्याधुनिक स्टैक पर बनाया गया है। अक्टूबर में pplx-api का पब्लिक बीटा शुरू होने के बाद से, हम स्केलिंग की चुनौतियों से निपट रहे हैं और यह सीख रहे हैं कि बड़े पैमाने पर सफलता प्राप्त करने के लिए अपने कॉन्फ़िगरेशन को सर्वोत्तम तरीके से कैसे ट्यून किया जाए। इसने हमें निम्नलिखित मार्गदर्शक प्रश्नों के साथ प्रयोग करने के लिए प्रेरित किया:
हमारे GPUs को NVIDIA A100 से NVIDIA H100 में बदलने से मिलने वाला वास्तविक प्रदर्शन लाभ क्या है, जबकि अन्य सभी सेटिंग्स समान रहती हैं?
8-बिट फ़्लोटिंग पॉइंट (fp8) क्वांटाइज़ेशन का दक्षता लाभ क्या है, जिसके लिए H100 नेटिव सपोर्ट प्रदान करता है? इस क्वांटाइज़ेशन की सटीकता लागत क्या है?
टेंसर पैरलेलिज़्म और बैच साइज़ लेटेंसी और टोकन थ्रूपुट को कैसे प्रभावित करते हैं?
उपरोक्त को ध्यान में रखते हुए, कौन सा कॉन्फ़िगरेशन प्रदर्शन और लागत-दक्षता का सबसे अधिक स्केलेबल संतुलन प्रदान करता है?
प्रायोगिक सेटअप
हमने नेटवर्क लेटेंसी से बचने के लिए निम्नलिखित प्रयोग को स्थानीय बेंचमार्क की एक श्रृंखला के रूप में चलाया।
मुख्य मेट्रिक्स:
लेटेंसी: इंफ़रेंस सर्वर द्वारा अपना पूर्ण रिस्पॉन्स जनरेट करने में लगने वाला कुल समय।
थ्रूपुट: प्रति सेकंड, प्रति GPU आउटपुट टोकन की वह संख्या, जिसे इंफ़रेंस सर्वर सभी उपयोगकर्ताओं और अनुरोधों पर जनरेट कर सकता है।
स्थिरांक (कॉन्स्टेंट):
निम्नलिखित कारक मुख्य मेट्रिक्स को प्रभावित करेंगे, इसलिए हमने प्रयोग के विभिन्न परीक्षणों के दौरान उन्हें सुसंगत रखा।
AI मॉडल
प्रदर्शन LLM के आकार के साथ बढ़ता है। अधिक पैरामीटर्स के लिए अधिक गणनाओं की आवश्यकता होती है जिसके परिणामस्वरूप इंफ़रेंस धीमा हो जाता है। उदाहरण के लिए, जब अन्य सेटिंग्स समान होती हैं तो Llama 2 13B, Llama 2 70B की तुलना में तेज़ होता है। हम इस प्रयोग में Llama 2 70B के साथ बने हुए हैं क्योंकि हम सबसे सक्षम ओपन-सोर्स मॉडल की सेवा के लिए अनुकूलन करना चाहते हैं।
इनपुट/आउटपुट टोकन डेटासेट
प्रत्येक सैंपल अनुरोध/रिस्पॉन्स पेयर में इनपुट और आउटपुट टोकन की मात्रा प्रदर्शन मापों को प्रभावित कर सकती है। सामान्य तौर पर, आउटपुट टोकन जनरेशन कुल रिस्पॉन्स समय पर हावी होता है। जब डेटा का नमूना केवल LLM से "हाँ/नहीं" वाले जवाब प्राप्त करता है, तो निबंध लिखने के लिए कहने वाले नमूनों की तुलना में रिस्पॉन्स तेज़ होता है। हमारा डेटासेट 1024 इनपुट टोकन के साथ सिंथेटिक अनुरोधों से बना है जो 512 आउटपुट टोकन उत्पन्न करते हैं। यह वितरण Llama2 70B के हमारे सार्वजनिक डिप्लॉयमेंट पर देखे गए ट्रैफ़िक के वितरण से मेल खाने के लिए चुना गया था।
सॉफ़्टवेयर संस्करण
NVIDIA TensorRT-LLM (रिलीज़ v0.5.0) LLM इंफ़रेंस को ऑप्टिमाइज़ करने के लिए एक ओपन-सोर्स लाइब्रेरी है। 2023 के अंत में जारी, यह NVIDIA के कई इंफ़रेंस ऑप्टिमाइज़ेशन को संश्लेषित करता है और इस प्रयोग के प्रमुख मापदंडों के लिए अनुकूलन की एक लचीली परत प्रदान करता है: बैच साइज़, क्वांटाइज़ेशन और टेंसर पैरलेलिज़्म।
चर (वेरिएबल्स)
हमने कॉन्फ़िगरेशन के 4 अक्षों (एक्सिस) पर प्रयोग किया: टेंसर पैरलेलिज़्म, GPU आर्किटेक्चर, क्वांटाइज़ेशन और अधिकतम बैच साइज़। ये अक्ष परस्पर जुड़े हुए हैं क्योंकि ये प्रत्येक GPU मेमोरी के महत्वपूर्ण अड़चन संसाधन के संबंध में एक ट्रेडऑफ़ का प्रतिनिधित्व करते हैं।
GPU आर्किटेक्चर
नौवीं पीढ़ी का हॉपर (H100-HBM3-80GB / p5.48xlarge) GPU आर्किटेक्चर अपने पूर्ववर्ती, एम्पीयर (A100-SXM4-80GB / p4de.24xlarge) की तुलना में सुविधाओं की एक विशाल सूची पैक करता है, जिसमें 2x-6x गणना दरें और लगभग 2x GPU मेमोरी बैंडविड्थ शामिल हैं। GPU मेमोरी बैंडविड्थ इंफ़रेंस के लिए एक महत्वपूर्ण मेट्रिक है क्योंकि इंफ़रेंस के मैट्रिक्स गुणन (मैट्रिक्स मल्टीप्लिकेशन्स) की प्राथमिक लेटेंसी अड़चन GPU मेमोरी से कंप्यूट रजिस्टर में मॉडल डेटा के गीगाबाइट लोड करने से आती है। इन आंकड़ों के आधार पर, हमने परिकल्पना की कि NVIDIA H100 और A100 की तुलना से लेटेंसी और थ्रूपुट दोनों में 2x सुधार दिखाई देगा।
NVIDIA H100 और A100 के बीच एक और प्रमुख अंतर यह है कि H100 टेंसर कोर मूल रूप से 8-बिट फ़्लोटिंग पॉइंट (fp8) निर्देशों के लिए सपोर्ट जोड़ता है, जो नीचे विस्तृत और अधिक ऑप्टिमाइज़ेशन के लिए द्वार खोलता है। यही कारण है कि हम विशेष रूप से H100 के लिए fp8 और fp16 का उपयोग करते हैं।
इस प्रयोग में प्रति-GPU मेमोरी को सुसंगत रखने के लिए, हम अपने NVIDIA A100s और H100s दोनों के लिए 8x80GB GPU मेमोरी वाले नोड्स के साथ जुड़े रहे। उच्च बैच साइज़ को सक्षम करने के अलावा, GPU मेमोरी महत्वपूर्ण है क्योंकि तेज़ एक्सेस के लिए सर्वर स्टार्टअप के दौरान मॉडल के पैरामीटर्स को GPU मेमोरी में लोड किया जाता है। उदाहरण के लिए, यदि हमारे मॉडल में 70 बिलियन पैरामीटर्स में से प्रत्येक एक 16-बिट फ़्लोटिंग पॉइंट संख्या है, तो मॉडल आकार में लगभग 140GB है, जो एक सिंगल GPU पर फिट नहीं होता है। इसलिए टेंसर पैरलेलिज़्म की आवश्यकता है, जिसे हम नीचे समझाते हैं।
टेंसर पैरलेलिज़्म
टेंसर पैरलेलिज़्म इंफ़रेंस सर्वर को चलाने के लिए उपभोग किए गए GPU उपकरणों की संख्या को संदर्भित करता है। जब हम कई GPUs आवंटित करते हैं, तो TensorRT-LLM Llama2 70B चलाने के लिए आवश्यक न्यूनतम मेमोरी बजट तक पहुँचने में हमारी मदद करने के लिए उनके संसाधनों को एक साथ पूल करता है। हमारी परिकल्पना यह है कि उच्च टेंसर पैरलेलिज़्म की तुलना में कम टेंसर पैरलेलिज़्म के परिणामस्वरूप उच्च लेटेंसी (प्रत्येक बैच को संतुष्ट करने के लिए कम संसाधनों के उपभोग के कारण) होगी लेकिन प्रति GPU उच्च थ्रूपुट (बेहतर उपयोग के कारण) प्राप्त होगा।
क्वांटाइज़ेशन
क्वांटाइज़ेशन न्यूरल नेटवर्क द्वारा उपयोग किए जाने वाले वेट और एक्टिवेशन में सटीकता की कमी है। जब हम fp16 से fp8 में स्विच करते हैं तो GPU मेमोरी की खपत को आधा करने के लिए हम इस तकनीक का उपयोग करते हैं। यह कम कुल GPU मेमोरी उपयोग के साथ उसी मॉडल को चलाना संभव बनाता है, जिससे कम टेंसर पैरलेलिज़्म सक्षम होता है, जो थ्रूपुट को बढ़ाता है।
क्वांटाइज़ेशन के कार्यान्वयन में सटीकता को कम करने की क्षमता होती है। इस प्रकार, हमने WikiText कॉर्पस पर उनकी पर्प्लेक्सिटी सांख्यिकी की तुलना करके विभिन्न परिशुद्धताओं (प्रिसिजन) के लिए सटीकता का मूल्यांकन किया, जो कि एक माप है कि LLM वाक्य में प्रत्येक अगले टोकन की कितनी अच्छी भविष्यवाणी करता है। 8-बिट फ़्लोटिंग पॉइंट और 8-बिट वेट के साथ 8-बिट एक्टिवेशन और स्मूथक्वांट (w8a8 SQ) के लिए, WikiText पर fp16 की तुलना में पर्प्लेक्सिटी में कोई महत्वपूर्ण बदलाव (< 1%) नहीं था, इसलिए हम आगे बढ़ने के लिए आश्वस्त थे। हालाँकि, w4a16 ने पर्प्लेक्सिटी में पर्याप्त 7% बदलाव प्रदर्शित किया, जो संभवतः और भी कम प्रिसिजन और int4 और fp16 के बीच आवश्यक डायनामिक रूपांतरणों के कारण था।
बैच साइज़
बैचिंग के माध्यम से पैरलेलिज़्म एक संसाधन-सीमित सिस्टम से प्रदर्शन प्राप्त करने की एक क्लासिक रणनीति है। न्यूरल नेटवर्क के माध्यम से प्रत्येक फॉरवर्ड पास में कई अनुरोधों को संसाधित करके, बैचिंग को कुछ लेटेंसी की कीमत पर थ्रूपुट बढ़ाने के लिए जाना जाता है। बैचिंग में उच्च GPU मेमोरी की खपत भी होती है क्योंकि KV कैश का आकार जो अटेंशन मैकेनिज्म को प्रबंधित करता है, बैच साइज़ के साथ रैखिक रूप से बढ़ता है।
Llama 2 70B (जिसमें 80 लेयर्स हैं) के मामले में, 4096 कॉन्टेक्स्ट साइज़ के लिए 32 बैच साइज़ के साथ fp16, KV कैश का आकार 40 GB तक पहुँच जाता है। यह अंततः Llama 2 70B fp16, जिसके वेट अकेले 140GB लेते हैं, को टेंसर पैरलेलिज़्म 2 (TP-2) पर उपलब्ध 160GB GPU मेमोरी में आसानी से फिट होने से रोकता है।
परिणाम
हमने प्रयोग के 4 चरों (वेरिएबल्स) के संगत संयोजनों के माध्यम से व्यापक अध्ययन किया और नीचे सबसे व्यावहारिक रुझान प्रस्तुत किए।
क्वांटाइज़ेशन का लेटेंसी सुधार H100 fp16 → fp8 और A100 fp16 → w8a8 को स्मूथक्वांट के साथ तुलना करने पर लगभग 10% है। हालाँकि, मिश्रित प्रिसिजन w4a16 वास्तव में fp16 की तुलना में कम बैच साइज़ पर बेहतर और उच्च बैच साइज़ पर खराब प्रदर्शन करता है। यह कई कारकों के कारण हो सकता है, जिसमें कम ऑप्टिमाइज़्ड कंप्यूट कर्नेल, int4 और fp16 के बीच कास्टिंग समय, और यह तथ्य शामिल है कि w4a16 अभी भी एक्टिवेशन के लिए 16-बिट फ़्लोटिंग पॉइंट्स का उपयोग करता है, जिसके परिणामस्वरूप KV कैश के आयामों में कोई बचत नहीं होती है। चूंकि w4a16 ने कम सटीकता भी प्रदर्शित की, इसलिए हम निष्कर्ष निकालते हैं कि हमें A100s के लिए w8a8 SQ और H100s के लिए fp8 पर टिके रहना चाहिए।
हमारे पहले दो चित्रों में, हम केवल TP-8 के कॉन्फ़िगरेशन प्रस्तुत करते हैं। H100, A100 की तुलना में 54% लेटेंसी और 184% थ्रूपुट प्राप्त करता है जब दोनों fp16 / BS-128 / TP-8 का उपयोग करते हैं, जो H100 पर fp8 का उपयोग करने पर 49% लेटेंसी और 202% थ्रूपुट तक बेहतर हो जाता है। प्रदर्शन में इस सुधार का श्रेय H100 और A100 के बीच कंप्यूटेशन पावर और मेमोरी बैंडविड्थ में वृद्धि को दिया जा सकता है। विशेष रूप से, कम बैच साइज़ के तहत अंतर कम स्पष्ट है जहाँ उपयोग कम हो सकता है।
जैसे-जैसे हम अपना प्लेटफ़ॉर्म बनाते हैं, हम थ्रूपुट को अधिकतम करते हुए अपने उपयोगकर्ताओं के लिए कुछ लेटेंसी आवश्यकताओं का सम्मान करना चाहते हैं। इस प्रकार, A100 बनाम H100 की तुलना समान बैच साइज़ पर करने के बजाय, हमारे लिए केवल उन कॉन्फ़िगरेशन के तहत उनके थ्रूपुट की तुलना करना अधिक समझदारी है जहाँ वे लेटेंसी आवश्यकता को पूरा करते हैं। हमने 512 आउटपुट टोकन के पूरा होने के लिए 25600ms लेटेंसी पर एक कटऑफ़ सेट किया और पाया कि H100 / TP-8 / fp8 / BS-128, A100 / TP-8 / fp16 / BS-64 की तुलना में 251% थ्रूपुट प्रदान करता है, क्योंकि यह कम लेटेंसी पर दोगुने बैच साइज़ को संसाधित करने में सक्षम है। यह देखते हुए कि क्वांटाइज़ेशन GPU मेमोरी की बचत प्रदान करता है, अब हमें यह मूल्यांकन करने की आवश्यकता है कि टेंसर पैरलेलिज़्म ऑप्टिमाइज़ेशन की अगली परत कैसे जोड़ सकता है।
जब क्वांटाइज़ेशन और आर्किटेक्चर की बात आती है, तो स्पष्ट विजेता होते हैं: H100, A100 पर हावी है और कम-प्रिसिजन क्वांटाइज़ेशन मेमोरी उपयोग, लेटेंसी और थ्रूपुट में सुधार करता है। हालाँकि, बैच साइज़ और टेंसर पैरलेलिज़्म हमारे मुख्य मेट्रिक्स में एक ट्रेडऑफ़ प्रस्तुत करते हैं। एक बड़ा बैच साइज़ बढ़ी हुई लेटेंसी और मेमोरी खपत की कीमत पर थ्रूपुट के लिए ऑप्टिमाइज़ करता है। दूसरी ओर, उच्च टेंसर पैरलेलिज़्म उपलब्ध मेमोरी के समग्र पूल को बढ़ाता है और लेटेंसी के लिए ऑप्टिमाइज़ करता है, लेकिन वितरित मैट्रिक्स गुणन (डिस्ट्रिब्यूटेड मैट्रिक्स मल्टीप्लीकेशन) की सिंक्रोनाइज़ेशन लागत के कारण और अधिक GPU संसाधनों को लॉक करने के कारण थ्रूपुट के साथ समझौता करता है।
हमारे प्रयोग का थ्रूपुट-अधिकतम कॉन्फ़िगरेशन H100 / fp8 / TP-2 / BS-128 है, जो प्रति GPU 767 आउटपुट टोकन प्रति सेकंड है। यह A100 / fp16 / TP-8 / BS-64 की तुलना में 460% का सुधार है। हालाँकि, यह दोगुनी लेटेंसी की कीमत पर आता है - 512 आउटपुट टोकन के लिए 42000ms के करीब - इसलिए यह प्रोडक्शन कॉन्फ़िगरेशन के रूप में अनुपयुक्त हो सकता है। TP-4 BS-128 (26188ms रिस्पॉन्स समय पर 626 टोकन/सेकंड/जीपीयू) और TP-2 BS-32 (18821ms रिस्पॉन्स समय पर 435 टोकन/सेकंड/जीपीयू) के परिणाम हमारे मुख्य मेट्रिक्स पर बेहतर ट्रेडऑफ़ का प्रतिनिधित्व कर सकते हैं।
निष्कर्ष
हमारे परिणाम प्रदर्शित करते हैं कि:
हम समान कॉन्फ़िगरेशन को देखते हुए A100 की तुलना में H100 का उपयोग करके 54% लेटेंसी और 184% थ्रूपुट तक पहुँचते हैं, जो 49% और 202% तक बेहतर हो जाता है जब H100 fp8 के लिए अपने नेटिव सपोर्ट का लाभ उठाता है।
जब लेटेंसी बाधा के अधीन थ्रूपुट को अधिकतम किया जाता है, तो H100 / fp8 / TP-8 / BS-128, A100 / fp16 / TP-8 / BS-64 की तुलना में 251% थ्रूपुट प्रदान करता है, क्योंकि यह तेज़ गति से दोगुना बैच संसाधित कर सकता है।
fp8 के साथ TP-2 के साथ H100 का लाभ उठाते हुए, हम A100 / fp16 / TP-8 / BS-128 के थ्रूपुट का 373% प्राप्त कर सकते हैं, जिसमें लेटेंसी में 10% से कम वृद्धि होती है।
बैच साइज़ और टेंसर पैरलेलिज़्म LLM इंफ़रेंस सिस्टम के ऑपरेटर के लिए थ्रूपुट और लेटेंसी के बीच एक ट्रेडऑफ़ प्रस्तुत करते हैं।
ये परिणाम हमें हमारे पहले A100 संचालित हार्डवेयर स्टैक में H100 GPUs में पूर्ण परिवर्तन के बारे में आश्वस्त महसूस कराते हैं। हम NVIDIA द्वारा विज्ञापित प्रदर्शन लाभों की पुष्टि करने में सक्षम होने के लिए उत्साहित हैं और त्वरित हार्डवेयर (एक्सीलरेटेड हार्डवेयर) में उनकी अगली सफलताओं की प्रतीक्षा कर रहे हैं।
आगे क्या
ऑप्टिमाइज़ेशन के लिए हमारी अगली सीमा संरचित स्पार्सिटी और int4 प्रिसिजन की सटीकता और प्रदर्शन प्रभाव की जांच करना है, जो Llama 2 70B के GPU मेमोरी फ़ुटप्रिंट को काफी कम कर सकता है और लेटेंसी में 2x तक का सुधार दे सकता है। हम बहुत तेज़ इंफ़रेंस की यात्रा जारी रखने के लिए उत्साहित हैं और अपने उपयोगकर्ताओं को हमारे प्लेटफ़ॉर्म के शीर्ष पर शक्तिशाली एप्लिकेशन बनाने के लिए सशक्त बनाने की आशा करते हैं।
अल्पकाल में, pplx-api दर सीमाओं को हटाएगा और अधिक कस्टम Perplexity LLMs की पेशकश करेगा, जिसमें तथ्यों के लिए ग्राउंडिंग के साथ इंटरनेट-संचालित LLM शामिल है।
perplexity.ai/pro पर Perplexity Pro के लिए साइन अप करें। हमारे अत्याधुनिक pplx-api तक पहुंच प्राप्त करें, और अपने प्रोजेक्ट्स में इन उन्नत क्षमताओं का लाभ उठाएं। हमारे ब्लॉग पर pplx-api के बारे में और अधिक जानें।
AI के भविष्य को आकार देने में रुचि रखते हैं? हम नियुक्तियां कर रहे हैं! बड़े पैमाने पर, जनरेटिव LLM इंफ़रेंस इन्फ्रास्ट्रक्चर को चलाने वाली टीम का हिस्सा बनें। Perplexity Careers पर अवसरों का पता लगाएं।
लेखक:
आरश हेदारी, ग्रिगोरी अलेक्सेव, केविन हू, डेनिस यारेट्स