شهدت السنوات القليلة الماضية تطورًا سريعًا في مجال معالجة اللغة الطبيعية (NLP). بينما تحسنت الأجهزة ، كما هو الحال مع أحدث جيل من المسرعات من NVIDIA و Amazon ، لا يزال ممارسو التعلم الآلي المتقدم (ML) يواجهون بانتظام مشكلات في توسيع نطاق نماذج اللغة الكبيرة الخاصة بهم عبر وحدات معالجة رسومات متعددة.
في منشور المدونة هذا ، نلخص بإيجاز ظهور نماذج البرمجة اللغوية العصبية الكبيرة والصغيرة الحجم ، بشكل أساسي من خلال التجريد المقدم من Hugging Face والواجهة الخلفية المعيارية لـ Amazon SageMaker. على وجه الخصوص ، نسلط الضوء على إطلاق أربع ميزات إضافية داخل مكتبة نموذج SageMaker المتوازية التي تفتح 175 مليار متغير من نموذج البرمجة اللغوية العصبية (NLP) وضبطها للعملاء.
استخدمنا هذه المكتبة على منصة تدريب SageMaker وحققنا إنتاجية تصل إلى 32 عينة في الثانية على مثيلات 120 ml.p4d.24xlarge و 175 مليار معلمة. نتوقع أنه إذا زدنا هذا إلى 240 حالة ، فإن النموذج الكامل سيستغرق 25 يومًا للتدريب.
لمزيد من المعلومات حول نموذج التوازي ، انظر الورقة Amazon SageMaker Model Parallelism: إطار عام ومرن لتدريب النماذج الكبيرة.
يمكنك أيضًا رؤية الكمبيوتر الدفتري GPT2 الذي استخدمناه لإنشاء أرقام الأداء هذه على مستودع جيثب.
لمعرفة المزيد حول كيفية استخدام الميزات الجديدة ضمن نموذج SageMaker المتوازي ، راجع الميزات الموسعة لمكتبة SageMaker Model Parallel لـ PyTorchو استخدم مع SageMaker Python SDK.
البرمجة اللغوية العصبية على Amazon SageMaker - وجه متشابك ونموذج التوازي
إذا كنت جديدًا على Hugging Face و NLP ، فإن أهم ما تحتاج إلى معرفته هو أن التطبيقات التي تستخدم معالجة اللغة الطبيعية (NLP) بدأت في تحقيق أداء على المستوى البشري. هذا مدفوع إلى حد كبير بآلية تعلم تسمى اهتمام، مما أدى إلى ظهور نموذج تعلم عميق يسمى محول، هذا أكثر قابلية للتطوير من طرق التعلم العميق المتسلسلة السابقة. المشهور الآن نموذج بيرت تم تطويره للاستفادة من المحولات ، وطور العديد من تكتيكات البرمجة اللغوية العصبية المفيدة على طول الطريق. المحولات ومجموعة النماذج ، داخل وخارج البرمجة اللغوية العصبية ، وجميعها مستوحاة من BERT ، هي المحرك الأساسي وراء نتائج بحث Google الخاصة بك، في الخاص بك نتائج ترجمة جوجلو مجموعة من الشركات الناشئة الجديدة.
تعاونت SageMaker و Hugging Face لتسهيل ذلك على العملاء أكثر من أي وقت مضى. لقد أطلقنا حاويات التعلم العميق Hugging Face (DLC) لتدريب واستضافة النماذج المدربة مسبقًا مباشرة من Hugging Face's أكثر من 26,000 نموذج. لقد أطلقنا مترجم تدريب SageMaker من أجل تسريع وقت تشغيل حلقات تدريب Hugging Face بنسبة تصل إلى 50٪. لقد قمنا أيضًا بالتكامل SDK المحولات الرائد Hugging Face مع مكتباتنا التدريبية الموزعة لجعل توسيع نطاق نماذج البرمجة اللغوية العصبية الخاصة بك أسهل من أي وقت مضى.
لمزيد من المعلومات حول نماذج Hugging Face Transformer على Amazon SageMaker ، راجع دعم نماذج محولات تعانق الوجه.
ميزات جديدة للتدريب على نموذج البرمجة اللغوية العصبية على نطاق واسع باستخدام المكتبة المتوازية لنموذج SageMaker
في AWS re: Invent 2020 ، أطلقت SageMaker مكتبات موزعة توفر أفضل أداء على السحابة لتدريب نماذج الرؤية الحاسوبية مثل قناع RCNN ونماذج البرمجة اللغوية العصبية مثل T5-3B. هذا ممكن من خلال أساسيات الاتصال المحسّنة التي تكون أسرع بنسبة 20-40٪ من NCCL على AWS ، وتقنيات توزيع النماذج التي تمكّن نماذج اللغة الكبيرة للغاية من التوسع عبر عشرات إلى مئات الآلاف من وحدات معالجة الرسومات.
تمنحك مكتبة SageMaker المتوازية (SMP) دائمًا القدرة على أخذ نموذج NLP المحدد مسبقًا في PyTorch ، سواء كان ذلك من خلال Hugging Face أو في أي مكان آخر ، وتقسيم هذا النموذج على وحدات معالجة رسومات متعددة في مجموعتك. بطريقة أخرى ، يقسم SMP النموذج الخاص بك إلى أجزاء أصغر حتى لا تواجه أخطاء في الذاكرة (OOM). يسعدنا إضافة تقنيات إضافية لحفظ الذاكرة والتي تعتبر ضرورية للنماذج الكبيرة ، وهي:
- التوازي الموتر
- تجزئة حالة المحسن
- تفعيل نقاط التفتيش
- تفعيل التفريغ
يمكنك الجمع بين هذه الميزات الأربع التي يمكن دمجها للاستفادة من الذاكرة بشكل أكثر كفاءة وتدريب الجيل التالي من نماذج البرمجة اللغوية العصبية المتطرفة.
التدريب الموزع والتوازي الموتر
لفهم التوازي الموتر ، من المفيد معرفة أن هناك أنواعًا عديدة من التدريب الموزع ، أو التوازي. ربما تكون على دراية بالنوع الأكثر شيوعًا ، توازي البيانات. يعمل جوهر توازي البيانات على النحو التالي: يمكنك إضافة عقدة إضافية إلى المجموعة الخاصة بك ، مثل الانتقال من واحد إلى مثلين ml.EC2 في مقدر SageMaker الخاص بك. بعد ذلك ، يمكنك استخدام إطار عمل بيانات متوازي مثل Horovod أو PyTorch Distributed Data Parallel أو SageMaker Distributed. يؤدي هذا إلى إنشاء نسخ متماثلة للنموذج الخاص بك ، واحد لكل مسرع ، ويقوم بتقسيم البيانات إلى كل عقدة ، جنبًا إلى جنب مع تجميع جميع النتائج معًا أثناء خطوة الانتشار الخلفي لشبكتك العصبية. فكر في النسب المتدرجة الموزعة. توازي البيانات شائع أيضًا داخل الخوادم ؛ أنت تقوم بتقسيم البيانات إلى جميع وحدات معالجة الرسومات وأحيانًا وحدات المعالجة المركزية على جميع العقد الخاصة بك. يوضح الرسم البياني التالي توازي البيانات.
التوازي النموذجي يختلف قليلا. بدلاً من عمل نسخ من نفس النموذج ، قمنا بتقسيم النموذج إلى أجزاء. ثم ندير تشغيله ، لذلك لا تزال بياناتك تتدفق عبر شبكتك العصبية بالطريقة نفسها تمامًا رياضيًا ، لكن أجزاء مختلفة من نموذجك موجودة على وحدات معالجة رسومات مختلفة. إذا كنت تستخدم حجم ml.p3.8xlarge ، فلديك أربع وحدات NVIDIA V100 ، لذلك قد ترغب في تقسيم النموذج إلى 4 قطع ، قطعة واحدة لكل وحدة معالجة رسومات. إذا قفزت إلى ما يصل إلى 4 ملي لتر. هذا أيضا يسمى في بعض الأحيان موازاة خطوط الأنابيب. ذلك لأن مجموعة الطبقات في الشبكة مقسمة عبر وحدات معالجة الرسومات ، وتعمل بطريقة متسلسلة لزيادة استخدام وحدة معالجة الرسومات إلى أقصى حد. يوضح الرسم البياني التالي نموذج التوازي.
لجعل نموذج التوازي يحدث على نطاق واسع ، نحتاج إلى نوع ثالث من التوزيع: التوازي الموتر. يطبق التوازي الموتر نفس المفاهيم في خطوة واحدة أخرى - نحن نفصل أكبر طبقات شبكتك العصبية ونضع أجزاء من الطبقات نفسها على أجهزة مختلفة. يكون هذا مناسبًا عندما تعمل مع 175 مليار معلمة أو أكثر ، وتحاول احتواء حتى عدد قليل من السجلات في ذاكرة الوصول العشوائي ، جنبًا إلى جنب مع أجزاء من النموذج الخاص بك ، لتدريب هذا المحول. يوضح الرسم البياني التالي التوازي للموتر.
للتمكين موازاة الموتر ، قم بتعيينها ضمن خيارات smp تمرر إلى مقدرك.
في القانون السابق ، pipeline_parallel_degree
يصف عدد الأجزاء التي يجب تجزئة نموذجك إليها ، بناءً على موازاة خطوط الأنابيب التي ناقشناها أعلاه. كلمة أخرى لهذا هي عشرات.
لتمكين موتر التوازي ، اضبط tensor_parallel_degree
إلى المستوى الذي تريده. تأكد من اختيار رقم يساوي أو أصغر من عدد وحدة معالجة الرسومات لكل مثيل ، لذلك لا يزيد عن 8 لأجهزة ml.p4d.24xlarge. لمزيد من التغييرات في البرنامج النصي ، يرجى الرجوع إلى قم بتشغيل وظيفة تدريب موازية لنموذج SageMaker الموزع مع Tensor Parallel.
تشير المعلمة ddp إلى البيانات الموزعة المتوازية. يمكنك عادةً تمكين هذا إذا كنت تستخدم توازي البيانات أو توازي الموتر ، لأن مكتبة التوازي النموذجية تعتمد على DDP لهذه الميزات.
المحسن حالة التجزئة وتفريغ التنشيط ونقاط التفتيش
إذا كان لديك نموذج كبير للغاية ، فأنت بحاجة أيضًا إلى حالة مُحسِّن كبيرة جدًا. يعد تحضير مُحسِّن SMP أمرًا بسيطًا: ما عليك سوى التقاطه من القرص في البرنامج النصي وتحميله في ملف smp.DistributedOptimizer()
موضوع.
تأكد من تمكين هذا عند المقدّر عن طريق الضبط shard_optimizer_state
لصحيح في smp_options
الذي تستخدمه لتكوين SMP:
على غرار الموازاة الموتر وخطوط الأنابيب ، يقوم SMP بتوصيف نموذجك وحجم عالمك (العدد الإجمالي لوحدات معالجة الرسومات في جميع عقد التدريب الخاصة بك) ، للعثور على أفضل استراتيجيات التنسيب.
في التعلم العميق تسمى مخرجات الطبقة المتوسطة أيضًا التنشيطات ، ويجب تخزينها أثناء التمرير الأمامي. هذا لأنهم بحاجة إلى استخدامها لحساب التدرج في الممر الخلفي. في نموذج كبير ، يمكن أن يؤدي تخزين كل هذه التنشيطات في وقت واحد في الذاكرة إلى حدوث اختناقات كبيرة في الذاكرة. لمعالجة هذا الاختناق ، يمكنك استخدام تفعيل نقاط التفتيش، الميزة الثالثة الجديدة في مكتبة التوازي لنموذج SageMaker. تفعيل نقاط التفتيش ، أو التدرج، هي تقنية لتقليل استخدام الذاكرة عن طريق مسح تنشيط طبقات معينة وإعادة حسابها أثناء التمرير للخلف. هذا يتاجر بشكل فعال في وقت الحساب الإضافي لتقليل استخدام الذاكرة.
أخيراً: تفعيل التفريغ يستخدم مباشرة تفعيل نقاط التفتيش. إنها استراتيجية للاحتفاظ فقط بعدد قليل من عمليات تنشيط الموتر على ذاكرة الوصول العشوائي GPU أثناء تدريب النموذج. على وجه التحديد ، نقوم بنقل عمليات التنشيط المحددة إلى ذاكرة وحدة المعالجة المركزية أثناء المرور الأمامي وإعادة تحميلها مرة أخرى إلى وحدة معالجة الرسومات من أجل المرور الخلفي لمجموعة صغيرة محددة.
الدُفعات الصغيرة واستراتيجيات التنسيب
الموضوعات الأخرى التي تسبب أحيانًا ارتباك العملاء هي الدُفعات الصغيرة واستراتيجيات التوظيف. كلاهما عبارة عن معلمات تشعبية يمكنك توفيرها لمكتبة SageMaker المتوازية النموذجية. تعتبر الدُفعات الصغيرة على وجه التحديد ذات صلة عند تنفيذ النماذج التي تعتمد على موازاة خطوط الأنابيب ، مثل تلك التي لا يقل حجمها عن 30 مليار معلمة أو أكثر.
الدفعات الصغيرة هي مجموعات فرعية من المينيباتش. عندما يكون نموذجك في حلقة التدريب الخاصة به ، فإنك تحدد عددًا معينًا من السجلات لالتقاطها وتمريرها للأمام وللخلف عبر الطبقات - وهذا ما يسمى بـ minibatch، أو في بعض الأحيان مجرد ملف دفعة. يسمى التمرير الكامل عبر مجموعة البيانات بامتداد عصر. لتشغيل الممرات للأمام والخلف مع موازاة خطوط الأنابيب ، تقوم مكتبة نموذج SageMaker المتوازية بتقسيم الدُفعات إلى مجموعات فرعية أصغر تسمى الدُفعات الصغيرة ، والتي يتم تشغيلها واحدة تلو الأخرى لتعظيم استخدام وحدة معالجة الرسومات. المجموعة الناتجة ، الأصغر بكثير من الأمثلة لكل وحدة معالجة رسومات ، تسمى الدُفعات الصغيرة. في مثالنا GPT-2 ، أضفنا 1 microbatch افتراضيًا إلى نص التدريب مباشرةً.
بينما تقوم بتوسيع نطاق تكوين التدريب الخاص بك ، يوصى بشدة بتغيير حجم الدُفعة وحجم الدُفعة الجزئية وفقًا لذلك. هذه هي الطريقة الوحيدة لضمان الأداء الجيد: يجب أن تأخذ في الاعتبار حجم الدُفعة وأحجام الدُفعات الصغيرة كدالة لحجمك العالمي الإجمالي عند الاعتماد على موازاة خطوط الأنابيب.
استراتيجيات التنسيب هي كيفية إخبار SageMaker فعليًا بمكان وضع أقسام النموذج الخاصة بك. إذا كنت تستخدم كلاً من النموذج المتوازي والتوازي مع البيانات ، فقم بالإعداد placement_strategy
إلى “cluster”
يضع النسخ المتماثلة للنموذج في معرف الجهاز (GPUs) القريبة فعليًا من بعضها البعض. ومع ذلك ، إذا كنت تريد حقًا أن تكون أكثر توجيهية بشأن إستراتيجية التوازي الخاصة بك ، فيمكنك تقسيمها إلى سلسلة واحدة مع مجموعات مختلفة من ثلاثة أحرف: D لتوازي البيانات ، P
يشير إلى موازاة خطوط الأنابيب ، و T
للتوازي الموتر. نوصي بشكل عام بالاحتفاظ بالوضع الافتراضي لـ "cluster"
، لأن هذا هو الأنسب لتدريب النماذج الكبيرة الحجم. موضع "العنقودية" يتوافق مع "DPT
".
لمزيد من المعلومات حول استراتيجيات التنسيب ، انظر استراتيجية التنسيب مع Tensor Parallelism.
مثال على حالة الاستخدام
لنتخيل أن لديك مل واحدًا أكبر ب mp3.16. mpXNUMX. mpXNUMX. XNUMX في وظيفتك التدريبية. هذا يمنحك 8 بطاقات NVIDIA V100 لكل عقدة. تذكر أنه في كل مرة تضيف فيها مثيلًا إضافيًا ، فإنك تواجه مقدارًا إضافيًا من عرض النطاق الترددي ، لذلك من الأفضل دائمًا أن يكون لديك المزيد من وحدات معالجة الرسومات على عقدة واحدة. في هذه الحالة ، تكون أفضل حالًا باستخدام مل واحد أكبر من ، على سبيل المثال ، حجمان مل .3.16x كبير. على الرغم من أن عدد وحدات معالجة الرسومات هو نفسه ، إلا أن عرض النطاق الترددي الإضافي للعقدة الإضافية يؤدي إلى إبطاء الإنتاجية.
يوضح الرسم البياني التالي التوازي للنموذج رباعي الاتجاهات ، جنبًا إلى جنب مع توازي البيانات ثنائي الاتجاه. هذا يعني أن لديك نسختين متماثلتين من نموذجك (أعتقد أن البيانات متوازية) ، مع تقسيم كل منهما عبر أربع وحدات معالجة رسومات (نموذج متوازي).
إذا كان أي من أقسام النموذج هذه كبيرًا جدًا بحيث لا يتناسب مع وحدة معالجة رسومات واحدة ، فيمكنك إضافة نوع إضافي من التوزيع - توازي موتر - لبصقه واستخدام كلا الجهازين.
وفي الختام
ناقشنا في منشور المدونة هذا توزيع SageMaker مكتبات تدريبية ، مع التركيز بشكل خاص على نموذج التوازي. شاركنا معايير الأداء من أحدث اختبار لدينا ، وحققنا 32 عينة في الثانية عبر مثيلات 120 ml.p4d.24xlarge ومعلمات 175B على Amazon SageMaker. نتوقع أنه إذا زدنا هذا إلى 240 حالة p4 ، يمكننا تدريب نموذج معامل 175B في 25 يومًا.
ناقشنا أيضًا أحدث الميزات المتمثلة في تمكين التدريب على نطاق واسع ، وهي التوازي الموتر ، وتجزئة حالة المحسن ، ونقاط فحص التنشيط ، وإلغاء تحميل التنشيط. شاركنا بعض النصائح والحيل لتمكين ذلك من خلال التدريب على Amazon SageMaker.
جربه بنفسك باستخدام نفس الكمبيوتر الدفتري الذي أنشأ أرقامنا ، والمتوفر على GitHub هنا. يمكنك أيضًا طلب المزيد من وحدات معالجة الرسومات لحساب AWS الخاص بك من خلال طلب الموافقة على حد الخدمة هنا.
حول المؤلف
إميلي ويبر انضم إلى AWS بعد إطلاق SageMaker مباشرة ، وما زال يحاول إخبار العالم عنها منذ ذلك الحين! خارج بناء تجارب تعلم جديدة للعملاء ، تتمتع إميلي بالتأمل ودراسة البوذية التبتية.
أديتيا بندال هو مدير منتج أول في AWS Deep Learning. إنه يعمل على المنتجات التي تسهل على العملاء تدريب نماذج التعلم العميق على AWS. في أوقات فراغه ، يستمتع بقضاء الوقت مع ابنته ولعب التنس وقراءة القصص التاريخية والسفر.
لويس كوينتيلا هو مدير مطور البرامج لمكتبة AWS SageMaker المتوازية. في أوقات فراغه ، يمكن العثور عليه يركب هارلي في منطقة خليج سان فرانسيسكو.
- كوينسمارت. أفضل بورصة للبيتكوين والعملات المشفرة في أوروبا.
- بلاتوبلوكشين. Web3 Metaverse Intelligence. تضخيم المعرفة. دخول مجاني.
- كريبتوهوك. الرادار. تجربة مجانية.
- المصدر: https://aws.amazon.com/blogs/machine-learning/train-175-billion-parameter-nlp-models-with-model-parallel-additions-and-hugging-face-on-amazon-sagemaker/
- "
- 000
- 100
- 2020
- 39
- من نحن
- مسرع
- حسابي
- تحقق
- في
- إضافي
- العنوان
- متقدم
- الكل
- سابقا
- أمازون
- آخر
- التطبيقات
- المنطقة
- متاح
- AWS
- خليج
- أفضل
- أكبر
- مليار
- المدونة
- ابني
- سبب
- تغيير
- سحابة
- الكود
- تركيبات
- مشترك
- Communication
- الاعداد
- ارتباك
- حاويات
- جوهر
- استطاع
- العملاء
- البيانات
- المتقدمة
- المطور
- التطوير التجاري
- جهاز
- الأجهزة
- مختلف
- وزعت
- توزيع
- إلى أسفل
- مدفوع
- تمكين
- خاصة
- مثال
- الخبره في مجال الغطس
- خبرة
- أقصى
- الوجه
- أسرع
- الميزات
- المميزات
- خيال
- تناسب
- متابعيك
- إلى الأمام
- وجدت
- الإطار
- بالإضافة إلى
- وظيفة
- العلاجات العامة
- توليد
- GitHub جيثب:
- الذهاب
- خير
- شراء مراجعات جوجل
- Google بحث
- وحدة معالجة الرسوميات:
- أجهزة التبخير
- مفيد
- تسليط الضوء
- تاريخي
- كيفية
- كيفية
- HTTPS
- مئات
- زيادة
- معلومات
- موحى
- المتكاملة
- مسائل
- IT
- وظيفة
- انضم
- قفز
- حفظ
- لغة
- كبير
- آخر
- إطلاق
- تعلم
- تعلم
- مستوى
- المكتبة
- تحميل
- آلة
- آلة التعلم
- الآلات
- القيام ب
- مدير
- مكبر الصوت : يدعم، مع دعم ميكروفون مدمج لمنع الضوضاء
- ML
- نموذج
- عارضات ازياء
- وحدات
- أكثر
- خطوة
- أي
- طبيعي
- شبكة
- مزايا جديدة
- العقد
- مفكرة
- أرقام
- أخرى
- ورق
- شراكة
- أداء
- قطعة
- المنصة
- أكثر الاستفسارات
- ممكن
- ابتدائي
- منتج
- المنتجات
- ملامح
- تزود
- رامات
- RE
- نادي القراءة
- نوصي
- تسجيل
- تخفيض
- النتائج
- يجري
- تشغيل
- قال
- تحجيم
- حجم
- التحجيم
- الإستراحة
- بحث
- الخدمة
- طقم
- ضبط
- عملية التجزئة
- شاركت
- هام
- مقاس
- So
- تطبيقات الكمبيوتر
- على وجه التحديد
- سرعة
- الإنفاق
- انقسم
- الولايه او المحافظه
- استراتيجيات
- الإستراتيجيات
- تزويد
- التكتيكات
- تقنيات
- تجربه بالعربي
- العالم
- الآلاف
- عبر
- الوقت
- نصائح
- نصائح وحيل
- سويا
- المواضيع
- الصفقات
- قادة الإيمان
- فهم
- تستخدم
- الاستفادة من
- رؤيتنا
- في غضون
- عامل
- أعمال
- العالم
- سنوات