كيف استخدم Latent Space مكتبة موازية نموذج Amazon SageMaker لدفع حدود المحولات واسعة النطاق

عقدة المصدر: 1204406

شارك في تأليف هذه المدونة Sarah Jane Hong CSO و Darryl Barnhart CTO و Ian Thompson الرئيس التنفيذي لشركة Latent Space و Prem Ranga من AWS.

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

هذا الدمج للطرائق في مساحة واحدة كامنة مشتركة يفتح جيلًا جديدًا من التطبيقات الإبداعية والتجارية ، من الألعاب إلى فهم المستندات. لكن فتح هذه التطبيقات الجديدة في نموذج واحد يفتح تحديات جديدة للتوسع ، كما هو موضح في "الدرس المر" لريتشارد ساتون ، والعمل المثير في السنوات القليلة الماضية حول قوانين التوسع. لجعل هذا ممكنًا ، تعمل Latent Space على أحدث الأبحاث لدمج هذه الطرائق في نموذج واحد ، ولكن أيضًا لتوسيع نطاقها والقيام بذلك بكفاءة. هذا هو المكان الذي يأتي فيه نموذج التوازي.

الأمازون SageMakerجعل نموذج التقسيم الآلي الفريد ونهج الأنابيب الفعال اعتمادنا لتوازي النموذج ممكنًا بجهد هندسي ضئيل ، وقمنا بتوسيع نطاق تدريبنا للنماذج بما يتجاوز مليار معلمة (نستخدم مثيلات p4d.24xlarge A100) ، وهو مطلب مهم بالنسبة لنا. علاوة على ذلك ، لاحظنا أنه عند التدريب باستخدام 16 عقدة ، وثمانية إعدادات للتدريب على وحدة معالجة الرسومات مع مكتبة التوازي لنموذج SageMaker ، سجلنا تحسنًا بنسبة 38 ٪ في الكفاءة مقارنةً بعمليات التدريب السابقة.

تحديات تدريب المحولات واسعة النطاق

في Latent Space ، نقوم بدمج اللغة والرؤية في نماذج المحولات بمليارات من المعلمات لدعم حالات الاستخدام "خارج التوزيع" من خيال المستخدم أو التي قد تحدث في العالم الحقيقي ولكن ليس في بيانات التدريب الخاصة بنا. نحن نتعامل مع التحديات الكامنة في التوسع إلى مليارات من المعلمات وما وراءها بطريقتين مختلفتين:

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

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

مكتبة التوازي النموذجية SageMaker

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

تقسيم النموذج الآلي

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

تقوم المكتبة بعد ذلك بعبور هذه الشجرة من الجذر وتقوم بتشغيل خوارزمية التقسيم التي توازن الحمل الحسابي واستخدام الذاكرة ، وتقليل الاتصال بين الحالات. إذا كانت عدة وحدات nn.Modules تشترك في نفس معلمة nn ، يتم وضع هذه الوحدات على نفس الجهاز لتجنب الاحتفاظ بإصدارات متعددة من نفس المعلمة. بعد اتخاذ قرار التقسيم ، يتم تحميل الوحدات والأوزان المخصصة على أجهزتهم.

جدولة تشغيل خط الأنابيب

الميزة الأساسية الأخرى للمكتبة المتوازية النموذجية الموزعة من SageMaker هي يدير الأنابيب، والتي تحدد الترتيب الذي يتم به إجراء الحسابات ومعالجة البيانات عبر الأجهزة أثناء تدريب النموذج. يعتمد خط الأنابيب على تقسيم الدُفعة الصغيرة إلى مجموعات صغيرة ، يتم إدخالها في خط أنابيب التدريب واحدًا تلو الآخر وتتبع جدول تشغيل محددًا بواسطة وقت تشغيل المكتبة.

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

بنية التدريب

يمثل الرسم البياني التالي كيفية إعداد بنية التدريب الخاصة بنا. كانت أهدافنا الأساسية هي تحسين سرعة التدريب وخفض التكاليف. محولات الصور واللغة التي نقوم بتدريبها معقدة للغاية ، مع وجود عدد كبير جدًا من الطبقات والأوزان بداخلها ، والتي تصل إلى مليارات من المعلمات ، وكلها تجعلها غير قادرة على احتواء ذاكرة عقدة واحدة. كل عقدة تحمل مجموعة فرعية من النموذج ، والتي من خلالها تتدفق البيانات والتحويلات يتم مشاركتها وتصنيفها. نقوم بإعداد 16 p4d.24xlarge مثيلات لكل منها ثمانية وحدات معالجة رسومات باستخدام التمثيل الهندسي التالي:

أثناء قيامنا بتوسيع نطاق نماذجنا ، هناك اتجاه شائع يتمثل في تخزين كل شيء في أوزان الشبكة. ومع ذلك ، لأغراض عملية ، نريد زيادة نماذجنا لتعلم كيفية البحث عن السياقات ذات الصلة للمساعدة في مهمة العرض. وهذا يمكننا من تقليل تكاليف الخدمة دون المساومة على جودة الصورة. نحن نستخدم نموذج NLP كبير قائم على المحولات وكما ذكرنا من قبل ، لاحظنا زيادة بنسبة 38 ٪ في كفاءة التدريب باستخدام مكتبة التوازي النموذجية SageMaker كما هو موضح في ما يلي:

  • نحتاج إلى تخفيض لكل حساب في حالة التوازي على مستوى الموتر. هذا يأخذ O (log_2 n) خطوات متوازية. هذا هو عدد الأجهزة التي تتخذ خطوات O (n) ، لعمليات O (n log_2 n) الإجمالية.
  • لتوازي خطوط الأنابيب ، نطلب O (1) خطوات متوازية لتمرير البيانات إلى أسفل خط الأنابيب
  • بالنظر إلى 16 جهازًا مع ثماني وحدات معالجة رسومات ، لدينا تكلفة O (1) لخط الأنابيب الموازي ، و O (log_2 (8)) = O (3) تكلفة لنموذج العمق المتوازي.
  • في هذه الحالة ، نرى أن تكلفة الشبكة تنخفض إلى 1/3 من خلال التبديل إلى خطوط الأنابيب الموازية التي نستخدمها مع نموذج SageMaker المتوازي ، وتقل تكلفة التدريب الإجمالية إلى 1/2 + 1/2 * 1 / log_2 (16 ) = 0.625 من التكلفة الأصلية مما يؤدي إلى تحسين الكفاءة المقابل.

بشكل عام ، عندما تتطلب الحاجة تدريبًا موزعًا (مشكلات تتعلق بحجم نموذج القياس أو بيانات التدريب) ، يمكننا اتباع مجموعة من أفضل الممارسات لتحديد النهج الأفضل.

أفضل الممارسات للتدريب الموزع

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

إذا نفدت الذاكرة أثناء التدريب ، كما فعلنا في هذا السيناريو ، فقد ترغب في التبديل إلى نهج موازٍ للنموذج. ومع ذلك ، ضع في اعتبارك هذه البدائل قبل تجربة التدريب الموازي النموذجي:

  • على الأجهزة المجهزة بـ NVIDIA Tensor Core ، استخدم تدريب مختلط الدقة لإنشاء تسريع وتقليل استهلاك الذاكرة.
  • قم بتقليل حجم الدُفعة (أو تقليل دقة الصورة أو طول تسلسل البرمجة اللغوية العصبية ، إن أمكن).

بالإضافة إلى ذلك ، نفضل تصميمات النماذج التي لا تحتوي على تسوية دفعية كما هو موضح في التعرف على الصور عالية الأداء على نطاق واسع بدون تسوية. إذا تعذر تجنب ذلك ، فتأكد من مزامنة تسوية الدُفعات عبر الأجهزة. عند استخدام التدريب الموزع ، يتم تقسيم دفعتك عبر وحدات معالجة الرسومات ، لذا تتطلب إحصاءات الدُفعات الدقيقة المزامنة عبر جميع الأجهزة. بدون هذا ، سيكون التطبيع قد زاد من الخطأ وبالتالي يضعف التقارب.

ابدأ بالتدريب الموازي النموذجي عندما يكون لديك القيود التالية:

  • طرازك لا يتناسب مع جهاز واحد
  • نظرًا لحجم النموذج الخاص بك ، فأنت تواجه قيودًا في اختيار أحجام الدُفعات الأكبر ، مثل ما إذا كانت أوزان النموذج الخاص بك تشغل معظم ذاكرة وحدة معالجة الرسومات لديك وتضطر إلى اختيار حجم دفعة أصغر ودون المستوى الأمثل

عند تحسين الأداء ، قم بما يلي:

  • استخدم خطوط الأنابيب للاتصالات بين العقد لتقليل زمن الوصول وزيادة الإنتاجية
  • اجعل خطوط الأنابيب قصيرة قدر الإمكان لتقليل أي فقاعات. يجب ضبط عدد الميكروبات لموازنة الكفاءة الحسابية مع حجم الفقاعة ، ويكون على الأقل طول خط الأنابيب. إذا لزم الأمر ، يمكنك تشكيل microbatches على مستوى الرمز المميز كما هو موضح في TeraPipe: Token Level Pipeline Parallelism لتدريب النماذج اللغوية واسعة النطاق

عند تحسين التكلفة ، استخدم Spot Instances المُدارة من SageMaker للتدريب. يمكن أن يؤدي ذلك إلى تحسين تكلفة نماذج التدريب بنسبة تصل إلى 90٪ مقارنة بالمثيلات عند الطلب. يدير SageMaker الانقطاعات في Spot نيابة عنك.

عوامل أخرى يجب مراعاتها:

  • داخل العقدة عندما يكون هناك اتصال بيني سريع ، يكون الأمر أكثر دقة. إذا كانت هناك سعة كافية للشبكة داخل العقدة ، فقد تظهر فائدة إعادة خلط البيانات للحصول على حوسبة أمثل.
  • إذا كانت عمليات التنشيط أكبر بكثير من موترات الوزن ، فقد يساعد أيضًا مُحسِّن مُقسَّم. يرجى الرجوع إلى صفر لمزيد من التفاصيل.

يقدم الجدول التالي بعض السيناريوهات الشائعة لتوسيع نطاق التدريب وكيف يمكنك تكوينها على AWS.

سيناريو متى يتم تطبيقه؟ الحلول
التحجيم من وحدة معالجة رسومات واحدة إلى العديد من وحدات معالجة الرسومات عندما يكون حجم بيانات التدريب أو حجم النموذج كبيرًا جدًا قم بالتغيير إلى مثيل متعدد GPU مثل p3.16xlarge ، والذي يحتوي على ثماني وحدات معالجة رسومات ، مع تقسيم البيانات والمعالجة عبر وحدات معالجة الرسومات الثمانية ، وإنتاج تسريع شبه خطي في الوقت الذي يستغرقه تدريب النموذج الخاص بك.
التحجيم من مثيل واحد إلى مثيلات متعددة عندما تمتد احتياجات القياس إلى ما بعد تغيير حجم المثيل قم بقياس عدد المثيلات باستخدام وظيفة مقدر SageMaker Python SDK عن طريق تعيين نوع المثيل الخاص بك إلى p3.16xlarge و example_count إلى 2. بدلاً من وحدات معالجة الرسومات الثمانية الموجودة على p3.16xlarge واحد ، لديك 16 وحدة معالجة رسومات عبر مثلين متطابقين. ضع في اعتبارك استخدام وزعت SageMaker مكتبة البيانات المتوازية.
اختيار نهج موازٍ للتدريب عند مواجهة أخطاء الذاكرة أثناء التدريب قم بالتبديل إلى نهج موازٍ للنموذج باستخدام وزعت SageMaker مكتبة موازية نموذجية.
أداء الشبكة للاتصالات بين العقد للتدريب الموزع مع مثيلات متعددة (على سبيل المثال ، الاتصال بين العقد في المجموعة عند إجراء عملية AllReduce) يجب أن تكون مثيلاتك في نفس المنطقة ونفس منطقة توافر الخدمات. عند استخدام SageMaker Python SDK ، يتم التعامل مع هذا الأمر نيابةً عنك. يجب أن تكون بيانات التدريب الخاصة بك في نفس منطقة توافر الخدمات. ضع في اعتبارك استخدام وزعت SageMaker مكتبة البيانات المتوازية.
مُحسّن GPU والشبكة والتخزين لاحتياجات التدريب الموزعة على نطاق واسع تم تصميم نوع المثيل p4d.24xlarge للتخزين المحلي السريع ولوحة شبكة معززة سريعة تصل إلى 400 جيجابت ، ونحن نوصي بشدة باستخدامه باعتباره الخيار الأكثر أداءً للتدريب الموزع.

وفي الختام

من خلال المكتبة المتوازية النموذجية في SageMaker ، نحصل على الكثير من الفوائد خارج الصندوق ، مثل تقسيم النموذج الآلي وخط الأنابيب الفعال. في هذا المنشور ، شاركنا تحدياتنا مع حالة استخدام ML ، واعتباراتنا حول مناهج التدريب المختلفة ، وكيف استخدمنا مكتبة موازية نموذج Amazon SageMaker لتسريع تدريبنا. وأفضل ما في الأمر أنه يمكن أن يستغرق الأمر الآن بضع ساعات فقط لاعتماد أفضل الممارسات لتوازي النموذج وتحسينات الأداء الموضحة هنا. إذا كان هذا المنشور يساعدك أو يلهمك لحل مشكلة ما ، فنحن نحب أن نسمع عنها! يرجى مشاركة تعليقاتك وملاحظاتك.

مراجع حسابات

لمزيد من المعلومات ، يرجى الاطلاع على ما يلي:


حول المؤلف

بريم رانجا هو مهندس حلول للمؤسسات مقره في أتلانتا ، جورجيا. إنه جزء من مجتمع المجال التقني للتعلم الآلي ويحب العمل مع العملاء في رحلة تعلم الآلة والذكاء الاصطناعي. بريم شغوف بالروبوتات ، وهو باحث في مجال المركبات المستقلة ، كما قام ببناء Beer Pours التي يتحكم فيها Alexa في هيوستن ومواقع أخرى.

سارة جين هونغ هو المؤسس المشارك ورئيس قسم العلوم في Latent Space. تكمن خلفيتها في تقاطع التفاعل بين الإنسان والحاسوب والتعلم الآلي. قادت سابقًا أبحاث البرمجة اللغوية العصبية في Sonar (حصل عليها Marchex) ، والتي تخدم الشركات في مجال الذكاء الاصطناعي للمحادثات. وهي أيضًا مطورة AR / VR مرموقة ، وقد حصلت على جوائز وزمالات من Oculus و Mozilla Mixed Reality و Microsoft Hololens.

داريل بارنهارت هو المؤسس المشارك ورئيس قسم التكنولوجيا في Latent Space. إنه مطور متمرس لديه خبرة في تسريع GPU ورسومات الكمبيوتر والبيانات واسعة النطاق والتعلم الآلي. تشمل المشاعر الأخرى الرياضيات وتطوير الألعاب ودراسة المعلومات.

إيان طومسون هو المؤسس والرئيس التنفيذي لشركة Latent Space. إيان هو مهندس وباحث مستوحى من "الممكن المجاور" - التقنيات التي توشك أن يكون لها تأثير كبير على حياتنا. تركز حاليًا على تبسيط تعلم التمثيل متعدد الوسائط وتوسيع نطاقه للمساعدة في بناء ذكاء اصطناعي آمن ومبدع. ساعد سابقًا في بناء شركات في الرسومات / الواقع الافتراضي (AltspaceVR ، التي حصلت عليها Microsoft) والتعليم / NLP (HSE).

المصدر: https://aws.amazon.com/blogs/machine-learning/how-latent-space-used-the-amazon-sagemaker-model-parallelism-library-to-push-the-frontiers-of-large- محولات الحجم /

الطابع الزمني:

اكثر من AWS مدونة التعلم الآلي