अमेज़ॅन सेजमेकर विषम क्लस्टर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें। लंबवत खोज. ऐ.

Amazon SageMaker विषम समूहों का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें

यह पोस्ट Mobileye से चैम रैंड के साथ सह-लिखा गया है।

कुछ मशीन लर्निंग (एमएल) वर्कलोड, जैसे कि प्रशिक्षण कंप्यूटर विज़न मॉडल या रीइन्फोर्समेंट लर्निंग, में अक्सर जीपीयू- या न्यूरल नेटवर्क मॉडल प्रशिक्षण के त्वरक-गहन कार्य को डेटा प्रीप्रोसेसिंग के सीपीयू-गहन कार्य के साथ जोड़ना शामिल है, जैसे छवि वृद्धि। जब दोनों प्रकार के कार्य एक ही इंस्टेंस प्रकार पर चलते हैं, तो डेटा प्रीप्रोसेसिंग सीपीयू पर अड़चन बन जाती है, जिससे GPU का उपयोग कम हो जाता है। यह समस्या समय के साथ और भी बदतर हो जाती है क्योंकि GPU की नई पीढ़ी का थ्रूपुट CPU की तुलना में तेज गति से बढ़ता है।

इस मुद्दे को हल करने के लिए, जुलाई 2022 में, हम शुभारंभ विषम समूहों के लिए अमेज़न SageMaker मॉडल प्रशिक्षण, जो आपको ऐसे प्रशिक्षण कार्य प्रारंभ करने में सक्षम बनाता है जो एक ही कार्य में विभिन्न उदाहरण प्रकारों का उपयोग करते हैं। यह डेटा प्रीप्रोसेसिंग पाइपलाइन के कुछ हिस्सों को उतारने की अनुमति देता है गणना-अनुकूलित उदाहरण प्रकार, जबकि डीप न्यूरल नेटवर्क (DNN) कार्य चालू रहता है GPU या त्वरित कंप्यूटिंग उदाहरण प्रकार। CPU-बद्ध TensorFlow कंप्यूटर विज़न मॉडल प्रशिक्षण में विषम समूहों को सक्षम करने के बाद हमारे बेंचमार्क 46% मूल्य प्रदर्शन लाभ दिखाते हैं।

इसी तरह के उपयोग के मामले के लिए, मोबाइलये, एक स्वायत्त वाहन प्रौद्योगिकी विकास कंपनी, को यह साझा करना था:

"सीपीयू-बाउंड डीप लर्निंग कंप्यूटर विज़न मॉडल ट्रेनिंग को मल्टीपल इंस्टेंस टाइप्स (सीपीयू और जीपीयू/एमएल एक्सेलेरेटर) पर चलाने के लिए, एक का उपयोग करके tf.data.service आधारित समाधान जो हमने बनाया है, हम प्रशिक्षण के लिए समय को 40% तक कम करने में कामयाब रहे, जबकि ट्रेन की लागत को 30% तक कम किया। हम विषम समूहों के बारे में उत्साहित हैं जो हमें अमेज़ॅन सेजमेकर पर इस समाधान को चलाने की इजाजत देता है।"

— एआई इंजीनियरिंग, Mobileye

इस पोस्ट में, हम निम्नलिखित विषयों पर चर्चा करते हैं:

  • कैसे विषम क्लस्टर CPU बाधाओं को दूर करने में मदद करते हैं
  • विषम समूहों और अन्य विकल्पों का उपयोग कब करें
  • PyTorch और TensorFlow में संदर्भ कार्यान्वयन
  • प्रदर्शन बेंचमार्क परिणाम
  • Mobileye पर विषम समूह

एडब्ल्यूएस के त्वरित कंप्यूटिंग उदाहरण परिवार में एडब्ल्यूएस कस्टम चिप्स से त्वरक शामिल हैं (एडब्ल्यूएस इन्फेंटेंटिया, एडब्ल्यूएस ट्रेनियम), एनवीडिया (GPUs), और गौड़ी त्वरक हबाना लैब्स (एक इंटेल कंपनी) से। ध्यान दें कि इस पोस्ट में, हम GPU और त्वरक शब्दों का परस्पर उपयोग करते हैं।

कैसे विषम क्लस्टर डेटा प्रोसेसिंग बाधाओं को दूर करते हैं

डेटा वैज्ञानिक जो गहन शिक्षण मॉडल को प्रशिक्षित करते हैं, उनका लक्ष्य प्रशिक्षण लागत-दक्षता को अधिकतम करना और प्रशिक्षण समय को कम करना है। इसे प्राप्त करने के लिए, एक बुनियादी अनुकूलन लक्ष्य उच्च GPU उपयोग करना है, जो कि सबसे महंगा और दुर्लभ संसाधन है अमेज़ॅन इलास्टिक कम्प्यूट क्लाउड (अमेज़ॅन ईसी 2) उदाहरण। यह एमएल वर्कलोड के साथ अधिक चुनौतीपूर्ण हो सकता है जो क्लासिक जीपीयू-गहन तंत्रिका नेटवर्क मॉडल के आगे और पीछे के प्रसार को सीपीयू-गहन कार्यों के साथ जोड़ता है, जैसे डेटा प्रोसेसिंग और कंप्यूटर दृष्टि में वृद्धि या सुदृढीकरण सीखने में पर्यावरण सिमुलेशन चलाना। ये वर्कलोड सीपीयू बाध्य हो सकते हैं, जहां अधिक सीपीयू होने से उच्च थ्रूपुट और तेज और सस्ता प्रशिक्षण होगा क्योंकि मौजूदा त्वरक आंशिक रूप से निष्क्रिय हैं। कुछ मामलों में, उच्च CPU:GPU अनुपात के साथ किसी अन्य इंस्टेंस प्रकार पर स्विच करके CPU बाधाओं को हल किया जा सकता है। हालांकि, ऐसी स्थितियां हैं जहां उदाहरण परिवार की वास्तुकला, भंडारण, या नेटवर्किंग निर्भरता के कारण किसी अन्य उदाहरण प्रकार पर स्विच करना संभव नहीं हो सकता है।

ऐसी स्थितियों में, आपको इंस्टेंस प्रकारों को मिलाकर सीपीयू पावर की मात्रा बढ़ानी होगी: सीपीयू के साथ जीपीयू के साथ इंस्टेंस। एक साथ संक्षेप में, यह एक समग्र उच्च CPU: GPU अनुपात में परिणाम देता है। कुछ समय पहले तक, सेजमेकर प्रशिक्षण कार्य केवल एक चुने हुए इंस्टेंस प्रकार के उदाहरण होने तक सीमित थे। सेजमेकर विषम समूहों के साथ, डेटा वैज्ञानिक आसानी से कई इंस्टेंस प्रकारों के साथ एक प्रशिक्षण कार्य चला सकते हैं, जो जीपीयू इंस्टेंस से कुछ मौजूदा सीपीयू कार्यों को समर्पित कंप्यूट-अनुकूलित सीपीयू इंस्टेंस में लोड करने में सक्षम बनाता है, जिसके परिणामस्वरूप उच्च जीपीयू उपयोग और तेज और अधिक लागत- कुशल प्रशिक्षण। इसके अलावा, अतिरिक्त CPU शक्ति के साथ, आपके पास पूर्व-प्रसंस्करण कार्य हो सकते हैं जो परंपरागत रूप से ऑफ़लाइन किए गए थे, प्रशिक्षण के प्रारंभिक चरण के रूप में आपके प्रशिक्षण कार्य का हिस्सा बन गए। यह डेटा प्रीप्रोसेसिंग और डीएनएन प्रशिक्षण मान्यताओं और हाइपरपैरामीटर दोनों पर पुनरावृति और प्रयोग करने के लिए तेज़ बनाता है।

उदाहरण के लिए, एक शक्तिशाली GPU इंस्टेंस प्रकार पर विचार करें, ml.p4d.24xlarge (96 vCPU, 8 x NVIDIA) A100 GPUs), CPU के साथ: GPU अनुपात 12:1। मान लें कि आपके प्रशिक्षण कार्य को 20 वीसीपीयू की जरूरत है ताकि एक जीपीयू को 100% उपयोग में रखने के लिए पर्याप्त डेटा प्रीप्रोसेस किया जा सके। इसलिए, सभी 8 GPU का 100% उपयोग करने के लिए, आपको 160 vCPU इंस्टेंस प्रकार की आवश्यकता होती है। हालाँकि, ml.p4d.24xlarge 64 vCPU या 40% से कम है, जो GPU के उपयोग को 60% तक सीमित करता है, जैसा कि निम्नलिखित आरेख के बाईं ओर दर्शाया गया है। क्या एक और ml.p4d.24xlarge इंस्टेंस जोड़ने से मदद मिलेगी? नहीं, क्योंकि कार्य का CPU:GPU अनुपात वही रहेगा।

विषम समूहों के साथ, हम दो ml.c5.18xlarge (72 vCPU) जोड़ सकते हैं, जैसा कि आरेख के दाईं ओर दिखाया गया है। इस क्लस्टर में कुल वीसीपीयू 210 (96+2*72) है, जिससे सीपीयू: जीपीयू अनुपात 30:1 हो जाता है। इन गणना-अनुकूलित उदाहरणों में से प्रत्येक को डेटा प्रीप्रोसेसिंग सीपीयू-गहन कार्य के साथ लोड किया जाएगा, और कुशल GPU उपयोग की अनुमति देगा। ml.c5.18xlarge की अतिरिक्त लागत के बावजूद, उच्च GPU उपयोग तेजी से प्रसंस्करण की अनुमति देता है, और इसलिए उच्च मूल्य प्रदर्शन लाभ।

विषम समूहों और अन्य विकल्पों का उपयोग कब करें

इस खंड में, हम समझाते हैं कि सीपीयू बाधा की पहचान कैसे करें, और इंस्टेंस टाइप स्केल अप बनाम विषम क्लस्टर का उपयोग करके इसे हल करने पर चर्चा करें।

CPU अड़चन की पहचान करने का त्वरित तरीका CPU और GPU की निगरानी करना है उपयोग मेट्रिक्स सेजमेकर प्रशिक्षण नौकरियों के लिए अमेज़ॅन क्लाउडवॉच. आप इन दृश्यों को से एक्सेस कर सकते हैं एडब्ल्यूएस प्रबंधन कंसोल प्रशिक्षण कार्य पृष्ठ के उदाहरण मेट्रिक्स हाइपरलिंक के भीतर। प्रासंगिक मीट्रिक चुनें और 5-मिनट से 1-मिनट के रिज़ॉल्यूशन पर स्विच करें। ध्यान दें कि स्केल 100% प्रति वीसीपीयू या जीपीयू है, इसलिए 4 वीसीपीयू/जीपीयू वाले उदाहरण के लिए उपयोग दर 400% जितनी अधिक हो सकती है। निम्नलिखित आंकड़ा CloudWatch मेट्रिक्स से एक ऐसा उदाहरण है, जहां CPU का लगभग 100% उपयोग किया जाता है, जो CPU अड़चन को दर्शाता है, जबकि GPU का कम उपयोग किया जाता है।

अमेज़ॅन सेजमेकर विषम क्लस्टर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें। लंबवत खोज. ऐ.

विस्तृत निदान के लिए, के साथ प्रशिक्षण कार्य चलाएँ अमेज़न SageMaker डिबगर जब आप सेजमेकर पायथन एसडीके का उपयोग करके सेजमेकर अनुमानक का निर्माण करते हैं, तो एक प्रोफाइलर कॉन्फ़िगरेशन जोड़कर, संसाधन उपयोग की स्थिति, सांख्यिकी और ढांचे के संचालन को प्रोफाइल करने के लिए। प्रशिक्षण कार्य सबमिट करने के बाद, परिणाम की समीक्षा करें प्रोफाइलर रिपोर्ट सीपीयू बाधाओं के लिए।

यदि आप यह निष्कर्ष निकालते हैं कि आपकी नौकरी उच्च CPU:GPU गणना अनुपात से लाभान्वित हो सकती है, तो पहले उसी उदाहरण परिवार में किसी अन्य उदाहरण प्रकार तक स्केलिंग पर विचार करें, यदि कोई उपलब्ध हो। उदाहरण के लिए, यदि आप अपने मॉडल को ml.g5.8xlarge (32 vCPU, 1 GPU) पर प्रशिक्षित कर रहे हैं, तो ml.g5.16xlarge (64 vCPU, 1 GPU) तक स्केलिंग पर विचार करें। या, यदि आप मल्टी-जीपीयू इंस्टेंस ml.g5.12xlarge (48 vCPU, 4 GPU) का उपयोग करके अपने मॉडल को प्रशिक्षित कर रहे हैं, तो ml.g5.24xlarge (96 vCPU, 4 GPU) तक स्केलिंग पर विचार करें। को देखें G5 अधिक जानकारी के लिए उदाहरण परिवार विनिर्देश।

कभी-कभी, स्केलिंग अप एक विकल्प नहीं है, क्योंकि उच्च वीसीपीयू के साथ कोई इंस्टेंस प्रकार नहीं है: एक ही इंस्टेंस परिवार में जीपीयू अनुपात। उदाहरण के लिए, यदि आप मॉडल को ml.trn1.32xlarge, ml.p4d.24xlarge, या पर प्रशिक्षण दे रहे हैं। ml.g5.48xlarge, आपको सेजमेकर मॉडल प्रशिक्षण के लिए विषम समूहों पर विचार करना चाहिए।

स्केलिंग के अलावा, हम यह नोट करना चाहेंगे कि विषम क्लस्टर के अतिरिक्त विकल्प हैं, जैसे NVIDIA डाली, जो छवि प्रीप्रोसेसिंग को GPU पर लोड कर देता है। अधिक जानकारी के लिए देखें TensorFlow डेटा सेवा, NVIDIA DALI और अन्य विधियों के साथ डेटा प्रीप्रोसेसिंग बाधाओं पर काबू पाना.

निर्णय लेने को सरल बनाने के लिए, निम्नलिखित फ़्लोचार्ट देखें।

अमेज़ॅन सेजमेकर विषम क्लस्टर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें। लंबवत खोज. ऐ.

सेजमेकर विषम समूहों का उपयोग कैसे करें

जल्दी से आरंभ करने के लिए, आप सीधे इस पोस्ट के हिस्से के रूप में प्रदान किए गए TensorFlow या PyTorch उदाहरणों पर जा सकते हैं।

इस खंड में, हम आपको एक सरल उदाहरण के साथ सेजमेकर विषम क्लस्टर का उपयोग करने के तरीके के बारे में बताएंगे। हम मानते हैं कि आप पहले से ही जानते हैं कि सेजमेकर पायथन एसडीके और अनुमानक वर्ग के साथ एक मॉडल को कैसे प्रशिक्षित किया जाए। यदि नहीं, तो देखें सेजमेकर पायथन एसडीके का उपयोग करना जारी रखने से पहले।

इस सुविधा से पहले, आपने प्रशिक्षण कार्य के अनुमानक वर्ग को के साथ आरंभ किया था InstanceCount और इंस्टेंस टाइप पैरामीटर, जो स्पष्ट रूप से मानता है कि आपके पास केवल एक ही इंस्टेंस प्रकार (एक सजातीय क्लस्टर) है। विषम समूहों की रिहाई के साथ, हमने नया पेश किया sagemaker.instance_group.InstanceGroup कक्षा। यह एक विशिष्ट उदाहरण प्रकार के एक या अधिक उदाहरणों के समूह का प्रतिनिधित्व करता है, जिसे तार्किक भूमिका निभाने के लिए डिज़ाइन किया गया है (जैसे डेटा प्रोसेसिंग या तंत्रिका नेटवर्क अनुकूलन। आपके पास दो या अधिक समूह हो सकते हैं, और प्रत्येक इंस्टेंस समूह के लिए एक कस्टम नाम निर्दिष्ट कर सकते हैं, उदाहरण प्रकार, और प्रत्येक उदाहरण समूह के लिए उदाहरणों की संख्या। अधिक जानकारी के लिए, देखें सेजमेकर पायथन एसडीके का उपयोग करना और निम्न-स्तरीय सेजमेकर एपीआई का उपयोग करना.

इंस्टेंस समूहों को परिभाषित करने के बाद, आपको सेजमेकर को पढ़ने के लिए अपनी प्रशिक्षण स्क्रिप्ट को संशोधित करने की आवश्यकता है प्रशिक्षण पर्यावरण की जानकारी जिसमें विषम क्लस्टर कॉन्फ़िगरेशन शामिल है। कॉन्फ़िगरेशन में वर्तमान इंस्टेंस समूह, प्रत्येक समूह में वर्तमान होस्ट, और वर्तमान होस्ट किस समूह में उनकी रैंकिंग के साथ रहता है जैसी जानकारी शामिल है। आप कुछ प्रशिक्षण और डेटा प्रोसेसिंग कार्यों के लिए इंस्टेंस समूहों को असाइन करने के लिए अपनी प्रशिक्षण स्क्रिप्ट में तर्क बना सकते हैं। इसके अलावा, आपकी प्रशिक्षण स्क्रिप्ट को अंतर-आवृत्ति समूह संचार या वितरित डेटा लोडिंग तंत्र का ध्यान रखना होगा (उदाहरण के लिए, tf.डेटा.सेवा TensorFlow या जेनेरिक में जीआरपीसी क्लाइंट-सर्वर) या कोई अन्य ढांचा (उदाहरण के लिए, अपाचे स्पार्क).

आइए एक विषम प्रशिक्षण कार्य शुरू करने और रनटाइम पर पर्यावरण कॉन्फ़िगरेशन को पढ़ने के एक सरल उदाहरण के माध्यम से चलते हैं।

  1. प्रशिक्षण कार्य को परिभाषित और लॉन्च करते समय, हम सेजमेकर अनुमानक के तर्क के रूप में उपयोग किए जाने वाले दो उदाहरण समूहों को कॉन्फ़िगर करते हैं:
    from sagemaker.instance_group import InstanceGroup
    data_group = InstanceGroup("data_group", "ml.c5.18xlarge", 2)
    dnn_group = InstanceGroup("dnn_group", "ml.p4d.24xlarge", 1)
    
    from sagemaker.pytorch import PyTorch
    estimator = PyTorch(...,
        entry_point='launcher.py',
        instance_groups=[data_group, dnn_group]
    )
  2. प्रवेश बिंदु प्रशिक्षण स्क्रिप्ट पर (नाम launcher.py), हम विषम क्लस्टर कॉन्फ़िगरेशन को पढ़ते हैं कि क्या इंस्टेंस प्रीप्रोसेसिंग या डीएनएन कोड चलाएगा:
    from sagemaker_training import environment
    env = environment.Environment()
    if env.current_instance_group == 'data_group': ...;

इसके साथ, सेजमेकर आपकी ओर से किए जाने वाले कार्यों और उन कार्यों को संक्षेप में प्रस्तुत करता है जिनके लिए आप जिम्मेदार हैं।

सेजमेकर निम्नलिखित कार्य करता है:

  1. इंस्टेंस समूह परिभाषा के अनुसार विभिन्न इंस्टेंस प्रकारों का प्रावधान करें।
  2. सभी या विशिष्ट उदाहरण समूहों पर प्रावधान इनपुट चैनल।
  3. उदाहरणों के लिए प्रशिक्षण स्क्रिप्ट और निर्भरता वितरित करें।
  4. एक विशिष्ट आवृत्ति समूह पर एक एमपीआई क्लस्टर सेट करें, यदि परिभाषित किया गया हो।

आप निम्नलिखित कार्यों के लिए जिम्मेदार हैं:

  1. उदाहरण समूहों को निर्दिष्ट करने के लिए अपनी प्रारंभ प्रशिक्षण कार्य स्क्रिप्ट को संशोधित करें।
  2. एक वितरित डेटा पाइपलाइन लागू करें (उदाहरण के लिए, tf.data.service).
  3. अपनी प्रवेश बिंदु स्क्रिप्ट को संशोधित करें (देखें launcher.py उदाहरण नोटबुक में) एक एकल प्रविष्टि बिंदु होने के लिए जो सभी उदाहरणों पर चलेगा, यह पता लगाएं कि यह किस इंस्टेंस समूह में चल रहा है, और प्रासंगिक व्यवहार (जैसे डेटा प्रोसेसिंग या डीएनएन ऑप्टिमाइज़ेशन) को ट्रिगर करता है।
  4. जब प्रशिक्षण लूप समाप्त हो जाता है, तो आपको यह सुनिश्चित करना होगा कि आपकी प्रवेश बिंदु प्रक्रिया सभी इंस्टेंस समूहों में सभी उदाहरणों पर निकल जाए। यह महत्वपूर्ण है क्योंकि सेजमेकर कार्य को पूर्ण के रूप में चिह्नित करने और बिलिंग बंद करने से पहले सभी उदाहरणों के प्रसंस्करण समाप्त होने की प्रतीक्षा करता है। launcher.py TensorFlow और PyTorch उदाहरण नोटबुक में स्क्रिप्ट DNN समूह इंस्टेंस अपना काम पूरा करने पर बाहर निकलने के लिए सिग्नलिंग डेटा समूह इंस्टेंस का एक संदर्भ कार्यान्वयन प्रदान करती है।

सेजमेकर विषम समूहों के लिए उदाहरण नोटबुक

इस खंड में, हम इसका सारांश प्रदान करते हैं: उदाहरण नोटबुक TensorFlow और PyTorch ML फ्रेमवर्क दोनों के लिए। नोटबुक में, आप कार्यान्वयन विवरण, कोड कैसे काम करता है, इस पर पूर्वाभ्यास, कोड स्निपेट जिन्हें आप अपनी प्रशिक्षण स्क्रिप्ट में पुन: उपयोग कर सकते हैं, प्रवाह आरेख और लागत-तुलना विश्लेषण पा सकते हैं।

ध्यान दें कि दोनों उदाहरणों में, आपको मॉडल के सार्थक तरीके से अभिसरण की अपेक्षा नहीं करनी चाहिए। हमारा इरादा केवल युग/चरण समय में व्यक्त डेटा पाइपलाइन और तंत्रिका नेटवर्क अनुकूलन थ्रूपुट को मापने का है। आपको अपने कार्यभार से मेल खाने वाले मूल्य प्रदर्शन लाभ उत्पन्न करने के लिए अपने स्वयं के मॉडल और डेटासेट के साथ बेंचमार्क करना होगा।

एक tf.data.service आधारित वितरित डेटा लोडर (TensorFlow) का उपयोग कर विषम क्लस्टर

इस नोटबुक प्रदर्शित करता है कि TensorFlow's का उपयोग करके सेजमेकर प्रशिक्षण के लिए एक विषम क्लस्टर को कैसे लागू किया जाए tf.data.service आधारित वितरित डेटा पाइपलाइन। हम एक गहन शिक्षण कंप्यूटर विज़न मॉडल को प्रशिक्षित करते हैं रेसनेट50 जिसके लिए CPU-गहन डेटा संवर्द्धन की आवश्यकता होती है। यह उपयोगकर्ता है होरवोड बहु-जीपीयू वितरित डेटा समांतरता के लिए।

हम कार्यभार को दो कॉन्फ़िगरेशन में चलाते हैं: पहला एक सजातीय क्लस्टर के रूप में, एकल ml.p4d.24xबड़ा उदाहरण, एक मानक का उपयोग करके tf.data पाइपलाइन जो CPU बाधाओं को प्रदर्शित करती है जिससे GPU का कम उपयोग होता है। दूसरे रन में, हम एक सेजमेकर विषम क्लस्टर का उपयोग करके एकल इंस्टेंस प्रकार से दो इंस्टेंस समूहों में स्विच करते हैं। यह रन कुछ डेटा प्रोसेसिंग को अतिरिक्त CPU इंस्टेंसेस पर ऑफलोड करता है (उपयोग करके tf.data.service).

फिर हम सजातीय और विषम विन्यास की तुलना करते हैं और प्रमुख मूल्य प्रदर्शन लाभ पाते हैं। जैसा कि निम्न तालिका में दिखाया गया है, विषम कार्य (86ms/कदम) सजातीय नौकरी (2.2ms/कदम) की तुलना में प्रशिक्षित करने के लिए 192 गुना तेज है, जिससे एक मॉडल को प्रशिक्षित करना 46% सस्ता हो जाता है।

उदाहरण 1 (टीएफ) एमएल.p4d.24xl एमएल.c5.18xl मूल्य प्रति घंटा* औसत कदम समय प्रति चरण लागत मूल्य प्रदर्शन में सुधार
सजातीय 1 0 $37.688 192 एमएस $0.201 .
विजातीय 1 2 $45.032 86 एमएस $0.108 46% तक

* मूल्य प्रति घंटा us-east-1 . पर आधारित है सेजमेकर ऑन-डिमांड मूल्य निर्धारण

डेटा समूह द्वारा प्रदान किए गए अतिरिक्त वीसीपीयू का उपयोग करके और तेजी से प्रीप्रोसेसिंग के द्वारा यह गति संभव है। देखें नोटबुक अधिक विवरण और रेखांकन के लिए।

एक gRPC क्लाइंट-सर्वर आधारित वितरित डेटा लोडर (PyTorch) का उपयोग कर विषम क्लस्टर

इस नोटबुक एक जीआरपीसी क्लाइंट-सर्वर आधारित वितरित डेटा लोडर का उपयोग करके सेजमेकर प्रशिक्षण के लिए एक विषम क्लस्टर का उपयोग करके एक नमूना कार्यभार प्रदर्शित करता है। यह उदाहरण एकल GPU का उपयोग करता है। हम निम्नलिखित के आधार पर PyTorch मॉडल का उपयोग करते हैं आधिकारिक एमएनआईएसटी उदाहरण. डेटा प्रीप्रोसेसिंग पर भारी होने के लिए प्रशिक्षण कोड को संशोधित किया गया है। हम इस मॉडल को सजातीय और विषम क्लस्टर मोड दोनों में प्रशिक्षित करते हैं, और मूल्य प्रदर्शन की तुलना करते हैं।

इस उदाहरण में, हमने माना कि कार्यभार कई GPU से लाभ नहीं उठा सकता है, और एक विशिष्ट GPU आर्किटेक्चर (NVIDIA) पर निर्भरता है V100) हमने सजातीय और विषम दोनों प्रकार के प्रशिक्षण कार्य चलाए, और प्रमुख मूल्य प्रदर्शन लाभ पाए, जैसा कि निम्न तालिका में दिखाया गया है। विषम नौकरी (1.19s/कदम) सजातीय नौकरी (6.5s/कदम) की तुलना में प्रशिक्षित करने के लिए 0.18 गुना तेज है, जिससे मॉडल को प्रशिक्षित करने के लिए यह 77% सस्ता हो जाता है।

उदाहरण 2 (पीटी) एमएल.पी3.2xl एमएल.c5.9xl मूल्य प्रति घंटा* औसत कदम समय प्रति चरण लागत मूल्य प्रदर्शन में सुधार
सजातीय 1 0 $3.825 1193 एमएस $0.127 .
विजातीय 1 1 $5.661 184 एमएस $0.029 77% तक

* मूल्य प्रति घंटा us-east-1 . पर आधारित है सेजमेकर ऑन-डिमांड मूल्य निर्धारण

यह संभव है क्योंकि उच्च CPU संख्या के साथ, हम डेटा को प्रीप्रोसेस करने के लिए 32 डेटा लोडर श्रमिकों (ml.p8xlarge के साथ 3.2 की तुलना में) का उपयोग कर सकते हैं और GPU को लगातार अंतराल पर उपयोग किए जाने वाले 100% के करीब रखते हैं। देखें नोटबुक अधिक विवरण और रेखांकन के लिए।

Mobileye पर विषम समूह

Mobileye, एक Intel कंपनी, परिवहन उद्योग में क्रांति लाने, सड़कों को सुरक्षित बनाने और जीवन बचाने के लक्ष्य के साथ उन्नत चालक सहायता प्रणाली (ADAS) और स्वायत्त वाहन प्रौद्योगिकियों का विकास करती है। इन तकनीकों को परिष्कृत कंप्यूटर विज़न (सीवी) मॉडल का उपयोग करके सक्षम किया गया है, जिन्हें बड़ी मात्रा में संग्रहीत डेटा पर सेजमेकर का उपयोग करके प्रशिक्षित किया जाता है अमेज़न सरल भंडारण सेवा (अमेज़ॅन एस 3)। ये मॉडल अत्याधुनिक डीप लर्निंग न्यूरल नेटवर्क तकनीकों का उपयोग करते हैं।

हमने देखा कि हमारे सीवी मॉडल में से एक के लिए, सीपीयू की अड़चन मुख्य रूप से भारी डेटा प्रीप्रोसेसिंग के कारण थी, जिसके कारण GPU का उपयोग नहीं किया गया था। इस विशिष्ट कार्यभार के लिए, हमने वैकल्पिक समाधानों को देखना शुरू किया, ईसी 2 उदाहरणों के आधार पर विषम समूहों के साथ वितरित डेटा पाइपलाइन प्रौद्योगिकियों का मूल्यांकन किया, और दोनों के लिए संदर्भ कार्यान्वयन के साथ आए। TensorFlow और पायटॉर्च. सेजमेकर हेटेरोजीनियस क्लस्टर का विमोचन हमें बेहतर मूल्य प्रदर्शन लाभ प्राप्त करने के लिए सेजमेकर पर इसे और इसी तरह के वर्कलोड को चलाने की अनुमति देता है।

विचार

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

  • सेजमेकर के माध्यम से विषम क्लस्टर सुविधा उपलब्ध है पायटॉर्च और TensorFlow फ्रेमवर्क अनुमानक वर्ग। समर्थित ढांचे हैं PyTorch v1.10 या बाद में और TensorFlow v2.6 या बाद का।
  • सभी उदाहरण समूह समान डॉकर छवि साझा करते हैं।
  • सभी उदाहरण समूह समान प्रशिक्षण स्क्रिप्ट साझा करते हैं। इसलिए, आपकी प्रशिक्षण स्क्रिप्ट को यह पता लगाने के लिए संशोधित किया जाना चाहिए कि यह किस इंस्टेंस समूह से संबंधित है और कांटा उसी के अनुसार चलता है।
  • प्रशिक्षण उदाहरण होस्टनाम (उदाहरण के लिए, alog-1, algo-2, और इसी तरह) यादृच्छिक रूप से असाइन किए जाते हैं, और यह इंगित नहीं करते कि वे किस इंस्टेंस समूह से संबंधित हैं। इंस्टेंस की भूमिका प्राप्त करने के लिए, हम अनुशंसा करते हैं कि रनटाइम के दौरान इसकी इंस्टेंस समूह सदस्यता प्राप्त करें। लॉग इन की समीक्षा करते समय यह भी प्रासंगिक है क्लाउडवॉच, क्योंकि लॉग स्ट्रीम नाम [training-job-name]/algo-[instance-number-in-cluster]-[epoch_timestamp] होस्टनाम है।
  • एक वितरित प्रशिक्षण रणनीति (आमतौर पर एक एमपीआई क्लस्टर) केवल एक उदाहरण समूह पर लागू की जा सकती है।
  • SageMaker प्रबंधित गर्म पूल और सेजमेकर स्थानीय प्रणाली वर्तमान में विषम क्लस्टर प्रशिक्षण के साथ उपयोग नहीं किया जा सकता है।

निष्कर्ष

इस पोस्ट में, हमने चर्चा की कि सेजमेकर प्रशिक्षण की विषम क्लस्टर सुविधा का उपयोग कब और कैसे किया जाए। हमने वास्तविक दुनिया के उपयोग के मामले में 46% मूल्य प्रदर्शन सुधार का प्रदर्शन किया और आपको वितरित डेटा लोडर के साथ जल्दी से आरंभ करने में मदद की (tf.data.service और जीआरपीसी क्लाइंट-सर्वर) कार्यान्वयन। आप अपनी मौजूदा प्रशिक्षण लिपियों में न्यूनतम कोड परिवर्तन के साथ इन कार्यान्वयनों का उपयोग कर सकते हैं।

आरंभ करने के लिए, हमारा प्रयास करें उदाहरण नोटबुक. इस सुविधा के बारे में अधिक जानने के लिए, देखें एक विषम क्लस्टर का उपयोग कर ट्रेन.


लेखक के बारे में

अमेज़ॅन सेजमेकर विषम क्लस्टर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें। लंबवत खोज. ऐ.गिल्ली नचुम एक वरिष्ठ एआई/एमएल विशेषज्ञ समाधान आर्किटेक्ट हैं जो ईएमईए अमेज़ॅन मशीन लर्निंग टीम के हिस्से के रूप में काम करते हैं। गिली गहन शिक्षण मॉडल के प्रशिक्षण की चुनौतियों के बारे में भावुक है, और जैसा कि हम जानते हैं कि मशीन लर्निंग दुनिया को कैसे बदल रहा है। गिली अपने खाली समय में टेबल टेनिस खेलना पसंद करते हैं।

अमेज़ॅन सेजमेकर विषम क्लस्टर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें। लंबवत खोज. ऐ.हृषिकेश गंगूर एमएल प्रशिक्षण और एडब्ल्यूएस नेटवर्किंग दोनों में विशेषज्ञता के साथ एआई/एमएल स्टार्टअप के लिए एक प्रमुख समाधान वास्तुकार है। वह ऑटोनॉमस व्हीकल, रोबोटिक्स, सीवी, एनएलपी, एमएलओपीएस, एमएल प्लेटफॉर्म और रोबोटिक्स प्रोसेस ऑटोमेशन टेक्नोलॉजी में स्टार्टअप्स को एडब्ल्यूएस पर अपने व्यवसाय को कुशलतापूर्वक और प्रभावी ढंग से चलाने में मदद करता है। एडब्ल्यूएस में शामिल होने से पहले, हृषिकेश ने मुख्य रूप से क्लाउड और डेटा प्लेटफॉर्म के आसपास उद्योग का 20+ वर्षों का अनुभव हासिल किया।

अमेज़ॅन सेजमेकर विषम क्लस्टर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें। लंबवत खोज. ऐ.गैल ओशरी Amazon SageMaker टीम में वरिष्ठ उत्पाद प्रबंधक हैं। उन्हें मशीन लर्निंग टूल्स, फ्रेमवर्क और सेवाओं पर काम करने का 7 साल का अनुभव है।

अमेज़ॅन सेजमेकर विषम क्लस्टर प्लेटोब्लॉकचेन डेटा इंटेलिजेंस का उपयोग करके अपने मॉडल प्रशिक्षण के मूल्य प्रदर्शन में सुधार करें। लंबवत खोज. ऐ.चैम रैंड एक इंटेल कंपनी Mobileye में ऑटोनॉमस व्हीकल सॉल्यूशंस के लिए डीप लर्निंग और कंप्यूटर विज़न तकनीकों पर काम करने वाला एक मशीन लर्निंग एल्गोरिथम डेवलपर है। उसकी जाँच करें ब्लॉग.

समय टिकट:

से अधिक AWS मशीन लर्निंग

सारणीबद्ध डेटा मॉडलिंग के लिए नया अंतर्निहित अमेज़ॅन सेजमेकर एल्गोरिदम: लाइटजीबीएम, कैटबॉस्ट, ऑटोग्लुऑन-टैबुलर और टैबट्रांसफॉर्मर

स्रोत नोड: 1541386
समय टिकट: जून 28, 2022