مقايضات إعادة حساب التنشيط
تعمل إعادة حساب التنشيط (التدرج أو فحص التنشيط) على حفظ ذاكرة وحدة معالجة الرسومات أثناء التدريب عن طريق التخلص من عمليات التنشيط المتوسطة في التمريرة الأمامية وإعادة حسابها أثناء التمريرة الخلفية.
نظرة عامة
It trades extra compute for the ability to train larger models or longer sequences on the same hardware.
الغوص العميق
يحتاج الانتشار العكسي إلى عمليات تنشيط التمرير الأمامي لحساب التدرجات، لذلك يتم تخزين مخرجات كل طبقة بشكل افتراضي - وهي تكلفة ذاكرة ضخمة تنمو مع حجم النموذج وحجم الدفعة وطول التسلسل. تحافظ عملية إعادة حساب التنشيط على عدد قليل فقط من موترات "نقاط التفتيش" (غالبًا ما تكون حدود الطبقات فقط) وتتخلص من الباقي. أثناء التمرير الخلفي، يقوم بإعادة تشغيل الحساب الأمامي بين نقاط التفتيش لإعادة إنشاء التنشيطات المهملة عند الطلب. والنتيجة الكلاسيكية هي أنه مع وضع نقاط التفتيش في كل طبقات sqrt(N)، تنخفض الذاكرة إلى O(sqrt(N)) تقريبًا مع إضافة تمرير أمامي إضافي واحد (حوالي 33% حساب أكثر). تقوم المتغيرات الانتقائية بإعادة حساب العمليات الرخيصة ولكن ذات الذاكرة الكبيرة فقط (مثل الانتباه أو التسرب) أثناء تخزين العمليات الباهظة الثمن مؤقتًا، مما يؤدي إلى توفير معظم الذاكرة مقابل تكلفة أقل بكثير لإعادة الحساب.
البصيرة الفنية
المقايضة الأساسية هي الذاكرة مقابل FLOPs. تضيف عملية إعادة الحساب الكاملة تقريبًا تمريرة أمامية إضافية واحدة لكل خطوة (أبطأ بنسبة 30-40٪ تقريبًا) ولكنها يمكن أن تقلل من ذاكرة التنشيط بمقدار كبير. الخطوة الذكية هي إجراء فحص انتقائي: تحديد العمليات ذات الذاكرة الكبيرة ولكن الحوسبة الرخيصة (softmax، وlayernorm، وGELU، ونقاط الاهتمام) وإعادة حسابها فقط، مع الاحتفاظ بنتائج GEMMs باهظة الثمن مخزنة مؤقتًا - مما يقلل من الحوسبة المهدرة.
التأثير الاستراتيجي
التكلفة والميزانية
تؤدي قرارات الهندسة المعمارية إلى زيادة الأداء وتكلفة التشغيل لسنوات.
قرارات أوضح
يساعد التعليم الفني الفرق على اختيار المجموعة المناسبة، وليس فقط المجموعة الأحدث.
مراقبة الجودة
تعمل الخيارات الهندسية الأفضل على تقليل حوادث الموثوقية في الإنتاج.
مستقبل مقايضات إعادة حساب التنشيط
أصبحت إعادة الحساب آلية وانتقائية بشكل متزايد. تقوم الأطر الآن بتعريف ذاكرة كل عملية وتكلفة FLOP لاختيار نقاط التفتيش المثالية، والجمع بين إعادة الحساب وتفريغ التنشيط إلى وحدة المعالجة المركزية/NVMe ومع استراتيجيات التوازي. مع استمرار نمو أطوال السياق وأحجام النماذج، توقع سياسات تعتمد على برنامج التحويل البرمجي (في PyTorch، JAX/XLA) والتي تختار قرارات إعادة الحساب لكل عملية تلقائيًا، بالإضافة إلى تداخل أكثر إحكامًا لإعادة الحساب مع الاتصال بحيث تكون عمليات FLOP الإضافية مخفية جزئيًا.
التنفيذ في العالم الحقيقي
تدريب محول كبير لا يمكن ملاءمته عن طريق فحص كل كتلة طبقة
استخدام torch.utils.checkpoint الخاص بـ PyTorch لتغليف كتل المحولات وقطع ذاكرة التنشيط
إعادة حساب انتقائية للانتباه/softmax في Megatron-LM لحفظ الذاكرة بأقل قدر من التباطؤ
تمكين أطوال تسلسلية أطول بميزانية GPU ثابتة عن طريق إعادة حساب عمليات التنشيط بدلاً من تخزينها
المخاطر والدرابزين
يمكن أن يؤدي تحسين معيار واحد إلى إخفاء نقاط ضعف النظام الأوسع.
غالبًا ما يتم التقليل من تكاليف البنية التحتية والصيانة.
يمكن أن تنمو الفجوات الأمنية وقابلية المراقبة عندما تصبح الأنظمة أكثر تعقيدًا.
خارطة طريق التنفيذ
تحديد الكمون والجودة وأهداف التكلفة قبل التنفيذ.
المعيار في ظل ظروف التحميل والبيانات الواقعية.
مراقبة الأدوات للأخطاء والانجراف وتأثير المستخدم.
قم بإعداد مسارات التراجع والاستجابة للحوادث قبل القياس.
استمر في الاستكشاف
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 Activation Recomputation Tradeoffs 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
الدليل التالي
SmoothQuant وتنشيط الكمي
الأسئلة المتداولة
What is Activation Recomputation Tradeoffs?
تعمل إعادة حساب التنشيط (التدرج أو فحص التنشيط) على حفظ ذاكرة وحدة معالجة الرسومات أثناء التدريب عن طريق التخلص من عمليات التنشيط المتوسطة في التمريرة الأمامية وإعادة حسابها أثناء التمريرة الخلفية. إنه يستبدل الحوسبة الإضافية بالقدرة على تدريب نماذج أكبر أو تسلسلات أطول على نفس الجهاز.
ما الذي يتم استبداله بإعادة حساب التنشيط لتوفير الذاكرة؟
تتجاهل عملية إعادة الحساب عمليات التنشيط المخزنة وتعيد إنشائها في التمرير الخلفي، مما يؤدي إلى إنفاق عمليات حسابية إضافية لتقليل استخدام الذاكرة.
لماذا يتم عادةً تخزين عمليات تنشيط التمرير الأمامي على الإطلاق؟
يستخدم التمرير الخلفي عمليات التنشيط الأمامية لحساب التدرجات، لذلك يتم الاحتفاظ بها افتراضيًا في الذاكرة حتى يتم تشغيل التمرير الخلفي.
ما مقدار الحوسبة الإضافية التي تضيفها عادة إعادة حساب التنشيط الكامل؟
تؤدي عملية إعادة الحساب الكاملة إلى إعادة تشغيل الحساب الأمامي أثناء التمريرة الخلفية، مما يضيف تمريرة أمامية إضافية واحدة تقريبًا - في حدود 30-40% من الحساب الإضافي.
ما هي الفكرة وراء إعادة الحساب الانتقائي (غير الكامل)؟
تستهدف إعادة الحساب الانتقائية العمليات التي تستخدم قدرًا كبيرًا من الذاكرة ولكن القليل من الحساب (مثل softmax أو Layernorm)، بينما يتم تخزين نتائج GEMM الباهظة الثمن مؤقتًا لتقليل عمليات FLOP المهدرة.
ما هي التقنية التكميلية التي يتم دمجها غالبًا مع إعادة الحساب لتوفير المزيد من الذاكرة؟
يؤدي تفريغ التنشيط إلى نقل بعض عمليات التنشيط إلى وحدة تخزين وحدة المعالجة المركزية/NVMe، وغالبًا ما يتم دمجها مع إعادة الحساب والتوازي لتوفير المزيد من الذاكرة.