دليل بدء مشروع جديد

يوضح هذا القسم كيفية اختيار ما يلي في بداية مشروع التعلم الآلي:

  • بنية النموذج
  • المُحسّن
  • حجم الدفعة
  • الإعداد الأولي

الفرضيّات

تفترض النصيحة الواردة في هذا القسم ما يلي:

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

بافتراض أنك استوفيت جميع المتطلبات الأساسية السابقة، فأنت الآن جاهز لتخصيص وقت لبنية النموذج وتهيئة التدريب.

اختيار بنية النموذج

لنبدأ بالتعريفات التالية:

  • بنية النموذج هي نظام لإنشاء عبارات بحث مقترحة. تحتوي بنية النموذج على إطار عمل تحويل بيانات الإدخال إلى توقعات، ولكنها لا تحتوي على قيم المعلَمات. على سبيل المثال، الشبكة العصبية ذات ثلاث طبقات مخفية مكونة من 10 عُقد و5 عُقد و3 عُقد، على التوالي، هي بنية نموذج.
  • model هو بنية نموذج بالإضافة إلى قيم محددة لجميع المعلَمات. على سبيل المثال، يتكون النموذج من الشبكة العصبية الموضحة في تعريف بنية النموذج، بالإضافة إلى القيم المحددة للأوزان والانحياز لكل عقدة.
  • مجموعة النماذج هي نموذج لإنشاء بنية نموذجية بالاستناد إلى مجموعة من المَعلمات الفائقة.

يعني اختيار بنية النموذج حقًا اختيار مجموعة من النماذج المختلفة (نموذج لكل إعداد من إعدادات فرط المعلمات الخاصة بالنموذج).

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

اختيار محسِّن

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

نوصي باختيار محسِّن الأداء الأكثر شيوعًا لنوع المشكلة التي تعمل عليها. نوصي باستخدام أدوات تحسين الأداء المعروفة التالية:

انتبِه إلى جميع وسيطات المحسِّن الذي اخترته. عادةً ما تتطلب أدوات تحسين الأداء التي تتضمن المزيد من المعلَمات الفائقة مجهودًا أكبر في الضبط. ويكون هذا الأمر مزعجًا بشكل خاص في المراحل الأولى من المشروع عندما تحاول العثور على أفضل القيم لمختلف المعلمات الفائقة الأخرى (على سبيل المثال، معدل التعلم) مع التعامل مع وسيطات المحسن على أنها إزعاج. لذلك، ننصح باتّباع المنهج التالي:

  1. في بداية المشروع، اختر محسّنًا بدون العديد من المعلمات الفائقة القابلة للتعديل. وإليك مثالان:
    • دولار سنغافوري مع زخم ثابت.
    • آدم مع إصلاح مشاكل Epsilon وبيتا1 وبيتا2
  2. في المراحل اللاحقة من المشروع، يمكنك التبديل إلى محسّن أكثر عمومية يضبط المزيد من المعلمات الفائقة بدلاً من إصلاحها إلى القيم التلقائية.

اختيار حجم الدفعة

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

ويحدّد حجم المجموعة بشكل كبير وقت التدريب واستهلاك موارد الحوسبة. تؤدي زيادة حجم الدفعة غالبًا إلى تقليل وقت التدريب، وهو ما يؤدي إلى:

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

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

لا تتعامل مع حجم الدفعة كمَعلمة فائقة قابلة للضبط لأداء مجموعة التحقّق. إذا تم استيفاء جميع الشروط التالية، ينبغي ألا يعتمد أداء النموذج على حجم الدفعة:

  • جميع معلَمات مُحسن الأداء مُحسنة بشكل جيد.
  • التسوية كافية ومضبوطة بشكل جيد.
  • عدد الخطوات التدريبية كافٍ.

ويجب أن يكون بالإمكان تحقيق الأداء النهائي نفسه باستخدام أي حجم مجموعة. (اطّلِع على Shallue et al. 2018 ولماذا يجب عدم ضبط حجم الدفعة لتحسين أداء مجموعة عمليات التحقّق بشكل مباشر؟.

تحديد أحجام الدُفعات الممكنة وتقدير سرعة إنتاج التدريب

بالنسبة إلى طراز ومحسّن معينين، تدعم الأجهزة المتاحة عادة مجموعة من أحجام الدُفعات. عادة ما يكون العامل المقيد عادةً ذاكرة المسرّع. ولسوء الحظ، قد يكون من الصعب حساب أحجام الدُفعات التي تلائم الذاكرة بدون تشغيل، أو على الأقل تجميع، برنامج التدريب الكامل. أسهل حل عادةً هو تشغيل مهام التدريب بأحجام دُفعات مختلفة (على سبيل المثال، زيادة القوى 2) لعدد قليل من الخطوات حتى تتجاوز إحدى المهام الذاكرة المتاحة. بالنسبة إلى كل حجم دُفعة، درّب لمدة كافية للحصول على تقدير موثوق به حول سرعة معالجة البيانات:

سرعة معالجة بيانات التدريب = عدد الأمثلة التي تتم معالجتها في الثانية

أو الوقت لكل خطوة في هذه الحالة:

الوقت لكل خطوة = حجم الدفعة / سرعة معالجة البيانات

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

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

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

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

اختيار حجم الدفعة لتقليل وقت التدريب

في ما يلي تعريف وقت التدريب:

  • وقت التدريب = (الوقت لكل خطوة) x (إجمالي عدد الخطوات)

ويمكنك غالبًا اعتبار أن الوقت لكل خطوة ثابت تقريبًا لجميع أحجام الدفعات الممكنة. وينطبق ذلك في الحالات التالية:

  • ليست هناك تكاليف زائدة عن العمليات الحسابية المتوازية.
  • تم تشخيص جميع المعوقات المتعلقة بالتدريب وتصحيحها. (راجع القسم السابق للتعرف على كيفية تحديد المعوقات في التدريب. من الناحية العملية، عادة ما يكون هناك عادةً بعض النفقات العامة على الأقل من زيادة حجم الدفعة.

مع زيادة حجم الدفعة، يقل عادةً إجمالي عدد الخطوات اللازمة لتحقيق هدف أداء ثابت، بشرط إعادة ضبط جميع المعلمات الفائقة ذات الصلة عند تغيير حجم الدفعة. (راجِع Shallue et al. 2018.) على سبيل المثال، قد يؤدي مضاعفة حجم الدفعة إلى خفض إجمالي عدد الخطوات المطلوبة إلى النصف. تُعرف هذه العلاقة باسم التحجيم المثالي ويجب أن تتضمن جميع أحجام الدُفعات حتى حجم الدفعة المهم.

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

عند مقارنة أحجام الدُفعات، يجب الانتباه إلى التمييز بين ما يلي:

  • مثال لميزانية أو ميزانية حقبة - إجراء جميع التجارب مع إصلاح عدد نماذج العروض التقديمية للتدريب.
  • ميزانية الخطوة - إجراء جميع التجارب بعدد ثابت من خطوات التدريب.

إن مقارنة أحجام الدُفعات مع ميزانية الحقبة لا تحقق سوى نظام التوسُّع المثالي، حتى في حال كانت أحجام الدُفعات الأكبر قد لا تزال توفّر تسريعًا مفيدًا من خلال تقليل عدد خطوات التدريب المطلوبة. غالبًا ما يكون حجم الدفعة الأكبر الذي تدعمه الأجهزة المتاحة أصغر من حجم الدفعة المهم. من هنا، القاعدة الأساسية الجيدة (بدون إجراء أي تجارب) هي استخدام أكبر حجم ممكن للدفعة.فليس هناك جدوى من استخدام حجم دُفعة أكبر إذا أدى ذلك إلى زيادة وقت التدريب.

اختيار حجم الدفعة لتقليل استهلاك الموارد

هناك نوعان من تكاليف الموارد المرتبطة بزيادة حجم الدفعة:

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

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

ونشير إلى التكلفة الإجمالية للاستخدام (التي قد تشمل أنواعًا مختلفة من التكاليف) باعتبارها استهلاك الموارد، ويتم احتسابها على النحو التالي:

استهلاك الموارد = استهلاك الموارد لكل خطوة × إجمالي عدد الخطوات

تؤدي زيادة حجم الدفعة عادةً إلى تقليل إجمالي عدد الخطوات. يعتمد مقدار زيادة استهلاك الموارد أو انخفاضه على كيفية تغيّر الاستهلاك لكل خطوة، وذلك من خلال حجم الدفعة على النحو التالي:

  • قد تؤدي زيادة حجم الدفعة إلى تقليل استهلاك الموارد. على سبيل المثال، إذا كان من الممكن تشغيل كل خطوة ذات حجم الدفعة الأكبر على نفس الجهاز مثل حجم الدفعة الأصغر (مع زيادة بسيطة فقط في الوقت لكل خطوة)، قد تكون أي زيادة في استهلاك الموارد لكل خطوة أكبر من الانخفاض في عدد الخطوات.
  • قد لا تؤدي زيادة حجم الدفعة إلى تغيير استهلاك الموارد. على سبيل المثال، إذا أدى مضاعفة حجم الدفعة إلى نصف عدد الخطوات المطلوبة ومضاعفة عدد وحدات معالجة الرسومات المستخدَمة، لن يتغيّر إجمالي الاستهلاك (من حيث ساعات وحدة معالجة الرسومات).
  • قد تؤدي زيادة حجم الدفعة إلى زيادة استهلاك الموارد. على سبيل المثال، إذا كانت زيادة حجم الدفعة تتطلب أجهزة تمت ترقيتها، فقد تفوق الزيادة في الاستهلاك لكل خطوة الانخفاض في عدد الخطوات.

يتطلب تغيير حجم الدفعة إعادة ضبط معظم المعلمات الفائقة

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

  • المعلَمات الفائقة للمحسّن (على سبيل المثال، معدّل التعلّم والزخم)
  • المعلَمات الفائقة للضبط

لاحظ ذلك عند اختيار حجم الدفعة في بداية المشروع. إذا كنت بحاجة إلى التبديل إلى حجم دُفعة مختلف في وقت لاحق، قد يكون من الصعب إعادة ضبط المعلَمات الفائقة الأخرى لحجم الدفعة الجديدة ويستغرق وقتًا طويلاً ومكلفًا.

كيفية تفاعل قاعدة الدفعة مع حجم الدفعة

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

اختيار الإعدادات الأولية

المرحلة الأولى في ضبط المعلَمة الفائقة هي تحديد نقاط البدء لما يلي:

  • إعداد النموذج (مثل عدد الطبقات)
  • المعلَمات الفائقة للمحسّن (مثل معدل التعلّم)
  • وعدد خطوات التدريب

يتطلب تحديد هذه التكوينات الأولية بعض عمليات التدريب التي تم إعدادها يدويًا، والتجربة والخطأ.

مبدأنا الإرشادي هو كما يلي:

ابحث عن إعدادات بسيطة وسريعة نسبيًا ومنخفضة نسبيًا لاستهلاك مواردها وتحقيق أداء معقول.

المكان:

  • تعني كلمة بسيطة تجنب ميزات المسارات غير الضرورية، مثل الانتظام الخاص أو الحيل الهندسية. على سبيل المثال، يكون إعداد مسار بدون تنظيم الانسحاب (أو إيقاف تسوية عمليات الانقطاع) أبسط من مساره الذي يحتوي على تنظيم عمليات التسرّب.
  • يعتمد الأداء المعقول على المشكلة، ولكن على الأقل، يكون أداء النموذج المدرَّب أفضل بكثير من الصدفة العشوائية في مجموعة التحقق.

يؤدي اختيار تهيئة أولية سريعة وتستهلك الحد الأدنى من الموارد إلى جعل ضبط المعلَمة الفائقة أكثر كفاءة. على سبيل المثال، ابدأ بنموذج أصغر.

يتضمن اختيار عدد خطوات التدريب موازنة التوتر التالي:

  • يمكن أن يؤدي التدريب على مزيد من الخطوات إلى تحسين الأداء وتبسيط ضبط المعلَمة الفائقة. (لمزيد من التفاصيل، يُرجى الاطّلاع على Shallue et al. 2018).
  • في المقابل، يعني التدريب لخطوات أقل أن كل عملية تدريب أسرع وتستهلك موارد أقل، ما يعزّز كفاءة الضبط من خلال تقليل الوقت بين الدورات والسماح لك بإجراء المزيد من التجارب بالتوازي. علاوة على ذلك، إذا اخترت ميزانية خطوة كبيرة بشكل غير ضروري في بداية المشروع، فقد يكون من الصعب تغييرها لاحقًا في المشروع؛ على سبيل المثال، بمجرد ضبط جدول معدل التعلم لهذا العدد من الخطوات.