हुआवेई का माइंडस्पोर: TensorFlow और PyTorch के लिए एक नया प्रतियोगी?

विषयसूची:

हुआवेई का माइंडस्पोर: TensorFlow और PyTorch के लिए एक नया प्रतियोगी?
हुआवेई का माइंडस्पोर: TensorFlow और PyTorch के लिए एक नया प्रतियोगी?

वीडियो: हुआवेई का माइंडस्पोर: TensorFlow और PyTorch के लिए एक नया प्रतियोगी?

वीडियो: हुआवेई का माइंडस्पोर: TensorFlow और PyTorch के लिए एक नया प्रतियोगी?
वीडियो: MindSpore от Huawei: новый конкурент для TensorFlow и PyTorch? 2024, नवंबर
Anonim

हुआवेई ने घोषणा की कि उसका TensorFlow और PyTorch स्टाइल माइंडस्पोर डीप लर्निंग मिडलवेयर अब ओपन सोर्स है। इस लेख में इसकी सबसे महत्वपूर्ण विशेषताओं के बारे में जानें।

हुआवेई द्वारा माइंडस्पोर
हुआवेई द्वारा माइंडस्पोर

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

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

सिस्टम आर्किटेक्चर

माइंडस्पोर वेबसाइट बताती है कि बुनियादी ढांचे में तीन मुख्य परतें होती हैं: फ्रंटएंड एक्सप्रेशन, ग्राफिक्स इंजन और बैकएंड रनटाइम। निम्नलिखित आंकड़ा एक दृश्य आरेख दिखाता है:

छवि
छवि

माइंडस्पोर का पहला स्तर प्रोग्रामर्स के लिए एक पायथन एपीआई प्रदान करता है। चूंकि हमारे समुदाय में भाषा भाषाविज्ञान वास्तव में पायथन है, और अन्यथा माइंडस्पोर PyTorch और TensorFlow के साथ प्रतिस्पर्धा करना चाहता है। इस एपीआई के साथ, प्रोग्रामर मॉडल (प्रशिक्षण, अनुमान, आदि) में हेरफेर कर सकते हैं और डेटा को संसाधित कर सकते हैं। इस पहले स्तर में कोड अंतरिम प्रतिनिधित्व (माइंडस्पोर आईआर) के लिए समर्थन भी शामिल है, जिस पर कई अनुकूलन आधारित होंगे जो समानांतरकरण और स्वचालित भेदभाव (जीएचएलओ) में किए जा सकते हैं।

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

माइंडस्पोर की पसंद दो मॉडलों का लाभ उठाने के लिए स्रोत कोड को मध्यवर्ती कोड प्रारूप (माइंडस्पोर आईआर) में बदलना है (अधिक जानकारी के लिए, माइंडस्पोर वेबसाइट पर "स्वचालित पृथक्करण" अनुभाग देखें)।

अंतिम परत में विभिन्न हार्डवेयर आर्किटेक्चर का समर्थन करने के लिए आवश्यक सभी पुस्तकालय और रनटाइम वातावरण होते हैं जिसमें कोड संसाधित किया जाएगा। सबसे अधिक संभावना है, यह अन्य ढांचे के समान एक बैकएंड होगा, शायद हुआवेई सुविधाओं के साथ, जैसे कि एचसीसीएल (हुआवेई कलेक्टिव कम्युनिकेशन लाइब्रेरी) जैसे पुस्तकालय, एनवीआईडीआईए एनसीसीएल (एनवीआईडीआईए कलेक्टिव कम्युनिकेशन लाइब्रेरी) के बराबर।

प्रशिक्षण दृश्य समर्थन

माइंडस्पोर ट्यूटोरियल के अनुसार, हालांकि उन्हें स्थापित करना और उनका उपयोग करना असंभव था, उनके पास विज़ुअलाइज़ेशन बनाने के लिए माइंडइनसाइट है जो कुछ हद तक TensorBoard, TensorFlow की याद दिलाता है। उनकी वेबसाइट पर दिखाए गए कुछ स्क्रीनशॉट पर एक नज़र डालें:

छवि
छवि
छवि
छवि

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

समानता

अपने ट्यूटोरियल में, वे दो समानांतर मोड (DATA_PARALLEL और AUTO_PARALLEL) के बारे में बात करते हैं और नमूना कोड प्रदान करते हैं जो एक चढ़ाई 910 प्रोसेसर (जिसे मैं परीक्षण करने में असमर्थ था) के लिए CIFAR डेटासेट के साथ ResNet-50 को प्रशिक्षित करता है। DATA_PARALLEL एक रणनीति को संदर्भित करता है जिसे आमतौर पर डेटा समानता के रूप में जाना जाता है, जिसमें प्रशिक्षण डेटा को कई सबसेट में विभाजित किया जाता है, जिनमें से प्रत्येक मॉडल की एक ही प्रतिकृति पर चलता है, लेकिन विभिन्न प्रसंस्करण इकाइयों में। कोड समानांतरकरण के लिए और विशेष रूप से AUTO_PARALLEL समांतरता के लिए ग्राफ़ इंजन समर्थन प्रदान किया जाता है।

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

नियोजित रोडमैप और योगदान कैसे करें

स्पष्ट रूप से बहुत काम किया जाना है और इस बिंदु पर उन्होंने इस पृष्ठ पर प्रस्तुत व्यापक रोडमैप में अगले वर्ष के लिए अपने मन में विचारों को सुव्यवस्थित किया है, लेकिन उनका तर्क है कि उपयोगकर्ता के अनुसार प्राथमिकताओं को समायोजित किया जाएगा।

प्रतिपुष्टि। फिलहाल हम ये मुख्य पंक्तियाँ पा सकते हैं:

  1. अधिक मॉडलों के लिए समर्थन (लंबित क्लासिक मॉडल, जीएएन, आरएनएन, ट्रांसफॉर्मर, प्रवर्धित शिक्षण मॉडल, संभाव्य प्रोग्रामिंग, ऑटोएमएल, आदि)।
  2. उपयोगिता और प्रोग्रामिंग अनुभव (अधिक ऑपरेटर, अधिक अनुकूलक, अधिक हानि कार्य, आदि) को बेहतर बनाने के लिए एपीआई और पुस्तकालयों का विस्तार करें।
  3. व्यापक Huawei चढ़ना प्रोसेसर समर्थन और प्रदर्शन अनुकूलन (संकलन अनुकूलन, संसाधन उपयोग में सुधार, आदि)
  4. सॉफ्टवेयर स्टैक का विकास और कम्प्यूटेशनल ग्राफ अनुकूलन का निष्पादन (मध्यवर्ती आईआर प्रतिनिधित्व में सुधार, अतिरिक्त अनुकूलन क्षमताओं को जोड़ना, आदि)।
  5. अधिक प्रोग्रामिंग भाषाओं के लिए समर्थन (सिर्फ पायथन नहीं)।
  6. स्वचालित शेड्यूलिंग, डेटा वितरण आदि के अनुकूलन के साथ बेहतर वितरित शिक्षण।
  7. प्रोग्रामर के लिए "डीबग" करना आसान बनाने के लिए माइंडइनसाइट टूल में सुधार करें और सीखने की प्रक्रिया के दौरान हाइपरपैरामीटर ट्यूनिंग में सुधार करें।
  8. एज में उपकरणों के लिए अनुमान कार्यक्षमता प्रदान करने में प्रगति (सुरक्षा, ONNX के माध्यम से गैर-प्लेटफ़ॉर्म मॉडल के लिए समर्थन, आदि)

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

निष्कर्ष

एक त्वरित पहली नज़र के बाद, ऐसा लगता है कि सही डिजाइन और कार्यान्वयन निर्णय (जैसे समवर्ती और स्वचालित भेदभाव) सुधार और अनुकूलन के लिए जगह जोड़ सकते हैं जो उन ढांचे से बेहतर प्रदर्शन प्राप्त करते हैं जिन्हें वे बेहतर प्रदर्शन करना चाहते हैं।लेकिन अभी भी PyTorch और TensorFlow को पकड़ने के लिए बहुत काम करना है, और सबसे बढ़कर एक समुदाय का निर्माण करना है, न कि केवल! हालाँकि, हम सभी पहले से ही जानते हैं कि हुआवेई जैसे क्षेत्र में एक बड़ी कंपनी के समर्थन से कुछ भी संभव है, या यह तीन साल पहले स्पष्ट था जब PyTorch (Facebook) का पहला संस्करण सामने आया था कि यह एड़ी के करीब हो सकता है TensorFlow (गूगल) का?

सिफारिश की: