حاسبة ذاكرة VRAM لتدريب النماذج اللغوية الكبيرة
المدخلات
| المعاملات | 7 |
|---|---|
| الذاكرة لكل معامل | Adam بالدقة المختلطة (16 بايت/معامل) |
| ذاكرة التنشيطات | 0 |
حاسبة ذاكرة VRAM لتدريب النماذج اللغوية الكبيرة
قدّر ذاكرة VRAM اللازمة في وحدة معالجة الرسوميات لإجراء صقل كامل لنموذج لغوي كبير، انطلاقًا من عدد معاملاته واختيار المُحسِّن وذاكرة التنشيطات، باستخدام قاعدة Adam بالدقة المختلطة البالغة 16 بايت لكل معامل.
المدخلات
النموذج
التنشيطات
النتائج
أدخل قيمة لعرض النتائج.
تفاصيل
ذاكرة VRAM لتدريب النماذج اللغوية الكبيرة
يحتاج الصقل الكامل لنموذج لغوي كبير إلى ذاكرة وحدة معالجة رسوميات أكبر بكثير مما يحتاجه تشغيله، والسبب هو المُحسِّن. فالاستدلال يحتفظ بالأوزان فقط، أما التدريب فيجب أن يحتفظ أيضًا بتدرّج لكل معامل وبالحالة الجارية للمُحسِّن، ثم يضيف التنشيطات المخزَّنة أثناء المرور الأمامي. تقدّر هذه الحاسبة إجمالي ذاكرة VRAM للصقل الكامل من عدد المعاملات وكلفة المُحسِّن في الذاكرة لكل معامل ورقمِ تنشيطات يُدخَل على حدة.
حالات النموذج تهيمن
أكبر تكلفة ثابتة في التدريب هي حالات النموذج — الأوزان وتدرجاتها وحالة المُحسِّن. بعدد معاملات بالمليارات و بايت لكل معامل، تشغل حالات النموذج:
M=N⋅B GBالرقم المعياري للتدريب بالدقة المختلطة مع Adam هو 16 بايت لكل معامل، ويتفصّل كالآتي: بايتان للوزن ذي الستة عشر بتًا المستخدم في المرور الأمامي، وبايتان لتدرّجه ذي الستة عشر بتًا، وأربعة بايتات لنسخة رئيسية ذات اثنين وثلاثين بتًا من الوزن تُحفَظ للاستقرار العددي، وأربعة لكلٍّ من تقديرَي عزم Adam — الزخم والتباين. أي لكل معامل. وتقلّص المُحسِّنات الأرخص حدودَ حالة المُحسِّن: فـ Adam بثمانية بتات يخزّن عزومه بدقة أقل بنحو 12 بايت لكل معامل، ويحتاج SGD البسيط مع الزخم نحو 8.
التنشيطات تُدخَل على حدة
حالات النموذج ثابتة بمجرد اختيار النموذج والمُحسِّن، أما التنشيطات فليست كذلك. وهي القيم الوسيطة المخزَّنة مؤقتًا أثناء المرور الأمامي كي يتمكّن المرور الخلفي من حساب التدرجات، ويتناسب حجمها مع حجم الدفعة وطول التسلسل لا مع عدد المعاملات. ولهذا الاستقلال، تأخذ هذه الحاسبة ذاكرة التنشيطات كمدخل خاص بها وتكتفي بإضافته:
V=M+Aحيث هي ذاكرة التنشيطات بالـ GB. يمكن قياس ذاكرة التنشيطات بتشغيل خطوة تدريب واحدة وقراءة الاستخدام الأقصى، أو خفضها بحدة بنقاط تفتيش التنشيطات، التي تعيد حساب التنشيطات في المرور الخلفي بدلًا من الاحتفاظ بها.
مثال محلول
لنأخذ نموذجًا بسبعة مليارات معامل مصقولًا بـ Adam بالدقة المختلطة، وبلا تقدير للتنشيطات في البداية:
MV=7×16=112 GB=112+0=112 GBحالات النموذج وحدها 112 GB — وهو ما يتجاوز أصلًا مُسرِّعًا واحدًا سعة 80 GB. وإضافة 20 GB واقعية من التنشيطات تُبلِغ الإجمالي 132 GB، وهو ما يوضّح الأمر جليًا: حتى نموذج بحجم 7B، يُخدَم بسهولة في استدلال الستة عشر بتًا، لا يمكن صقله صقلًا كاملًا على وحدة معالجة رسوميات واحدة سائدة. وتُتناول الذاكرة الأصغر بكثير اللازمة لمجرد تشغيل النموذج في حاسبة ذاكرة VRAM لاستدلال النماذج اللغوية الكبيرة.
لماذا يغيّر LoRA الصورة
معظم الستة عشر بايتًا لكل معامل هو التدرّج وحالة المُحسِّن، وهما لا يوجدان إلا للمعاملات الجاري تدريبها. يُجمِّد LoRA أوزان الأساس ويدرّب مُحوِّلات صغيرة منخفضة الرتبة، فتغطي التدرجات وحالة المُحسِّن أقل من واحد بالمئة من المعاملات بكثير. وتظل الأوزان المجمَّدة تشغل ذاكرة، لكن إزالة الحدّ الأكبر هي ما يتيح لنموذج يحتاج 132 GB للصقل الكامل أن يتّسع بدلًا من ذلك لبطاقة واحدة سعة 24 GB. ويُتناول حجم تلك المُحوِّلات، وكيف تتحكم الرتبة فيها، في حاسبة معاملات LoRA. عُدّ الرقم هنا تقديرًا تخطيطيًا وتحقّق منه إزاء خطوة تدريب حقيقية، إذ تحرّك المخازن المؤقتة وتخصيصات الإطار الرقمَ الحقيقي.
الأسئلة الشائعة (FAQ)
من أين تأتي قاعدة 16 بايت لكل معامل؟
يحتفظ التدريب بالدقة المختلطة مع مُحسِّن Adam بعدة نسخ من كل معامل. يحمل بايتان الوزنَ ذا الستة عشر بتًا المستخدم في المرور الأمامي، ويحمل بايتان آخران تدرّجه ذا الستة عشر بتًا. ثم يحتفظ مُحسِّن Adam بنسخة رئيسية ذات اثنين وثلاثين بتًا من الوزن (أربعة بايتات) إضافةً إلى تقديرَي عزم ذوَي اثنين وثلاثين بتًا — الزخم والتباين — بأربعة بايتات لكل منهما.
وبجمع ذلك نحصل على 2 + 2 + 4 + 4 + 4 = 16 بايت لكل معامل، وهو التقدير المعياري لحالات النموذج في الصقل الكامل.
لماذا يحتاج LoRA إلى ذاكرة أقل بكثير؟
يحمل الصقل الكامل تدرجات وحالة مُحسِّن لكل معامل، وهي معظم الستة عشر بايتًا لكل معامل. أما LoRA فيُجمِّد الأوزان الأصلية ويدرّب مصفوفات مُحوِّلة صغيرة منخفضة الرتبة فقط، فلا توجد تدرجات ولا حالة مُحسِّن إلا لجزء ضئيل من المعاملات — غالبًا أقل من واحد بالمئة بكثير.
وتظل أوزان الأساس المجمَّدة تشغل ذاكرة، لكنها لا تحتاج تدرجًا ولا حالة مُحسِّن، وهو ما يزيل الحدّ الأكبر ويتيح صقل النماذج الكبيرة على وحدة معالجة رسوميات واحدة. ويُتناول حجم تلك المُحوِّلات في حاسبة معاملات LoRA.
كيف أقدّر ذاكرة التنشيطات؟
ذاكرة التنشيطات هي تخزين القيم الوسيطة المحفوظة أثناء المرور الأمامي كي يتسنّى حساب التدرجات في المرور الخلفي. وعلى خلاف حالات النموذج، تتناسب مع حجم الدفعة وطول التسلسل لا مع عدد المعاملات، لذا تُدخَل على حدة هنا.
يمكن قياسها مباشرةً بتشغيل خطوة تدريب واحدة وقراءة الذاكرة القصوى، أو خفضها بحدة بنقاط تفتيش التنشيطات، التي تعيد حساب التنشيطات في المرور الخلفي بدلًا من تخزينها. ولتخطيط تقريبي، ابدأ بصفر لمعاينة حد حالات النموذج، ثم أضف رقمًا مقيسًا.
إخلاء المسؤولية
هذا تقدير من الدرجة الأولى لذاكرة الصقل الكامل. يُغفِل المخازن المؤقتة وأعباء الاتصال والتخصيصات الخاصة بالإطار، ويعامل التنشيطات كرقم واحد مُدخَل. تحقّق منه إزاء خطوة تدريب حقيقية قبل اختيار العتاد.