يوضّح هذا القسم مسار التدريب.
تحسين مسار الإدخال
ملخّص: إنّ أسباب ومقترحات تحسين خطوط النقل المرتبطة بالمدخلات تعتمد بشكل كبير على المهمة. استخدِم أداة تحليل الأداء وابحث عن المشاكل الشائعة.
استخدِم أداة تحليل مناسبة، مثل إحدى الأدوات التالية، لتشخيص خطوط الأنابيب المرتبطة بالإدخال:
- Perfetto لـ JAX
- أداة TensorFlow profiler من أجل TensorFlow
في النهاية، تعتمد الأسباب والتدخلات المحددة بشكل كبير على المهمة. قد تؤدي الاعتبارات الهندسية الأوسع نطاقًا (مثل تقليل مساحة التخزين على القرص) إلى انخفاض أداء مسار إدخال البيانات.
في ما يلي الأسباب الشائعة لخطوط الأنابيب المرتبطة بالمدخلات:
- لا يتم تخزين البيانات في الموقع الجغرافي نفسه الذي تتم فيه عملية التدريب، ما يؤدي إلى تأخّر الإدخال/الإخراج. على سبيل المثال، قد يؤدي قراءة بيانات التدريب عبر شبكة إلى حدوث تأخير في الإدخال/الإخراج.
- المعالجة المُسبقة المكلفة للبيانات على الإنترنت ننصحك بإجراء المعالجة المسبقة مرة واحدة بلا إنترنت وحفظ النتائج.
- حواجز المزامنة غير المقصودة التي تتداخل مع الجلب المسبق لخط أنابيب البيانات على سبيل المثال، عند مزامنة المقاييس بين الجهاز والمضيف في CommonLoopUtils.
نقترح التدخّلات التالية لعمليات نقل البيانات المرتبطة بالمدخلات:
- تضمين مسار إدخال البيانات لجلب أمثلة مسبقًا (على سبيل المثال، tf.data.Dataset.prefetch).
- أزِل الميزات والبيانات الوصفية غير المستخدَمة من كل عنصر في أقرب وقت ممكن من عملية المعالجة.
- زيادة عدد الوظائف التي تنشئ أمثلة لخط أنابيب الإدخال، مثلاً باستخدام tf.data service
تقييم أداء النموذج
الملخّص: إجراء التقييم بأحجام دفعات أكبر من التدريب إجراء التقييمات على فترات منتظمة من الخطوات، وليس على فترات زمنية منتظمة
إعدادات التقييم
يمكنك استخدام الإعدادات التالية لتقييم أداء نماذجك:
- التقييم على الإنترنت: جمع المقاييس عندما يعرض النموذج التوقعات في بيئة إنتاج يقدّم التقييم على الإنترنت بشكل عام التقييم الأكثر واقعية لجودة النموذج، لأنّه يتطابق مع طريقة استخدام النموذج.
- التقييم بلا إنترنت: جمع المقاييس عند تشغيل النموذج على مجموعات تدريب أو تحقّق أو اختبار بلا إنترنت تمثّل بيئة الإنتاج استنادًا إلى المشكلة، يمكن أن يكون التقييم بلا إنترنت معقّدًا ومكلفًا من الناحية الحسابية.
- التقييمات الدورية: جمع المقاييس أثناء تدريب النموذج التي قد تكون بديلاً عن التقييم بلا إنترنت و/أو على مجموعة فرعية من البيانات المستخدَمة في التقييم بلا إنترنت تُعد التقييمات الدورية الخيار الأكثر عملية واقتصادية، ولكنها قد لا تمثّل بيئة الإنتاج بشكل كامل. احرص على استخدام وكيل سريع للتقييم بلا إنترنت، بدون التضحية بموثوقية الإشارة التي يتم تلقّيها أثناء التدريب.
إعداد التقييمات الدورية
ننصحك بإجراء تقييمات دورية أثناء التدريب للأسباب التالية:
- مراقبة مستوى تقدّم التدريب في الوقت الفعلي
- لتسهيل اختيار نقاط التحقّق من النموذج بأثر رجعي
- فحص منحنيات التدريب في نهاية التدريب
أبسط إعداد هو إجراء كل من التدريب والتقييمات الدورية ضمن مثيل الحوسبة نفسه، مع التبديل بشكل دوري بين التدريب والتقييم. في هذه الحالة، يجب أن يكون حجم الدفعة المستخدَم لإجراء التقييمات أكبر من أو يساوي حجم الدفعة المستخدَم للتدريب. ويرجع ذلك إلى أنّك لست بحاجة إلى الحفاظ على عمليات تفعيل النماذج أثناء التقييم، ما يقلّل من متطلبات الحوسبة لكل مثال.
إجراء تقييمات دورية على فترات منتظمة من الخطوات، وليس على فترات زمنية قد يصعُب تفسير منحنيات التدريب عند التقييم استنادًا إلى الفواصل الزمنية، خاصةً عندما يتأثر التدريب بعمليات إيقاف مؤقت لوظائف التدريب ومشاكل وقت الاستجابة للشبكة وما إلى ذلك.
يمكن أن يشير التكرار في مقاييس التحقّق والاختبار (عند استخدام تقسيم عشوائي لمجموعة التدريب ومجموعة التحقّق ومجموعة الاختبار) إلى أخطاء في التنفيذ، مثل:
- تداخل بيانات الاختبار مع بيانات التدريب
- عدم ترتيب بيانات التدريب بشكل صحيح
يمكن أن يؤدي التقييم على فترات منتظمة إلى تسهيل رصد هذه المشاكل.
يمكن أن تحدث دفعات جزئية عندما لا تكون مجموعات التقييم قابلة للقسمة على حجم الدفعة. تأكَّد من أنّ الأمثلة المضافة لها وزن صحيح (كما هو الحال في المتوسط المرجّح على الأمثلة التي تحسب متوسط الخسارة على مستوى المجموعة) لمنع تحيّز دالة الخسارة بسببها. في كثير من الأحيان، يمكنك منح هذه الأمثلة المحشوّة وزنًا يساوي صفرًا.
احفظ معلومات كافية لكل تقييم لإجراء التحليل بلا إنترنت. من الأفضل حفظ التوقّعات على مجموعة من الأمثلة الفردية لأنّها قد تكون مفيدة جدًا في تصحيح الأخطاء. يؤدي إنشاء عناصر مثل SavedModels إلى تبسيط عملية فحص النماذج المخصّصة بعد انتهاء مهام التقييم.
اختيار عيّنة للتقييم الدوري
قد لا يتم تشغيل مهمة التقييم الدوري بسرعة كافية لاحتساب المقاييس على مجموعة التقييم الكاملة بلا إنترنت في فترة زمنية معقولة. وغالبًا ما تتطلّب هذه المشكلة أخذ عيّنات من البيانات لإجراء تقييم دوري. عند إنشاء مجموعة بيانات مستندة إلى عيّنات، يجب مراعاة المشاكل المتعلقة بحجم العيّنة والمخاوف الخاصة في مجموعات البيانات غير المتوازنة.
حجم العينة
تأكَّد من أنّ الأداء المحسوب على مجموعة البيانات التي تم أخذ عيّنات منها والمستخدَمة في المهمة الدورية يتطابق مع الأداء على مجموعة التقييم الكاملة بلا إنترنت، أي تأكَّد من عدم وجود انحراف بين مجموعة البيانات التي تم أخذ عيّنات منها ومجموعة البيانات الكاملة.
يجب أن تكون مجموعة البيانات التي تستخدمها للتقييم الدوري مستوفية الشرطَين التاليَين:
- صغير بما يكفي لإنشاء توقّعات النموذج بسهولة على مستوى الموقع بأكمله
- أن يكون كبيرًا بما يكفي لتنفيذ الإجراءَين التاليَين:
- قياس التحسينات التي تم إدخالها على النموذج بدقة، أي يجب ألا تتأثر القياسات بالتشويش الناتج عن التصنيفات.
- استيعاب عمليات تقييم متعددة من هذا النوع على مستوى التجارب بالتسلسل، مع الاستمرار في تقديم تقديرات دقيقة أي أن تكون كبيرة بما يكفي لتجنُّب "الملاءمة" التكيّفية لمجموعة التحقّق بمرور الوقت بطريقة لا يمكن تعميمها على مجموعة اختبار محجوزة. ومع ذلك، نادرًا ما يكون هذا الاعتبار مصدر قلق عملي.
مجموعات البيانات غير المتوازنة
بالنسبة إلى مجموعات البيانات غير المتوازنة، يكون الأداء على الفئات النادرة الأقلية غالبًا غير دقيق. بالنسبة إلى مجموعات البيانات التي تتضمّن عددًا قليلاً فقط من الأمثلة الخاصة بالأقليات، سجِّل عدد الأمثلة التي تم توقّعها بشكل صحيح للحصول على المزيد من الإحصاءات حول تحسينات الدقة. على سبيل المثال، قد يبدو تحسُّن الدقة بنسبة %0.05 أمرًا مثيرًا، ولكن هل كان التحسُّن ناتجًا عن مثال واحد إضافي صحيح؟
حفظ نقاط التفتيش واختيار أفضل نقطة تفتيش بأثر رجعي
الملخّص: إجراء تدريب لعدد ثابت من الخطوات واختيار أفضل نقطة حفظ بشكل استرجاعي من عملية التدريب
تتيح معظم أُطر التعلّم العميق حفظ نقاط التحقّق. أي أنّه يتم حفظ الحالة الحالية للنموذج بشكل دوري على القرص. تتيح عملية حفظ نقاط التفتيش إمكانية استئناف مهمة التدريب في حال حدوث انقطاعات في مثيل الحوسبة. في كثير من الأحيان، لا تكون أفضل نقطة حفظ هي نقطة الحفظ الأخيرة، خاصةً عندما لا يستمر أداء مجموعة التحقّق في التحسّن بمرور الوقت، بل يتقلب حول قيمة معيّنة.
اضبط مسار العرض لتتبُّع أفضل N نقاط تحقّق تم رصدها حتى الآن أثناء التدريب. في نهاية التدريب، يعني اختيار النموذج ببساطة اختيار أفضل نقطة حفظ. نسمّي هذا الأسلوب اختيار نقطة التحقّق المثالية بأثر رجعي. لا يكون من الضروري عادةً إتاحة إيقاف التجربة قبل اكتمالها، لأنّك تحدّد ميزانية تجريبية مسبقًا وتحتفظ بأفضل N نقاط تحقّق تم رصدها حتى الآن.
إعداد تتبُّع التجارب
الملخّص: عند تتبُّع تجارب مختلفة، يجب تتبُّع عدد من العناصر الأساسية، مثل أفضل أداء لنقطة تحقّق في الدراسة ووصف موجز للدراسة.
ننصحك بتتبُّع نتائج التجربة في جدول بيانات. تحتوي جداول البيانات غالبًا على الأعمدة التالية:
- اسم الدراسة
- رابط يؤدي إلى المكان الذي يتم فيه تخزين إعدادات الدراسة
- ملاحظات أو وصف موجز للدراسة
- عدد التجارب التي تم إجراؤها
- الأداء على مجموعة التحقّق من أفضل نقطة حفظ في الدراسة
- أوامر إعادة الإنتاج المحدّدة أو ملاحظات حول التغييرات التي لم يتم إرسالها والتي كانت ضرورية لبدء التدريب
ابحث عن نظام تتبُّع مناسب يسجّل المعلومات المذكورة أعلاه على الأقل. التجارب التي لا يتم تتبُّعها هي كأنّها غير موجودة.
تفاصيل تنفيذ التسوية الدفعية
ملخّص: في الوقت الحالي، يمكنك غالبًا استبدال التسوية الدفعية بـ LayerNorm، ولكن في الحالات التي لا يمكنك فيها إجراء هذا الاستبدال، هناك تفاصيل معقّدة عند تغيير حجم الدفعة أو عدد المضيفين.
تعمل تسوية الدفعات على تسوية عمليات التنشيط باستخدام المتوسط والتباين في الدفعة الحالية. ومع ذلك، في إعداد الأجهزة المتعددة، تختلف هذه الإحصاءات على كل جهاز ما لم تتم مزامنتها بشكل صريح. تشير التقارير القصصية (معظمها على ImageNet) إلى أنّ احتساب هذه الإحصاءات العادية باستخدام 64 مثالاً فقط يحقّق نتائج أفضل في الواقع. (يمكنك الاطّلاع على وصف Ghost Batch Normalization في Train longer, generalize better: closing the generalization gap in large batch training of neural networks). إنّ فصل إجمالي حجم الدفعة وعدد الأمثلة المستخدَمة لحساب إحصاءات التسوية الدفعية مفيد بشكل خاص عند مقارنة أحجام الدفعات.
لا تتعامل عمليات تنفيذ Ghost batch normalization دائمًا بشكل صحيح مع الحالة التي يكون فيها حجم الدفعة لكل جهاز أكبر من حجم الدفعة الافتراضي. في هذه الحالة، عليك أخذ عيّنات فرعية من المجموعة على كل جهاز للحصول على العدد المناسب من أمثلة إحصاءات التوحيد على مستوى المجموعة.
إنّ المتوسطات المتحركة الأسية (EMA) المستخدَمة في تسوية الدُفعات في وضع الاختبار هي مجرد تركيبة خطية من إحصاءات التدريب. لذلك، ما عليك سوى مزامنة هذه القيم قبل حفظها في نقاط التحقّق. ومع ذلك، لا تتم مزامنة بعض عمليات التنفيذ الشائعة لتسوية الدفعات، ويتم حفظ متوسط EMA من الجهاز الأول فقط.
اعتبارات بشأن عمليات متعددة المضيفات
ملخّص: عند تسجيل البيانات وتقييمها وإنشاء أرقام عشوائية وتحديد نقاط التوقف وتقسيم البيانات، يمكن أن يؤدي التدريب على عدة مضيفين إلى حدوث أخطاء بسهولة.
اتّبِع الخطوات التالية لعمليات نقل البيانات المتعددة المضيفين:
- تأكَّد من أنّ خط الأنابيب يسجّل البيانات ويحفظ نقاط التوقف على مضيف واحد فقط.
- يجب مزامنة إحصاءات تسوية الدفعات على جميع المضيفين قبل التقييم أو إنشاء نقاط التحقّق.
- قسِّم ملفات البيانات على مستوى المضيفين لأنّ ذلك يحسّن الأداء عادةً.
مهم: تأكَّد من توفّر قيم أولية لمولّد الأرقام العشوائية نفسها على جميع المضيفين (لتهيئة النموذج)، وقيم أولية مختلفة على جميع المضيفين (لخلط البيانات/المعالجة المسبقة). لذلك، احرص على وضع علامة مناسبة عليها.