تسریع PyTorch با DeepSpeed ​​برای آموزش مدل های زبان بزرگ با نمونه های DL1 EC2 مبتنی بر اینتل Habana Gaudi | خدمات وب آمازون

تسریع PyTorch با DeepSpeed ​​برای آموزش مدل های زبان بزرگ با نمونه های DL1 EC2 مبتنی بر اینتل Habana Gaudi | خدمات وب آمازون

آموزش مدل های زبان بزرگ (LLM) با میلیاردها پارامتر می تواند چالش برانگیز باشد. علاوه بر طراحی معماری مدل، محققان نیاز به راه‌اندازی تکنیک‌های آموزشی پیشرفته برای آموزش توزیع‌شده مانند پشتیبانی دقیق ترکیبی، انباشت گرادیان، و ایست بازرسی دارند. در مدل‌های بزرگ، راه‌اندازی آموزش چالش‌برانگیزتر است زیرا حافظه موجود در یک دستگاه شتاب‌دهنده، اندازه مدل‌هایی را که فقط با استفاده از موازی‌سازی داده‌ها آموزش داده شده‌اند محدود می‌کند، و استفاده از آموزش موازی مدل نیاز به سطح بیشتری از تغییرات در کد آموزشی دارد. کتابخانه هایی مانند در اعماق (یک کتابخانه بهینه سازی یادگیری عمیق منبع باز برای PyTorch) برخی از این چالش ها را برطرف می کند و می تواند به تسریع توسعه و آموزش مدل کمک کند.

در این پست، آموزش مبتنی بر Intel Habana Gaudi را تنظیم کردیم ابر محاسبه الاستیک آمازون (Amazon EC2) DL1 نمونه‌هایی را مشاهده کنید و مزایای استفاده از یک چارچوب مقیاس‌بندی مانند DeepSpeed ​​را تعیین کنید. ما نتایج مقیاس‌بندی را برای یک مدل ترانسفورماتور نوع رمزگذار (BERT با 340 میلیون تا 1.5 میلیارد پارامتر) ارائه می‌کنیم. برای مدل 1.5 میلیارد پارامتری، با استفاده از 82.7 شتاب‌دهنده (128 dl16x بزرگ‌تر) به راندمان مقیاس‌بندی 1.24 درصد دست یافتیم. DeepSpeed ​​ZeRO بهینه سازی مرحله 1 حالت های بهینه ساز توسط DeepSpeed ​​برای آموزش مدل های بزرگ با استفاده از پارادایم موازی داده تقسیم بندی شدند. این رویکرد برای آموزش یک مدل 5 میلیارد پارامتری با استفاده از موازی سازی داده ها گسترش یافته است. ما همچنین از پشتیبانی بومی گائودی از نوع داده BF16 برای کاهش اندازه حافظه و افزایش عملکرد آموزشی در مقایسه با استفاده از نوع داده FP32 استفاده کردیم. در نتیجه، ما به همگرایی مدل قبل از آموزش (فاز 1) در عرض 16 ساعت (هدف ما آموزش یک مدل بزرگ در یک روز) برای مدل BERT با پارامتر 1.5 میلیاردی با استفاده از مجموعه داده wikicorpus-en.

راه اندازی آموزش

ما یک خوشه محاسباتی مدیریت شده متشکل از 16 نمونه dl1.24x با استفاده از دسته AWS. ما توسعه دادیم کارگاه دسته ای AWS که مراحل راه اندازی کلاستر آموزشی توزیع شده با AWS Batch را نشان می دهد. هر نمونه dl1.24xlarge دارای هشت شتاب دهنده Habana Gaudi است که هر کدام با 32 گیگابایت حافظه و یک شبکه کامل مش RoCE بین کارت ها با پهنای باند اتصال دو جهته کل هر کدام 700 گیگابیت بر ثانیه (نگاه کنید به آمازون EC2 DL1 از Deep Dive استفاده می کند برای اطلاعات بیشتر). خوشه dl1.24xlarge نیز از چهار استفاده کرد آداپتورهای پارچه ای الاستیک AWS (EFA)، با مجموع 400 گیگابیت بر ثانیه اتصال بین گره ها.

کارگاه آموزشی توزیع شده مراحل راه اندازی کلاستر آموزشی توزیع شده را نشان می دهد. این کارگاه تنظیمات آموزشی توزیع شده را با استفاده از AWS Batch و به ویژه ویژگی مشاغل موازی چند گره ای برای راه اندازی مشاغل آموزشی کانتینری در مقیاس بزرگ در خوشه های کاملاً مدیریت شده نشان می دهد. به طور خاص، یک محیط محاسباتی دسته ای AWS کاملاً مدیریت شده با نمونه های DL1 ایجاد می شود. ظروف از بیرون کشیده می شوند رجیستری ظروف الاستیک آمازون (Amazon ECR) و به طور خودکار در نمونه های موجود در خوشه بر اساس تعریف کار موازی چند گره راه اندازی شد. کارگاه با اجرای یک آموزش موازی داده‌های چند گره، چند HPU مدل BERT (340 میلیون تا 1.5 میلیارد پارامتر) با استفاده از PyTorch و DeepSpeed ​​به پایان می‌رسد.

پیش تمرین BERT 1.5B با DeepSpeed

حبنا SynapseAI نسخه 1.5 و v1.6 پشتیبانی از بهینه سازی DeepSpeed ​​ZeRO1. این فورک Habana مخزن DeepSpeed ​​GitHub شامل تغییرات لازم برای پشتیبانی از شتاب دهنده های گائودی است. پشتیبانی کامل از داده های موازی توزیع شده (چند کارتی، چند نمونه ای)، بهینه سازی ZeRO1 و انواع داده های BF16 وجود دارد.

همه این ویژگی‌ها روی صفحه فعال هستند مخزن مرجع مدل BERT 1.5B، که یک مدل رمزگذار دو جهته 48 لایه، 1600 بعد پنهان و 25 سر را معرفی می کند که از اجرای BERT مشتق شده است. این مخزن همچنین شامل پیاده‌سازی مدل BERT Large است: معماری شبکه عصبی 24 لایه، 1024 پنهان، 16 سر و 340 میلیون پارامتر. اسکریپت های مدل سازی قبل از آموزش از مخزن نمونه های یادگیری عمیق NVIDIA برای دانلود داده‌های wikicorpus_en، داده‌های خام را در توکن‌ها از قبل پردازش کنید، و داده‌ها را در مجموعه‌های داده کوچک‌تر h5 برای آموزش موازی داده‌های توزیع شده خرد کنید. شما می توانید این رویکرد عمومی را برای آموزش معماری های مدل PyTorch سفارشی خود با استفاده از مجموعه داده های خود با استفاده از نمونه های DL1 اتخاذ کنید.

نتایج مقیاس بندی قبل از تمرین (فاز 1).

برای پیش‌آموزش مدل‌های بزرگ در مقیاس، ما عمدتاً روی دو جنبه از راه‌حل تمرکز کردیم: عملکرد آموزشی، که با زمان آموزش اندازه‌گیری می‌شود، و مقرون‌به‌صرفه بودن رسیدن به یک راه‌حل کاملاً همگرا. در مرحله بعد، به عنوان مثال، با پیش‌آموزش BERT 1.5B عمیق‌تر به این دو معیار می‌پردازیم.

مقیاس بندی عملکرد و زمان برای تمرین

ما با اندازه‌گیری عملکرد پیاده‌سازی BERT Large به عنوان پایه‌ای برای مقیاس‌پذیری شروع می‌کنیم. جدول زیر میزان خروجی اندازه‌گیری شده توالی‌ها در هر ثانیه را از 1-8 dl1.24x نمونه‌های بزرگ (با هشت دستگاه شتاب‌دهنده در هر نمونه) فهرست می‌کند. با استفاده از توان عملیاتی تک نمونه ای به عنوان خط پایه، کارایی مقیاس بندی را در چندین نمونه اندازه گیری کردیم، که اهرم مهمی برای درک متریک آموزشی قیمت-عملکرد است.

تعداد موارد تعداد شتاب دهنده ها سکانس در ثانیه توالی در هر ثانیه در هر شتاب دهنده کارایی پوسته پوسته شدن
1 8 1,379.76 172.47 ٪۱۰۰
2 16 2,705.57 169.10 ٪۱۰۰
4 32 5,291.58 165.36 ٪۱۰۰
8 64 9,977.54 155.90 ٪۱۰۰

شکل زیر کارایی مقیاس بندی را نشان می دهد.

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

برای BERT 1.5B، ما فراپارامترهای مدل را در مخزن مرجع تغییر دادیم تا همگرایی را تضمین کنیم. اندازه موثر دسته ای برای هر شتاب دهنده روی 384 (برای حداکثر استفاده از حافظه)، با میکرو دسته های 16 در هر مرحله و 24 مرحله انباشتگی گرادیان تنظیم شد. نرخ یادگیری 0.0015 و 0.003 به ترتیب برای 8 و 16 گره استفاده شد. با این پیکربندی‌ها، ما به همگرایی مرحله 1 پیش‌آموزشی BERT 1.5B در 8 نمونه dl1.24xlarge (64 شتاب‌دهنده) در تقریباً 25 ساعت و 15 ساعت در 16 dl1.24xlarge (128 شتاب‌دهنده) دست یافتیم. شکل زیر میانگین تلفات را به عنوان تابعی از تعداد دوره های آموزشی نشان می دهد، همانطور که تعداد شتاب دهنده ها را افزایش می دهیم.

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

با پیکربندی که قبلاً توضیح داده شد، 85 درصد راندمان مقیاس‌بندی قوی با 64 شتاب‌دهنده و 83 درصد با 128 شتاب‌دهنده، از خط پایه 8 شتاب‌دهنده در یک نمونه به دست آوردیم. جدول زیر به طور خلاصه پارامترها را نشان می دهد.

تعداد موارد تعداد شتاب دهنده ها سکانس در ثانیه توالی در هر ثانیه در هر شتاب دهنده کارایی پوسته پوسته شدن
1 8 276.66 34.58 ٪۱۰۰
8 64 1,883.63 29.43 ٪۱۰۰
16 128 3,659.15 28.59 ٪۱۰۰

شکل زیر کارایی مقیاس بندی را نشان می دهد.

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.

نتیجه

در این پست، پشتیبانی از DeepSpeed ​​توسط Habana SynapseAI v1.5/v1.6 و اینکه چگونه به مقیاس آموزش LLM در شتاب‌دهنده‌های Habana Gaudi کمک می‌کند، ارزیابی کردیم. پیش‌آموزش یک مدل BERT با پارامتر 1.5 میلیاردی، 16 ساعت طول کشید تا روی خوشه‌ای متشکل از 128 شتاب‌دهنده گائودی، با مقیاس‌گیری قوی 85 درصد، همگرا شود. ما شما را تشویق می کنیم که نگاهی به معماری نشان داده شده در آن بیندازید کارگاه AWS و استفاده از آن را برای آموزش معماری های مدل PyTorch سفارشی با استفاده از نمونه های DL1 در نظر بگیرید.


درباره نویسندگان

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.ماهادوان بالاسوبرامانیام یک معمار راه حل اصلی برای محاسبات خودمختار با نزدیک به 20 سال تجربه در زمینه یادگیری عمیق فیزیک، ساخت و استقرار دوقلوهای دیجیتال برای سیستم های صنعتی در مقیاس است. مهدوان دکترای خود را در رشته مهندسی مکانیک از موسسه فناوری ماساچوست گرفته است و بیش از 25 اختراع و انتشارات را در اختیار دارد.

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.RJ یک مهندس در تیم Search M5 است که تلاش‌ها را برای ساختن سیستم‌های یادگیری عمیق در مقیاس بزرگ برای آموزش و استنتاج رهبری می‌کند. در خارج از محل کار، او غذاهای مختلف غذا را بررسی می کند و ورزش های راکتی انجام می دهد.

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.ساندار رانگاناتان رئیس توسعه کسب و کار، ML Frameworks در تیم آمازون EC2 است. او روی بارهای کاری ML در مقیاس بزرگ در سرویس‌های AWS مانند Amazon EKS، Amazon ECS، Elastic Fabric Adapter، AWS Batch و Amazon SageMaker تمرکز می‌کند. تجربه او شامل نقش های رهبری در مدیریت محصول و توسعه محصول در NetApp، Micron Technology، Qualcomm و Mentor Graphics است.

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.آبیناندان پتنی یک مهندس نرم افزار ارشد در جستجوی آمازون است. او بر روی ساختن سیستم‌ها و ابزار برای آموزش یادگیری عمیق توزیع‌شده مقیاس‌پذیر و استنتاج بلادرنگ تمرکز دارد.

Accelerate PyTorch with DeepSpeed to train large language models with Intel Habana Gaudi-based DL1 EC2 instances | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.پیر-ایو آکویلانتی رئیس بخش Frameworks ML Solutions در خدمات وب آمازون است که در آن به توسعه بهترین راه حل های مبتنی بر ابر ML در صنعت کمک می کند. پیشینه او در محاسبات با عملکرد بالا است و پیش از پیوستن به AWS، پیر ایو در صنعت نفت و گاز کار می کرد. Pierre-Yves اصالتاً اهل فرانسه است و دارای مدرک Ph.D. در علوم کامپیوتر از دانشگاه لیل.

تمبر زمان:

بیشتر از آموزش ماشین AWS