تسريع تدريب المحولات باستخدام محرك المحولات من NVIDIA، والنوى المدمجة، وBF16، وFP8، وقياس أداء وحدة معالجة الرسومات
NVIDIA
يستكشف هذا البرنامج التعليمي كيف يعمل محرك المحولات من NVIDIA على تسريع أعباء عمل المحولات من خلال الجمع بين نوى وحدة معالجة الرسومات المدمجة، وحسابات BF16، وتنفيذ FP8 المراعي للعتاد. ويغطي التثبيت، واكتشاف وحدة معالجة الرسومات، وجولة في الوحدة، وتكوين وصفة FP8، وتدريب النموذج، وقياس الأداء، والتوليد التلقائي الانحداري.
يبدأ الدرس التعليمي بتثبيت محرك Transformer من NVIDIA وتهيئة بيئة PyTorch. ويقوم باكتشاف بنية وحدة معالجة الرسوميات لتحديد ما إذا كانت نوى TE وأنوية FP8 مدعومة، مع وجود بديل يعتمد على PyTorch النقي للأجهزة غير المدعومة. ويتم فحص المكونات الأساسية المندمجة مثل te.Linear وte.LayerNorm وte.LayerNormLinear وte.LayerNormMLP وte.TransformerLayer. ويتم إعداد وصفة FP8 بتأخير التوسيع مع تنسيقات هجينة E4M3/E5M2 وسجل لقيم amax القصوى. ويتم بناء نموذج لغوي سببي مدمج على غرار GPT باستخدام كتل te.TransformerLayer المندمجة، ويتم تنفيذ نموذج مكافئ يعتمد على PyTorch النقي للمقارنة. ويتم تدريب النموذج على تسلسلات حسابية نمطية اصطناعية حتمية، مع استخدام التحويل التلقائي الشرطي FP8 عند الدعم. وتقيس المقارنة متوسط زمن الاستجابة لكل خطوة وذروة استخدام ذاكرة وحدة معالجة الرسوميات لوضعي BF16 وFP8. ويتم فحص بيانات FP8 الوصفية، بما في ذلك عوامل التوسيع وسجل amax. وأخيرًا، يتحقق التوليد التتابعي الجشع من أن النموذج يتعلم نمط الزيادة الحسابية، وتُقترح توسعات مثل نماذج أكبر وتنسيقات FP8 بديلة.
المصدر: MarkTechPost —
الأصلي
