شعار زيفيرنت

تسريع PyTorch باستخدام DeepSpeed ​​لتدريب نماذج اللغات الكبيرة باستخدام مثيلات DL1 EC2 المستندة إلى Intel Habana Gaudi | خدمات أمازون ويب

التاريخ:

قد يكون تدريب نماذج اللغة الكبيرة (LLMs) مع مليارات المعلمات أمرًا صعبًا. بالإضافة إلى تصميم بنية النموذج ، يحتاج الباحثون إلى إعداد تقنيات تدريب متطورة للتدريب الموزع مثل دعم الدقة المختلط ، وتراكم التدرج ، ونقاط التفتيش. مع النماذج الكبيرة ، يعد إعداد التدريب أكثر صعوبة لأن الذاكرة المتاحة في جهاز تسريع واحد تقيد حجم النماذج المدربة باستخدام توازي البيانات فقط ، ويتطلب استخدام التدريب المتوازي النموذجي مستوى إضافيًا من التعديلات على رمز التدريب. مكتبات مثل السرعة العميقة (مكتبة تحسين التعلم العميق مفتوحة المصدر لـ PyTorch) تواجه بعض هذه التحديات ، ويمكن أن تساعد في تسريع تطوير النموذج والتدريب.

في هذا المنشور ، قمنا بإعداد تدريب على أساس Intel Habana Gaudi الأمازون الحوسبة المرنة السحابية (أمازون EC2) DL1 أمثلة وتحديد فوائد استخدام إطار عمل تحجيم مثل DeepSpeed. نقدم نتائج القياس لنموذج محول من نوع المشفر (BERT مع 340 مليون إلى 1.5 مليار معلمة). بالنسبة لنموذج 1.5 مليار معلمة ، حققنا كفاءة تحجيم بنسبة 82.7٪ عبر 128 مسرّعًا (16 مثيلاً dl1.24xlarge) باستخدام DeepSpeed ​​ZeRO تحسينات المرحلة 1. تم تقسيم حالات المحسن بواسطة DeepSpeed ​​لتدريب النماذج الكبيرة باستخدام نموذج البيانات المتوازي. تم توسيع هذا النهج لتدريب نموذج مكون من 5 مليارات معلمة باستخدام توازي البيانات. استخدمنا أيضًا دعم Gaudi الأصلي لنوع بيانات BF16 لتقليل حجم الذاكرة وزيادة أداء التدريب مقارنة باستخدام نوع بيانات FP32. نتيجة لذلك ، حققنا تقارب نموذج ما قبل التدريب (المرحلة 1) في غضون 16 ساعة (كان هدفنا تدريب نموذج كبير في غضون يوم واحد) لنموذج BERT الذي يبلغ 1.5 مليار معلمة باستخدام مجموعة بيانات wikicorpus-en.

إعداد التدريب

قمنا بتوفير مجموعة حوسبة مُدارة تتألف من 16 مثيلاً dl1.24xlarge باستخدام دفعة AWS. قمنا بتطوير ملف ورشة عمل AWS Batch يوضح خطوات إعداد مجموعة التدريب الموزعة باستخدام AWS Batch. يحتوي كل مثيل dl1.24xlarge على ثمانية مسرعات Habana Gaudi ، كل منها به ذاكرة تبلغ 32 جيجابايت وشبكة RoCE شبكية كاملة بين البطاقات بإجمالي عرض نطاق ثنائي الاتجاه للربط البيني يبلغ 700 جيجابت في الثانية لكل منهما (انظر الغوص العميق لمثيلات Amazon EC2 DL1 للمزيد من المعلومات). تستخدم الكتلة dl1.24xlarge أيضًا أربعة محولات النسيج المرن من AWS (EFA) ، بإجمالي 400 جيجابت في الثانية تربط بين العقد.

توضح ورشة العمل التدريبية الموزعة خطوات إنشاء كتلة التدريب الموزعة. تُظهر ورشة العمل إعداد التدريب الموزع باستخدام AWS Batch ، وعلى وجه الخصوص ، ميزة الوظائف المتوازية متعددة العقد لإطلاق وظائف تدريبية على حاويات واسعة النطاق على مجموعات مُدارة بالكامل. وبشكل أكثر تحديدًا ، يتم إنشاء بيئة حوسبة AWS Batch مُدارة بالكامل باستخدام مثيلات DL1. يتم سحب الحاويات من سجل الأمازون المرنة للحاويات (Amazon ECR) وتم إطلاقه تلقائيًا في المثيلات الموجودة في المجموعة بناءً على تعريف الوظيفة المتوازية متعددة العقد. تختتم ورشة العمل من خلال تشغيل تدريب موازٍ للبيانات متعدد العقد ومتعدد HPU لنموذج BERT (340 مليون إلى 1.5 مليار معلمة) باستخدام PyTorch و DeepSpeed.

تدريب BERT 1.5B المسبق مع DeepSpeed

هافانا سينابس آي v1.5 و v1.6 دعم تحسينات DeepSpeed ​​ZeRO1. ال شوكة Habana من مستودع DeepSpeed ​​GitHub يتضمن التعديلات اللازمة لدعم مسرعات Gaudi. هناك دعم كامل للبيانات الموزعة المتوازية (متعددة البطاقات ، متعددة المثيلات) ، تحسينات ZeRO1 ، وأنواع البيانات BF16.

يتم تمكين كل هذه الميزات على مستودع مرجعي لنموذج BERT 1.5B، والذي يقدم نموذج تشفير مكون من 48 طبقة و 1600 مخفي و 25 رأسًا ثنائي الاتجاه ، مشتق من تطبيق BERT. يحتوي المستودع أيضًا على تنفيذ النموذج الكبير BERT الأساسي: بنية شبكة عصبية مكونة من 24 طبقة و 1024 مخفية و 16 رأسًا و 340 مليون معلمة. يتم اشتقاق نصوص نمذجة ما قبل التدريب من مستودع أمثلة NVIDIA Deep Learning لتنزيل بيانات wikicorpus_en ، ومعالجة البيانات الأولية مسبقًا وتحويلها إلى رموز مميزة ، وتقسيم البيانات إلى مجموعات بيانات h5 أصغر من أجل التدريب الموازي للبيانات الموزعة. يمكنك اعتماد هذا الأسلوب العام لتدريب بنيات نموذج PyTorch المخصصة باستخدام مجموعات البيانات الخاصة بك باستخدام مثيلات DL1.

نتائج القياس قبل التدريب (المرحلة 1)

بالنسبة لتدريب النماذج الكبيرة مسبقًا على نطاق واسع ، ركزنا بشكل أساسي على جانبين من الحل: أداء التدريب ، كما تم قياسه بوقت التدريب ، وفعالية التكلفة للوصول إلى حل متقارب بالكامل. بعد ذلك ، نتعمق في هذين المقياسين مع تدريب BERT 1.5B كمثال.

قياس الأداء ووقت التدريب

نبدأ بقياس أداء تنفيذ BERT Large كخط أساس لقابلية التوسع. يسرد الجدول التالي الإنتاجية المقاسة للتسلسلات في الثانية من مثيلات 1-8 dl1.24xlarge (مع ثمانية أجهزة تسريع لكل مثيل). باستخدام إنتاجية المثيل الفردي كخط أساس ، قمنا بقياس كفاءة القياس عبر مثيلات متعددة ، وهو عامل مهم لفهم مقياس التدريب على أداء السعر.

عدد المثيلات عدد المسرعات تسلسل في الثانية التسلسل في الثانية لكل مسرع كفاءة التحجيم
1 8 1,379.76 172.47 100.0%
2 16 2,705.57 169.10 98.04%
4 32 5,291.58 165.36 95.88%
8 64 9,977.54 155.90 90.39%

يوضح الشكل التالي كفاءة القياس.

بالنسبة إلى BERT 1.5B ، قمنا بتعديل المعلمات الفائقة للنموذج في المستودع المرجعي لضمان التقارب. تم ضبط حجم الدفعة الفعال لكل مسرع على 384 (للاستفادة القصوى من الذاكرة) ، مع دفعات صغيرة من 16 لكل خطوة و 24 خطوة لتراكم التدرج. تم استخدام معدلات التعلم 0.0015 و 0.003 لعقد 8 و 16 ، على التوالي. من خلال هذه التكوينات ، حققنا تقاربًا في المرحلة الأولى من التدريب المسبق لـ BERT 1B عبر 1.5 dl8xlarge مثيلات (1.24 مسرّعًا) في حوالي 64 ساعة ، و 25 ساعة عبر 15 dl16xlarge حالات (1.24 مسرّعًا). يوضح الشكل التالي متوسط ​​الخسارة كدالة لعدد فترات التدريب ، حيث نقوم بزيادة عدد المسرعات.

من خلال التكوين الموصوف سابقًا ، حصلنا على كفاءة تحجيم قوية بنسبة 85٪ مع 64 مسرّعًا و 83٪ مع 128 مسرّعًا ، من خط أساس مكون من 8 مسرعات في حالة واحدة. يلخص الجدول التالي المعلمات.

عدد المثيلات عدد المسرعات تسلسل في الثانية التسلسل في الثانية لكل مسرع كفاءة التحجيم
1 8 276.66 34.58 100.0%
8 64 1,883.63 29.43 85.1%
16 128 3,659.15 28.59 82.7%

يوضح الشكل التالي كفاءة القياس.

وفي الختام

في هذا المنشور ، قمنا بتقييم دعم DeepSpeed ​​بواسطة Habana SynapseAI v1.5 / v1.6 وكيف يساعد في توسيع نطاق تدريب LLM على مسرعات Habana Gaudi. استغرق التدريب المسبق لنموذج BERT المكون من 1.5 مليار متغير 16 ساعة ليتقارب مع مجموعة من 128 مسرّع Gaudi ، مع تحجيم قوي بنسبة 85٪. نحن نشجعك على إلقاء نظرة على الهندسة المعمارية الموضحة في ورشة عمل AWS والنظر في اعتماده لتدريب بنيات نموذج PyTorch المخصصة باستخدام مثيلات DL1.


عن المؤلفين

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

RJ مهندس في فريق Search M5 يقود الجهود المبذولة لبناء أنظمة تعلم عميق واسعة النطاق للتدريب والاستدلال. خارج العمل يستكشف مطابخ مختلفة من الطعام ويمارس رياضة المضرب.

سوندار رانجاناثان هو رئيس تطوير الأعمال ، ML Frameworks في فريق Amazon EC2. يركز على أعباء عمل ML على نطاق واسع عبر خدمات AWS مثل Amazon EKS و Amazon ECS و Elastic Fabric Adapter و AWS Batch و Amazon SageMaker. تشمل خبرته الأدوار القيادية في إدارة المنتجات وتطوير المنتجات في NetApp و Micron Technology و Qualcomm و Mentor Graphics.

أبهيناندان باتني هو مهندس برمجيات أول في Amazon Search. يركز على بناء الأنظمة والأدوات للتدريب على التعلم العميق الموزع القابل للتطوير والاستدلال في الوقت الفعلي.

بيير إيف أكويلانتي هو رئيس Frameworks ML Solutions في Amazon Web Services حيث يساعد في تطوير أفضل حلول ML Frameworks القائمة على السحابة في الصناعة. خلفيته في الحوسبة عالية الأداء وقبل انضمامه إلى AWS ، كان Pierre-Yves يعمل في صناعة النفط والغاز. بيير إيف من أصل فرنسي وحاصل على درجة الدكتوراه. في علوم الكمبيوتر من جامعة ليل.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة