هوروفود

Distributed Training Deep Learning Machine Learning Multi-GPU

تم تصميم هوروفود لتحسين السرعة وقابلية التوسع وتخصيص الموارد أثناء تدريب نماذج التعلم الآلي. آليته الأساسية—خوارزمية Ring-AllReduce—تتعامل بكفاءة مع نقل البيانات، مما يقلل من التعديلات البرمجية المطلوبة للانتقال من بيئة عقدة واحدة إلى بيئة متعددة العقد.

السياق التاريخي

تم تقديم هوروفود من قبل أوبر في عام 2017 كجزء من منصة التعلم الآلي كخدمة الداخلية الخاصة بها، ميشيلانجيلو. تم إنشاء الأداة لمعالجة مشاكل التوسع مع إعداد TensorFlow الموزع القياسي، والذي لم يكن كافياً لاحتياجات أوبر الواسعة. تم تصميم بنية هوروفود لتقليل أوقات التدريب بشكل كبير، مما يتيح تدريباً موزعاً سلساً.

يتم الآن صيانة هوروفود تحت مظلة مؤسسة الذكاء الاصطناعي التابعة لمؤسسة Linux، مما يعكس قبوله الواسع وتطوره المستمر في مجتمع المصادر المفتوحة.

الميزات الرئيسية

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

  2. خوارزمية Ring-AllReduce
    تعتبر جوهر كفاءة هوروفود، حيث تقوم هذه الخوارزمية بمعدل التدرجات بين العقد بأقل عرض نطاق ممكن، مما يقلل من عبء الاتصال في التدريب واسع النطاق.

  3. سهولة الاستخدام
    يبسط الانتقال من التدريب على وحدة معالجة رسومية واحدة إلى تدريب متعدد الوحدات مع تغييرات بسيطة جداً في الكود. يلتف حول المحسنات الموجودة ويستخدم واجهة تمرير الرسائل (MPI) للتواصل بين العمليات.

  4. الوعي بوحدات معالجة الرسومات
    يستخدم مكتبة NCCL من NVIDIA لتحسين الاتصال بين وحدات معالجة الرسومات لنقل البيانات بسرعة عالية وإدارة ذاكرة فعالة—وهو أمر بالغ الأهمية عند التعامل مع مجموعات بيانات كبيرة وعالية الأبعاد.

التثبيت والإعداد

لتثبيت هوروفود:

  • المتطلبات:

    • نظام GNU Linux أو macOS
    • Python 3.6+
    • CMake 3.13+
  • أمر التثبيت:

    pip install horovod[tensorflow,keras,pytorch,mxnet]
    
  • متغيرات البيئة الخاصة بالإطار:
    قم بتعيين متغيرات بيئة مثل HOROVOD_WITH_TENSORFLOW=1 للتحكم في دعم الإطار أثناء التثبيت.

حالات الاستخدام

يُستخدم هوروفود على نطاق واسع في السيناريوهات التي تتطلب تكرار وتدريب سريع للنماذج:

  • أتمتة الذكاء الاصطناعي وروبوتات الدردشة:
    في التطبيقات المعتمدة على الذكاء الاصطناعي مثل روبوتات الدردشة، يؤدي تسريع تدريب نماذج معالجة اللغة الطبيعية إلى تسريع دورات إنتاج المنتجات.

  • السيارات ذاتية القيادة:
    في أوبر، يُستخدم هوروفود في تطوير نماذج التعلم الآلي للسيارات ذاتية القيادة، حيث تتطلب مجموعات البيانات الكبيرة والنماذج المعقدة تدريباً موزعاً.

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

أمثلة ومقتطفات برمجية

مثال: دمج هوروفود في نص تدريبي لـ TensorFlow:

import tensorflow as tf
import horovod.tensorflow as hvd

# تهيئة هوروفود
hvd.init()

# تثبيت وحدة معالجة الرسومات التي ستُستخدم لمعالجة التصنيف المحلي
config = tf.ConfigProto()
config.gpu_options.visible_device_list = str(hvd.local_rank())

# بناء النموذج
model = ...  # عرّف نموذجك هنا
optimizer = tf.train.AdagradOptimizer(0.01)

# إضافة المحسن الموزع من هوروفود
optimizer = hvd.DistributedOptimizer(optimizer)

# بث الحالات الأولية للمتغيرات من التصنيف 0 إلى جميع العمليات الأخرى
hvd.broadcast_global_variables(0)

# حلقة التدريب
for epoch in range(num_epochs):
    # كود التدريب هنا
    ...

ميزات متقدمة

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

  • التدريب المرن:
    يدعم التكيف الديناميكي للموارد أثناء التدريب—مفيد بشكل خاص في البيئات السحابية حيث قد تتغير الموارد.

المجتمع والمساهمات

يستضيف هوروفود على GitHub، مع مجتمع قوي من المساهمين والمستخدمين. كجزء من Linux Foundation AI، يُشجع المطورون على المساهمة في تطويره المستمر. ومع أكثر من 14,000 نجمة وعدد كبير من الأفرع، يبرز انخراط المجتمع في هوروفود دوره الحيوي في التدريب الموزع.

هوروفود: تحسين التعلم العميق الموزع

يبسط هوروفود التعلم العميق الموزع، ويعالج اثنين من أكبر تحديات التوسع: عبء الاتصال وتعديلات الكود.

  • اتصال فعال بين وحدات معالجة الرسومات:
    طوره ألكسندر سيرجيف ومايك ديل بالسّو، يستخدم هوروفود تقليل الحلقة للاتصال بين وحدات معالجة الرسومات، مما يقلل بشكل كبير من التعديلات البرمجية المطلوبة للتدريب الموزع.

  • إتاحة أوسع:
    يتيح تدريباً موزعاً أسرع وأكثر سهولة في TensorFlow وأطر أخرى، مما يسهل على الباحثين تجاوز حدود التدريب على وحدة معالجة رسومية واحدة.

  • لمعرفة المزيد:
    لمزيد من التفاصيل، راجع الورقة “Horovod: fast and easy distributed deep learning in TensorFlow.”

الأبحاث: هوروفود في التدريب واسع النطاق

  • تدريب نماذج معالجة اللغة الطبيعية:
    تستكشف ورقة “Modern Distributed Data-Parallel Large-Scale Pre-training Strategies For NLP models” لهاو باي استراتيجيات التدريب المتوازي للبيانات باستخدام PyTorch وHorovod. تسلط الدراسة الضوء على قوة هوروفود، خاصة عند دمجه مع استراتيجية Apex للدقة المختلطة، مما يجعله فعالاً للنماذج الكبيرة مثل GPT-2 مع 100 مليون معلمة.

  • الجدولة الديناميكية:
    تبحث ورقة “Dynamic Scheduling of MPI-based Distributed Deep Learning Training Jobs” لتيم كيبس وآخرين في جدولة ديناميكية لوظائف التعلم العميق الموزع باستخدام بنية الحلقة في هوروفود، وتظهر أنها تتيح إيقاف الوظائف واستئنافها بكفاءة، مما يقلل من أوقات الإكمال الإجمالية ويؤكد قدرة هوروفود على التكيف مع المهام المعقدة في التعلم العميق.

الأسئلة الشائعة

ما هو هوروفود؟

هوروفود هو إطار عمل مفتوح المصدر لتدريب التعلم العميق الموزع تم تطويره بواسطة أوبر لتبسيط التدريب على عدة وحدات معالجة رسومية أو أجهزة، ويدعم TensorFlow وKeras وPyTorch وMXNet.

كيف يعمل هوروفود على تحسين التدريب الموزع؟

يستخدم هوروفود خوارزمية Ring-AllReduce لمتوسط التدرجات بكفاءة بين العقد، مما يقلل من عبء الاتصال وتعديلات الكود المطلوبة لتدريب قابل للتوسع.

ما هي الاستخدامات النموذجية لهوروفود؟

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

من يقوم بصيانة هوروفود الآن؟

يتم صيانة هوروفود تحت مظلة Linux Foundation AI، مع مجتمع مفتوح المصدر قوي يساهم في تطويره.

ما الذي يلزم لتثبيت هوروفود؟

يتطلب هوروفود نظام GNU Linux أو macOS، وPython 3.6 أو أحدث، وCMake 3.13+. يمكن تثبيته عبر pip مع خيارات لدعم الأطر المختلفة.

هل أنت مستعد لبناء ذكائك الاصطناعي الخاص؟

ابدأ في بناء حلول الذكاء الاصطناعي الخاصة بك باستخدام أدوات FlowHunt القوية والتكاملات السلسة.

اعرف المزيد

كافيه
كافيه

كافيه

كافيه هو إطار عمل مفتوح المصدر للتعلم العميق من مركز بيركلي للرؤية والتعلم (BVLC)، مُحسّن للسرعة والتجزئة في بناء الشبكات العصبية الالتفافية (CNNs). يُستخدم على...

5 دقيقة قراءة
Caffe Deep Learning +4
تحديث FlowHunt 2.4.1 يقدّم Claude، Grok، Llama والمزيد
تحديث FlowHunt 2.4.1 يقدّم Claude، Grok، Llama والمزيد

تحديث FlowHunt 2.4.1 يقدّم Claude، Grok، Llama والمزيد

يقدم FlowHunt 2.4.1 نماذج ذكاء اصطناعي رئيسية جديدة بما في ذلك Claude وGrok وLlama وMistral وDALL-E 3 وStable Diffusion، ما يوسّع خياراتك للتجريب والإبداع والأت...

2 دقيقة قراءة
AI LLM +7
تينسورفلو
تينسورفلو

تينسورفلو

تينسورفلو هو مكتبة مفتوحة المصدر طورتها فريق Google Brain، صممت للحوسبة الرقمية وتعلم الآلة واسع النطاق. تدعم التعلم العميق والشبكات العصبية وتعمل على وحدات الم...

2 دقيقة قراءة
TensorFlow Machine Learning +3