مقارنة أطر التعلم العميقة: TensorFlow ، PyTorch ، Keras ، MXNet ، مجموعة أدوات Microsoft المعرفية ، Caffe ، إلخ

مرحبا بالجميع. في يوم الجمعة هذا ، نشارك معكم المنشور الأول عن إطلاق دورة علماء البيانات . هل لديك قراءة جيدة.

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



يمكن أن تكون قائمة الأطر التالية للتعلم العميق مفيدة في عملية اختيار الأداة المناسبة لحل المشكلات المحددة التي تواجهها في عملية العمل في مشروع ما. يمكنك مقارنة إيجابيات وسلبيات الحلول المختلفة ، وتقييم حدودها والتعرف على أفضل حالات الاستخدام لكل حل!

1. Tensorflow

تعد TensorFlow التي أنشأتها Google وكتبت في Python و C ++ ، واحدة من أفضل المكتبات مفتوحة المصدر للحوسبة العددية. إنه ببساطة يجب أن يكون جيدًا ، لأنه حتى العمالقة مثل DeepMind أو Uber أو AirBnB أو Dropbox اختاروا هذا الإطار لتلبية احتياجاتهم.

TensorFlow مفيد للمشاريع المعقدة مثل الشبكات العصبية متعددة الطبقات. يتم استخدامه للتعرف على الصوت أو الصور والتطبيقات النصية مثل الترجمة من Google ، على سبيل المثال.

بالطبع ، دعا الخبراء العديد من مزاياه:

  • وقد كتب لها عدد كبير من الأدلة والوثائق ؛
  • يوفر أدوات قوية لمراقبة عملية التعلم من النماذج والتصور (Tensorboard) ؛
  • ويدعمها مجتمع كبير من المطورين وشركات التكنولوجيا.
  • ويوفر نماذج الخدمة ؛
  • وهو يدعم التعلم الموزع.
  • يوفر TensorFlow Lite مخرجات لأجهزة الكمون المنخفض للأجهزة المحمولة ؛

وسلبيات:

يفقد في السرعة في المعايير ، بالمقارنة مع CNTK و MXNet ، على سبيل المثال ؛
له حد دخول أعلى للمبتدئين من PyTorch أو Keras. Naked Tensorflow منخفضة المستوى للغاية وتتطلب الكثير من التعليمات البرمجية النقطية ، ووضع "الكشف والتشغيل" لـ Tensorflow يعقد عملية تصحيح الأخطاء بشكل كبير.

هناك قيود أخرى مهمة: اللغة المدعومة بالكامل هي بيثون.

2. PyTorch

PyTorch هو خليفة Python لمكتبة Lua Torch ، وهو منافس كبير لـ TensorFlow. تم تطويره بواسطة Facebook ويستخدمه Twitter و Salesforce وجامعة أكسفورد والعديد من الشركات الأخرى.

يستخدم PyTorch بشكل أساسي لتدريب النماذج بسرعة وكفاءة ، لذلك هذا هو اختيار عدد كبير من المطورين.

لديها العديد من المزايا المهمة:

  • بفضل بنية الإطار ، أصبحت عملية إنشاء نموذج بسيطة وشفافة للغاية ؛
  • يعد وضع التعريف الافتراضي هو إشارة إلى البرمجة التقليدية. يدعم الإطار أدوات تصحيح الأخطاء الشائعة مثل pdb أو ipdb أو PyCharm debugger ؛
  • وهو يدعم التزامن البيانات التعريفي.
  • لديها العديد من النماذج المدربة مسبقًا والأجزاء المعيارية الجاهزة التي يسهل دمجها ؛

التدريب الموزع متاح منذ الإصدار 0.4.

لكن لهذا الإطار بعض السلبيات التي لا يمكن إنكارها:

  • عدم وجود نموذج الدعم ؛
  • إنه ليس جاهزًا بعد للإصدار الكامل في الإنتاج ، لكن خريطة الطريق إلى الإصدار 1.0 تبدو رائعة حقًا ؛
  • هناك نقص في الواجهات للمراقبة والتصور ، مثل TensorBoard - ومع ذلك ، فإنه يحتوي على اتصال خارجي بلوحة Tensorboard.


3. كراس

Keras عبارة عن مكتبة صغيرة قائمة على Python ويمكنها تشغيل TensoFlow أو Theano أو CNTK. تم تطويره من قبل مهندس Google ، فرانسوا شوليت ، لتسريع التجارب. تدعم Keras مجموعة واسعة من طبقات الشبكة العصبية ، مثل الطبقات التلافيفية ، المتكررة أو الكثيفة.

هذا الإطار جيد في حالات الترجمة والتعرف على الصور والكلام وما إلى ذلك.

المزايا:

  • النماذج هي حقا سريعة وسهلة.
  • إنها صغيرة بما يكفي لبناء نماذج تعليمية عميقة للعديد من الطبقات ؛
  • لديه وحدات شكلي تماما.
  • لديه واجهة بسيطة وبديهية ، على التوالي ، جيدة للمبتدئين.
  • لديه دعم مدمج للتدريب على وحدات معالجة الرسومات المتعددة ؛
  • يمكن تهيئته كمقيمين لـ TensorFlow وتدريبهم على مجموعات GPU على منصة Google Cloud ؛
  • يعمل على شرارة.
  • يدعم وحدات معالجة الرسومات NVIDIA و Google TPUs و Open-CL GPUs مثل AMD.

وبعض العيوب:

  • قد يتحول إلى مستوى عالٍ جدًا وليس من السهل دائمًا تخصيصه ؛
  • يقتصر على Tensorflow ، CNTK ، و Theano الخلفية.

إن Keras لا يعمل مثل TensorFlow ويوفر خيارات أقل لإدارة اتصال الشبكة ، مما قد يكون قيدًا خطيرًا إذا كنت تنوي إنشاء نموذج تعليمي عميق متخصص.

4. MXNet


هذا إطار تعلم عميق تم إنشاؤه بواسطة Apache يدعم وفرة من اللغات مثل Python أو Julia أو C ++ أو R أو JavaScript. يتم استخدامه بواسطة خدمات Microsoft و Intel و Amazon Web Services.

يُعرف إطار عمل MXNet بقابلية التوسع العالية ، وهذا هو السبب في أنه يتم استخدامه من قبل الشركات الكبيرة بشكل أساسي للتعرف على الكلام والكتابة اليدوية ، البرمجة اللغوية العصبية والتنبؤ.
لديها العديد من المزايا:

  • إنه سريع بما فيه الكفاية ومرن وفعال في العمل مع خوارزميات التعلم العميق ؛
  • ويوفر دعم GPU المتقدمة.
  • يمكن أن تعمل على أي جهاز.
  • يحتوي على واجهة برمجة تطبيقات ضرورية عالية الأداء ؛
  • ويوفر دعم نموذج سهل.
  • انها قابلة للتطوير للغاية.
  • يوفر دعمًا جيدًا للعديد من لغات البرمجة ، مثل Python و R و Scala و JavaScript و C ++ والعديد من اللغات الأخرى.

الآن من أجل عيوب MXNet:

  • من حوله لم يعد هناك مجتمع مثل حول TensorFlow.
  • ليست شعبية جدا في المجتمع العلمي.

استنادًا إلى الحجج المذكورة أعلاه ، يعد MXNet إطارًا جيدًا للمشاريع الصناعية الكبيرة ، لكنه لا يزال صغيرًا ، لذا تذكر أنك قد لا تتلقى دعمًا فنيًا في حل مشكلتك بالسرعة التي تريدها.

5. CNTK

يُطلق على هذا الإطار الآن مجموعة أدوات Microsoft المعرفية. إنه إطار تعلم عميق مفتوح مصمم للعمل مع مجموعات البيانات الكبيرة حقًا بدعم من Python و C ++ و C # و Java.

يوفر CNTK تدريبًا فعالًا للنماذج على الصوت والكتابة اليدوية والتعرف على الصور ، كما يدعم CNN و RNN. يتم استخدامه على Skype و Xbox و Cortana.

كما هو الحال دائمًا ، يقدر الخبراء بالفعل فوائده:

  • يظهر الأداء الجيد والتدرجية.
  • يوفر العديد من المكونات المحسنة ؛
  • يقدم الدعم لأباتشي سبارك ؛
  • فعال في استخدام الموارد ؛
  • لديه تكامل سهل مع Azure Cloud ؛

وعيوب واحد:

  • دعم المجتمع المحدود.

6. كافيه و Caffe2

Caffe هو إطار C ++ يحتوي على واجهة Python قابلة للاستخدام للغاية. وهو يدعم شبكة CNN وشبكات التوزيع المباشر ، كما أنه مفيد لنماذج التدريب (دون كتابة سطور إضافية من التعليمات البرمجية) ومعالجة الصور وتحسين الشبكات العصبية الحالية. من ناحية أخرى ، لم يتم توثيقه بشكل جيد وصعب التجميع. لا توجد معلومات عن استخدام Caffe من قبل أي شركة كبيرة. في عام 2017 ، أصدر Facebook Caffe 2 ، الذي أصبح خلفًا حقيقيًا لـ Caffe ، وتم إنشاؤه لتطوير المحمول على نطاق واسع في بيئة الإنتاج.

وهو معروف على Facebook باسم "منصة جاهزة للإنتاج (...) تعمل على أكثر من مليار هاتف ذكي ، تمتد عبر 8 أجيال من iPhone وستة أجيال من معالجات أندرويد."

هذا الإطار جيد لعدة أسباب:

  • ويقدم نماذج مدربة مسبقًا لإنشاء تطبيقات تجريبية ؛
  • إنه سريع وقابل للتطوير ويشغل مساحة صغيرة.
  • إنه يعمل بشكل جيد مع الأطر الأخرى مثل PyTorch ، وسيتم دمجه في النهاية في PyTorch 1.0 ؛
  • ويوفر العمل الأمثل مع الخادم.

ومرة أخرى ، العيب الرئيسي:

  • دعم المجتمع المحدود.

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

7. Deeplearning4j

إذا كانت لغة البرمجة الرئيسية هي Java ، فعليك بالتأكيد إلقاء نظرة فاحصة على DL4J. إنها منصة تجارية مفتوحة المصدر مكتوبة أساسًا لـ Java و Scala توفر دعمًا جيدًا لأنواع مختلفة من الشبكات العصبية (مثل CNN أو RNN أو RNTN أو LTSM).

سيكون هذا الإطار اختيارًا جيدًا نظرًا لأنه يتمتع بإمكانات كبيرة في مجالات التعرف على الصور ومعالجة اللغة الطبيعية والبحث عن الثغرات وتحليل النصوص.

الايجابيات:

  • موثوقة ومرنة وفعالة ؛
  • يمكن معالجة كميات كبيرة من البيانات دون فقدان السرعة ؛
  • يعمل مع Apache Hadoop و Spark ، على وحدة المعالجة المركزية الموزعة أو وحدة معالجة الرسومات ؛
  • لديه وثائق جيدة ؛
  • لديه نسخة مجتمع ومؤسسة.

ما يثير الدهشة ، عند الحديث عن هذا الإطار ، أن الخبراء لا يركزون على أي أوجه قصور محددة ، كما نفترض في نقاش عام حول مدى ملاءمة جافا للتعلم الآلي بشكل عام. نظرًا لعدم استخدام Java في كثير من الأحيان في مشاريع التعلم الآلي ، لا يمكن للإطار الاعتماد على قواعد بيانات متنامية من التعليمات البرمجية الجاهزة لحل مشكلات محددة. نتيجة لذلك ، يمكن أن تصبح تكاليف مشروعك أعلى بكثير ، ويمكن لحل مشكلة واحدة أن يبطئ بشكل كبير التقدم الإجمالي للمشروع.

8. شاينر

إطار بيثون للتعلم العميق يدعمه عمالقة مثل Intel و IBM و NVIDIA و AWS. يمكن بسهولة استخدام GPUs متعددة.

يستخدم شاينر بشكل أساسي في التعرف على الصوت والترجمة الآلية والتحليل الرئيسي. يدعم العديد من بنيات الشبكات ، مثل CNN ، و fast-forward ، و RNN ، وله العديد من المزايا المهمة على منافسيه:

  • إنه أسرع بكثير من أي إطار بيثون آخر ؛
  • أنها مرنة بشكل لا يصدق وبديهية.
  • يمكن تعديل الشبكات الحالية مباشرة في وقت التشغيل ؛

من ناحية أخرى:

  • صعب للغاية من حيث التصحيح ؛
  • من حوله مجتمع صغير نسبيا.

نظرًا لأن الأطر الأخرى المستندة إلى Python أكثر شيوعًا ، فقد لا تحصل على مساعدة سريعة مثل الأطر الأخرى مثل TensorFlow أو PyTorch.

لتلخيص

يمكن أن يكون اختيار أفضل إطار لمشروع التعلم العميق أمرًا بالغ الصعوبة. تحتاج إلى النظر في العوامل التالية:

  • نوع الشبكات العصبية التي ستقوم بتطويرها ؛
  • لغة البرمجة التي تستخدمها ؛
  • عدد الأدوات والخيارات الإضافية التي قد تحتاجها ؛
  • ميزانية المشروع
  • الطبيعة والأهداف التي يسعى المشروع إلى تحقيقها.

آمل أن تسلط هذه المقارنة بين الأطر بعض الضوء على هذه المشكلة وتساعدك على اختيار الحل الأنسب لمشروعك.

اكتب التعليقات وأراك في اليوم المفتوح ، الذي سيعقد في 19 مارس من قبل ألكسندر نيكيتين .

Source: https://habr.com/ru/post/ar443874/


All Articles