الدليل الفني

تراكم التدرج

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

قراءة لمدة دقيقتينآخر تحديث

نظرة عامة

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

الغوص العميق

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

البصيرة الفنية

نظرًا لأن تدرجات الخسارة المجمعة تكون إضافية، فإن تراكم التدرجات على عدد N من الدُفعات الصغيرة يعادل رياضيًا دفعة واحدة كبيرة، بشرط أن تقوم بالمتوسط ​​بشكل صحيح. عادةً ما تقوم عمليات التنفيذ بتقسيم كل خسارة دفعة صغيرة على N قبل التراجع، وبالتالي فإن التدرج المتراكم يساوي المتوسط ​​على الدفعة الفعالة الكاملة. يمكنك تخطي Optir.step() وzero_grad() حتى الدفعة الصغيرة Nth، مما يؤدي إلى استبدال وقت الحوسبة الإضافي بذاكرة ذروة مخفضة.

التأثير الاستراتيجي

التكلفة والميزانية

تؤدي قرارات الهندسة المعمارية إلى زيادة الأداء وتكلفة التشغيل لسنوات.

قرارات أوضح

يساعد التعليم الفني الفرق على اختيار المجموعة المناسبة، وليس فقط المجموعة الأحدث.

مراقبة الجودة

تعمل الخيارات الهندسية الأفضل على تقليل حوادث الموثوقية في الإنتاج.

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

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

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

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

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

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

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

المخاطر والدرابزين

يمكن أن يؤدي تحسين معيار واحد إلى إخفاء نقاط ضعف النظام الأوسع.

غالبًا ما يتم التقليل من تكاليف البنية التحتية والصيانة.

يمكن أن تنمو الفجوات الأمنية وقابلية المراقبة عندما تصبح الأنظمة أكثر تعقيدًا.

خارطة طريق التنفيذ

1

تحديد الكمون والجودة وأهداف التكلفة قبل التنفيذ.

2

المعيار في ظل ظروف التحميل والبيانات الواقعية.

3

مراقبة الأدوات للأخطاء والانجراف وتأثير المستخدم.

4

قم بإعداد مسارات التراجع والاستجابة للحوادث قبل القياس.

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

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Gradient Accumulation quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

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

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

الدليل التالي

التلاشي وانفجار التدرجات

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

What is Gradient Accumulation?

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

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

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

أثناء التراكم، متى يتم استدعاء خطوة المُحسِّن وإلغاء التدرجات؟

يمكنك تجميع التدرجات عبر عدد N من الدُفعات الصغيرة والتحديث مرة واحدة فقط في نهاية الدورة.

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

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