MindSpore من Huawei: منافس جديد لـ TensorFlow و PyTorch؟

جدول المحتويات:

MindSpore من Huawei: منافس جديد لـ TensorFlow و PyTorch؟
MindSpore من Huawei: منافس جديد لـ TensorFlow و PyTorch؟

فيديو: MindSpore من Huawei: منافس جديد لـ TensorFlow و PyTorch؟

فيديو: MindSpore من Huawei: منافس جديد لـ TensorFlow و PyTorch؟
فيديو: MindSpore от Huawei: новый конкурент для TensorFlow и PyTorch? 2024, شهر نوفمبر
Anonim

أعلنت شركة Huawei أن البرامج الوسيطة MindSpore Deep Learning على غرار TensorFlow و PyTorch أصبحت الآن مفتوحة المصدر. اكتشف في هذا المقال أهم خصائصه.

MindSpore من هواوي
MindSpore من هواوي

أعلنت شركة Huawei للتو أن إطار عمل MindSpore لتطوير تطبيقات الذكاء الاصطناعي أصبح مفتوح المصدر ومتاحًا على GiHub و Gitee. MindSpore هو إطار عمل تعلم عميق آخر لتدريب نماذج الشبكات العصبية ، على غرار TensorFlow أو PyTorch ، المصمم للاستخدام من Edge إلى Cloud ، والذي يدعم كلاً من وحدات معالجة الرسومات ومعالجات Huawei Ascend.

في أغسطس الماضي ، عندما أعلنت Huawei عن الإطلاق الرسمي لمعالجها Ascend ، تم تقديم MindSpore لأول مرة ، مشيرة إلى أنه في جلسة تدريب نموذجية تعتمد على ResNet-50 ، يكون الجمع بين Ascend 910 و MindSpore أسرع مرتين تقريبًا. عند تدريب نماذج الذكاء الاصطناعي مقابل بطاقات التعلم الرئيسية الأخرى باستخدام TensorFlow ، من الصحيح أن العديد من الأطر قد ظهرت في السنوات الأخيرة ، وربما لا تكون MindSpore أكثر من مجموعة واحدة يمكنها حتى التنافس عن بعد مع TensorFlow (بدعم من Google) و PyTorch (بدعم من Facebook)).

بنية النظام

يصف موقع MindSpore أن البنية التحتية تتكون من ثلاث طبقات رئيسية: تعبير الواجهة الأمامية ومحرك الرسومات ووقت تشغيل الواجهة الخلفية. يوضح الشكل التالي مخططًا مرئيًا:

صورة
صورة

يقدم المستوى الأول من MindSpore واجهة برمجة تطبيقات Python للمبرمجين. نظرًا لأن لغويات اللغة في مجتمعنا هي لغة Python ، وبخلاف ذلك ، تريد MindSpore التنافس مع PyTorch و TensorFlow. باستخدام واجهة برمجة التطبيقات هذه ، يمكن للمبرمجين معالجة النماذج (التدريب والاستدلال وما إلى ذلك) ومعالجة البيانات. يتضمن هذا المستوى الأول أيضًا دعمًا للتمثيل المؤقت للكود (MindSpore IR) ، والذي ستستند إليه العديد من التحسينات التي يمكن إجراؤها بالتوازي والتمايز التلقائي (GHLO).

يوجد أدناه طبقة محرك الرسم البياني التي توفر الوظائف اللازمة لإنشاء وتنفيذ التمايز التلقائي للرسم البياني للتنفيذ. مع MindSpore ، اختاروا نموذج تمايز تلقائي غير PyTorch (الذي يولد رسمًا بيانيًا ديناميكيًا للتنفيذ) أو TensorFlow (على الرغم من أن خيار إنشاء جدول تنفيذ ثابت أكثر كفاءة قد تم اختياره في الأصل ، فإنه يوفر الآن أيضًا خيار رسم بياني ديناميكي للتنفيذ ويسمح نسخة ثابتة من الرسم البياني باستخدام الديكور @ tf.function لواجهة برمجة التطبيقات ذات المستوى المنخفض).

خيار MindSpore هو تحويل كود المصدر إلى تنسيق كود وسيط (MindSpore IR) للاستفادة من النموذجين (لمزيد من المعلومات ، راجع قسم "الفصل التلقائي" على موقع MindSpore الإلكتروني).

تتكون الطبقة النهائية من جميع المكتبات وبيئات وقت التشغيل اللازمة لدعم بنى الأجهزة المختلفة التي ستتم معالجة الكود فيها. على الأرجح ، ستكون خلفية مشابهة جدًا لأطر العمل الأخرى ، ربما مع ميزات Huawei ، مثل المكتبات مثل HCCL (مكتبة Huawei Collective Communication Library) ، ما يعادل NVIDIA NCCL (مكتبة الاتصالات الجماعية NVIDIA).

دعم تصور التدريب

وفقًا لبرنامج MindSpore التعليمي ، على الرغم من أنه كان من المستحيل تثبيتها واستخدامها ، إلا أنها تمتلك MindInsight لإنشاء تصورات تشبه إلى حد ما TensorBoard و TensorFlow. ألق نظرة على بعض لقطات الشاشة التي تظهر على موقع الويب الخاص بهم

صورة
صورة
صورة
صورة

وفقًا للدليل ، تستخدم MindSpore حاليًا آلية رد اتصال (تذكرنا بكيفية إجراء ذلك مع Keras) لكتابة (في ملف سجل) في عملية تدريب جميع معلمات النموذج والمعلمات الفائقة التي نريدها ، بالإضافة إلى جدول الحساب عندما اكتمل تجميع الشبكة العصبية إلى كود وسيط.

تماثل

في البرنامج التعليمي الخاص بهم ، تحدثوا عن وضعين للتوازي (DATA_PARALLEL و AUTO_PARALLEL) وقدموا عينة من التعليمات البرمجية التي تدرب ResNet-50 مع مجموعة بيانات CIFAR لمعالج Ascend 910 (الذي لم أتمكن من اختباره). يشير DATA_PARALLEL إلى إستراتيجية تُعرف عمومًا باسم توازي البيانات ، والتي تتكون من تقسيم بيانات التدريب إلى مجموعات فرعية متعددة ، يعمل كل منها على نفس النسخة المتماثلة للنموذج ، ولكن في وحدات معالجة مختلفة. يتم توفير دعم Graph Engine لموازنة الكود وبشكل خاص لتوازي AUTO_PARALLEL.

يعمل وضع AUTO_PARALLEL تلقائيًا على تحسين الموازاة من خلال الجمع بين إستراتيجية موازنة البيانات (التي تمت مناقشتها أعلاه) مع استراتيجية موازاة النموذج ، حيث يتم تقسيم النموذج إلى أجزاء مختلفة ، ويتم تنفيذ كل جزء بالتوازي في وحدات معالجة مختلفة. يحدد هذا الوضع التلقائي استراتيجية الموازاة التي تقدم أفضل الفوائد ، والتي يمكن قراءتها في القسم الموازي التلقائي على موقع MindSpore على الويب (على الرغم من أنها لا تصف كيفية اتخاذ التقديرات والقرارات). سيتعين علينا الانتظار لإتاحة الوقت للفريق الفني لتوسيع الوثائق وفهم المزيد من التفاصيل حول استراتيجية الموازاة التلقائية. لكن من الواضح أن استراتيجية الموازاة التلقائية هذه أمر بالغ الأهمية ، وهذا هو المكان الذي ينبغي عليهم فيه المنافسة مع TensorFlow أو PyTorch ، والحصول على أداء أفضل بشكل ملحوظ باستخدام معالجات Huawei.

خارطة طريق مخطط لها وكيفية المساهمة

من الواضح أن هناك الكثير من العمل الذي يتعين القيام به وفي هذه المرحلة قاموا بتبسيط الأفكار التي لديهم في أذهانهم للعام المقبل في خارطة الطريق الشاملة المقدمة في هذه الصفحة ، لكنهم يجادلون بأنه سيتم تعديل الأولويات وفقًا للمستخدم.

ردود الفعل. في الوقت الحالي ، يمكننا العثور على هذه الخطوط الرئيسية:

  1. دعم المزيد من النماذج (النماذج الكلاسيكية المعلقة ، GAN ، RNN ، المحولات ، نماذج التعلم المكبرة ، البرمجة الاحتمالية ، AutoML ، إلخ).
  2. قم بتوسيع واجهات برمجة التطبيقات والمكتبات لتحسين إمكانية الاستخدام وتجربة البرمجة (المزيد من المشغلين ، المزيد من المحسّنين ، المزيد من وظائف الخسارة ، إلخ.)
  3. دعم معالج Huawei Ascend الشامل وتحسين الأداء (تحسين التجميع وتحسين استخدام الموارد وما إلى ذلك)
  4. تطور مجموعة البرامج وتنفيذ تحسينات الرسم البياني الحسابي (تحسين تمثيل الأشعة تحت الحمراء الوسيطة ، وإضافة إمكانيات تحسين إضافية ، وما إلى ذلك).
  5. دعم المزيد من لغات البرمجة (ليس فقط Python).
  6. تحسين التعلم الموزع مع تحسين الجدولة التلقائية وتوزيع البيانات وما إلى ذلك.
  7. قم بتحسين أداة MindInsight لتسهيل عملية "تصحيح" المبرمج وتحسين ضبط المعلمة الفائقة أثناء عملية التعلم.
  8. التقدم في تقديم وظائف الاستدلال للأجهزة الموجودة في Edge (الأمان ، ودعم الطرز التي لا تعتمد على النظام الأساسي عبر ONNX ، وما إلى ذلك)

في صفحة المجتمع ، يمكنك أن ترى أن MindSpore لديها شركاء خارج Huawei والصين ، مثل جامعة إدنبرة ، إمبريال كوليدج لندن ، جامعة مونستر (ألمانيا) أو جامعة باريس ساكلاي. يقولون إنهم سيتبعون نموذجًا للحوكمة المفتوحة ويدعون المجتمع بأكمله للمساهمة في كل من الكود والتوثيق.

استنتاج

بعد النظرة الأولى السريعة ، يبدو أن قرارات التصميم والتنفيذ الصحيحة (مثل التزامن والتمايز التلقائي) يمكن أن تضيف مجالًا للتحسينات والتحسينات التي تحقق أداءً أفضل من الأطر التي يريدون التفوق عليها في الأداء.ولكن لا يزال هناك الكثير من العمل للقبض على PyTorch و TensorFlow ، وقبل كل شيء بناء مجتمع ، ليس فقط! ومع ذلك ، نعلم جميعًا أنه بدعم من شركة واحدة كبيرة في هذا القطاع مثل Huawei ، كل شيء ممكن ، أو كان واضحًا قبل ثلاث سنوات عندما ظهر الإصدار الأول من PyTorch (Facebook) أنه يمكن أن يكون قريبًا من الكعب. من TensorFlow (جوجل)؟

موصى به: