الدليل الفني

تراكم التدرج

يتيح لك تراكم التدرج محاكاة حجم دفعة كبيرة على ذاكرة وحدة معالجة الرسومات المحدودة عن طريق جمع التدرجات على عدة دفعات صغيرة قبل تحديث الأوزان.

استمع إلى هذا الدليلرواه الذكاء الاصطناعي · ~2 min

في هذه الصفحةقراءة لمدة دقيقتين
  1. نظرة عامة
  2. الغوص العميق
  3. التنفيذ في العالم الحقيقي
  4. مستقبل تراكم التدرج
  5. وضعها موضع التنفيذ
  6. استمر في الاستكشاف
  7. الأسئلة المتداولة

نظرة عامة

It is the standard workaround for training big models when memory is the bottleneck.

الغوص العميق

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

التنفيذ في العالم الحقيقي

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

تدريب نماذج الرؤية أو التجزئة عالية الدقة حيث تناسب حتى دفعة مكونة من قطعتين، ولكن الوصفة تحتاج إلى مجموعة فعالة مكونة من 32 قطعة.

يكشف Hugging Face Trainer وPyTorch Lightning عن إعداد gradient_accumulation_steps المستخدم بشكل روتيني في إعدادات VRAM المحدودة.

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

مستقبل تراكم التدرج

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

وضعها موضع التنفيذ

لماذا يهم

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

احترس من

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

الخطوات التالية

  1. تحديد الكمون والجودة وأهداف التكلفة قبل التنفيذ.
  2. المعيار في ظل ظروف التحميل والبيانات الواقعية.
  3. مراقبة الأدوات للأخطاء والانجراف وتأثير المستخدم.
  4. قم بإعداد مسارات التراجع والاستجابة للحوادث قبل القياس.

استمر في الاستكشاف

رسالة إخبارية مجانية

احصل على الإحاطة اليومية لمنظمة العفو الدولية

ثلاث قصص تم التحقق منها بواسطة الذكاء الاصطناعي كل صباح من أيام الأسبوع، مكتوبة باللغة الإنجليزية البسيطة. مجاني للأبد، بدون إعلانات.

بريد إلكتروني واحد كل يوم من أيام الأسبوع. إلغاء الاشتراك بنقرة واحدة. نحن لا نبيع أو نشارك عنوانك أبدًا.

اختبر نفسك

Take the Gradient Accumulation quiz

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

ابدأ الاختبار

دعم تعليم الذكاء الاصطناعي المجاني. AI Understanding هي منظمة 501(c)(3) غير ربحية - لا إعلانات ولا نظام حظر الاشتراك غير المدفوع على الإطلاق. قم بالتبرع

الأسئلة المتداولة

What is Gradient Accumulation?

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

ما الذي يتيح لك تراكم التدرج فعله في المقام الأول؟

من خلال جمع التدرجات على عدة دفعات صغيرة قبل التحديث، يمكنك محاكاة دفعة كبيرة دون الاحتفاظ بها كلها في الذاكرة مرة واحدة.

With an accumulation factor N, when should optimizer.step() and zero_grad() occur?

Accumulate gradients across N micro-batches, call optimizer.step() once for the effective batch, then clear gradients before the next window; begin training with cleared buffers.

ما هي طبقة التطبيع التي تقترن بشكل أكثر نظافة مع تراكم التدرج؟

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

Why may four micro-batches with BatchNorm behave differently from one physical batch of the same total size?

Batch-dependent forward computations break exact equivalence.

استمر في التعلم

أدلة ذات صلة

تم اختيار المزيد من الأدلة لهذا الموضوع

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