چگونه متا مدلهای بزرگ زبان را در مقیاس های بزرگ آموزش میدهد؟
همانطور که ما همچنان تحقیقات و توسعه هوش مصنوعی خود را بر روی حل مشکلات پیچیدهتر متمرکز میکنیم، یکی از مهمترین و چالشبرانگیزترین تغییراتی که تجربه کردهایم، توانایی محاسباتی عظیم مورد نیاز برای آموزش مدلهای بزرگ زبان (LLMs) است.
مقاله زیر از توضیحات متا در مورد آموزش مدل های زبانی بزرگ و چالش های این مسیر را با ما دنبال کنید.
به طور سنتی، آموزش مدلهای هوش مصنوعی ما شامل آموزش تعداد زیادی مدل بود که به تعداد نسبتاً کمتری واحد پردازش گرافیکی (GPU) نیاز داشتند. این مورد در مدلهای توصیه کننده ما (مثل مدلهای فید و رتبهبندی) که حجم عظیمی از اطلاعات را برای ارائه توصیههای دقیق که بیشتر محصولات ما را تغذیه میکنند، به کار میبردند، صادق بود.
با ظهور هوش مصنوعی مولد (GenAI)، تغییراتی به سمت تعداد کمتر وظایف، اما با حجم بسیار بزرگ رخ داده است. پشتیبانی از GenAI در مقیاس بزرگ به معنای بازنگری در چگونگی برخورد با نرمافزار، سختافزار و زیرساخت شبکه است.
چالشهای آموزش مدلهای در مقیاس بزرگ
با افزایش تعداد GPUها در یک وظیفه، احتمال وقفه به دلیل خرابی سختافزار نیز افزایش مییابد. علاوه بر این، همه این GPUها همچنان باید بر روی یک بستر با سرعت بالا ارتباط برقرار کنند تا عملکرد بهینه داشته باشند. این موارد اهمیت چهار عامل را برجسته میکند:
قابلیت اطمینان سختافزاری
اطمینان از قابلیت اطمینان سختافزار اهمیت زیادی دارد. ما باید احتمال وقوع خرابی سختافزار که منجر به وقفه در آموزش میشود را به حداقل برسانیم. این شامل تستها و کنترلهای کیفی دقیق و استفاده از خودکارسازی برای شناسایی و رفع سریع مشکلات است.
بازیابی سریع در صورت وقوع خرابی: علیرغم تمام تلاشهای ما، خرابیهای سختافزاری همچنان ممکن است رخ دهند. وقتی این اتفاق میافتد، نیاز به بازیابی سریع داریم. این شامل کاهش بار ناشی از برنامهریزی مجدد و بازآغاز سریع آموزش است.
حفظ کارآمد وضعیت آموزش
در صورت وقوع خرابی، باید بتوانیم از همان جایی که متوقف شدهایم ادامه دهیم. این بدان معناست که باید به طور مرتب وضعیت آموزش را ثبت کنیم و دادههای آموزشی را به صورت کارآمد ذخیره و بازیابی کنیم.
اتصال بهینه بین GPUها
آموزش مدلهای در مقیاس بزرگ شامل انتقال حجم وسیعی از دادهها بین GPUها به صورت هماهنگ است. تبادل دادههای کند بین بخشی از GPUها میتواند ترافیک را افزایش داده و کل وظیفه را کند کند. حل این مشکل نیاز به زیرساخت شبکهای قوی و سریع و همچنین پروتکلها و الگوریتمهای کارآمد انتقال داده دارد.
نوآوری در لایههای مختلف زیرساخت
بهینهسازی هر لایه از زیرساخت ما به دلیل نیازهای وسیع GenAI اهمیت بالایی دارد. این بهبودها شامل توسعهها در زمینههای گوناگون بوده است.
نرمافزار آموزشی
متا به محققان این امکان را می دهد که از PyTorch و دیگر ابزارهای متن باز جدید استفاده کنند، که تحولی سریع از تحقیق به تولید فراهم میکند. این شامل توسعه الگوریتمها و تکنیکهای جدید برای آموزش کارآمد در مقیاس بزرگ و یکپارچهسازی ابزارها و چارچوبهای نرمافزاری جدید در زیرساخت متا است.
برنامهریزی
برنامهریزی کارآمد به ما کمک میکند تا اطمینان حاصل کنیم که منابع ما به بهینهترین شکل ممکن استفاده میشوند. این شامل الگوریتمهای پیشرفتهای است که میتوانند منابع را بر اساس نیازهای مختلف وظایف تخصیص دهند و برنامهریزی پویا برای تطبیق با بارهای کاری متغیر انجام دهند.
سختافزار
ما نیاز به سختافزار با کارایی بالا برای پاسخگویی به نیازهای محاسباتی آموزش مدلهای در مقیاس بزرگ داریم. علاوه بر اندازه و مقیاس، بسیاری از تنظیمات و ویژگیهای سختافزاری باید به بهترین نحو برای GenAI بهینهسازی شوند. با توجه به طولانی بودن زمان توسعه سختافزار، ما مجبور بودیم از سختافزار موجود بهرهبرداری کنیم. در این راستا ما به بررسی جنبههای مختلفی مانند توان، ظرفیت و سرعت حافظه HBM، و ورودی/خروجی پرداختیم.
ما همچنین با تغییر در پلتفرم Grand Teton که با استفاده از پردازنده های NVIDIA H100 توسعه یافته بود، تغییراتی ایجاد کردیم. مصرف برق GPUها را به ۷۰۰ وات افزایش دادیم و از فناوری جدیدتر HBM3 در کارتهای گرافیک استفاده کردیم. با توجه به اینکه زمان کافی برای تغییر زیرساخت خنککننده نداشتیم، مجبور بودیم در محیطی با خنککننده هوا باقی بمانیم.
طرحهای مکانیکی و حرارتی باید تغییر میکرد تا این استفاده از این زیرساخت پردازشی جدید ممکن شود. این موضوع منجر به چرخه اعتبارسنجی برای پشتیبانی از استقرار در مقیاس بزرگ شد.
تمام این تغییرات مرتبط با سختافزار چالشبرانگیز بودند زیرا ما باید راهحلی پیدا میکردیم که با توجه به محدودیتهای منابع موجود کار انجام شود. آن هم با آزادی اندک در متغیر ها و جداول زمانی فشرده برای اعمال تغییرات.
استقرار در مراکز داده
پس از انتخاب GPU و سیستم، قرار دادن آنها در مرکز داده برای استفاده بهینه از منابع (توان، خنککننده، شبکه و غیره) نیاز به بررسی دوباره موازنههایی دارد که برای سایر نوعهای بارکاری انجام شدهاند. زیرساخت توان و خنککننده مرکز داده به سرعت (یا به سادگی) قابل تغییر نیست و ما باید یک طرح بهینه پیدا کنیم که حداکثر توان محاسباتی را درون یک سالن داده فراهم کند. این نیاز به جابهجایی سرویسهای پشتیبانی مانند خوانندگان از سالن داده و استفاده از حداکثر تعداد ممکن از سرورهای مبتنی بر GPU دارد تا قدرت و قابلیت شبکه را برای دستیابی به بالاترین تراکم محاسباتی با بزرگترین خوشه شبکه به حداکثر برسانیم.
قابلیت اطمینان
ما باید برنامهریزی کنیم تا خرابیها را شناسایی و رفع کنیم تا زمان خرابی سختافزاری به حداقل برسد. تعداد خرابیها با بزرگ شدن خوشه پردازشی افزایش مییابد.داشتن وظیفهای که تمامی خوشه را در بر بگیرد، نیازمند داشتن ظرفیت آماده کافی برای شروع مجدد وظیفه به محض امکان است. علاوه بر این، ما خرابیها را مانیتور میکنیم و گاهی اوقات میتوانیم اقدامهای پیشگیرانه برای کاهش زمان خرابی انجام دهیم.
برخی از رایجترین حالتهای خرابی که مشاهده کردهایم عبارتند از:
- افتادگی GPUها: در این حالت، GPUها توسط میزبان بر روی PCIe شناسایی نمیشوند. دلایل متعددی برای این نوع خرابی وجود دارد، اما این وضعیت بیشتر در اوایل عمر سرور دیده میشود و با گذشت زمان کمتر میشود.
- خطاهای تصحیحناپذیر DRAM و SRAM: خطاهای تصحیحناپذیر در حافظهها رایج هستند و ما این خطاها را نظارت کرده و مکرراً به شناسایی قطعات خراب میپردازیم. آنها را با آستانههای موجود مقایسه میکنیم و زمانی که نرخ خطاها از آستانههای تعیین شده توسط فروشنده عبور کند، اقدامات بازگشت کالا (RMA) را آغاز میکنیم.
- کابلهای شبکه سختافزار: در دسته کلی سرورهای غیرقابل دسترس، این خرابیها نیز بیشتر در اوایل عمر سرور مشاهده میشوند.
شبکه
آموزش مدلهای در مقیاس بزرگ نیازمند انتقال سریع حجم وسیعی از دادهها بین GPUها است. این نیازمند زیرساخت شبکهی قوی و پرسرعت و همچنین پروتکلها و الگوریتمهای انتقال داده کارآمد است.
دو گزینه اصلی در صنعت وجود دارد که این نیازها را برآورده میکنند: شبکه RoCE و InfiniBand. هر دو این گزینهها دارای مزایا و معایب خود بودند. از یک سو، متا در چهار سال گذشته خوشههای RoCE را ساخته بود، اما بزرگترین این خوشهها فقط از ۴ هزار GPU پشتیبانی میکرد. ما به خوشههای RoCE به مراتب بزرگتر نیاز داشتیم.
از سوی دیگر، متا خوشههای تحقیقاتی با InfiniBand ساخته بود که تا ۱۶ هزار GPU را پشتیبانی میکرد. با این حال، این خوشهها به طور کامل با محیط تولید متا یکپارچه نشده بودند و برای نسل جدیدی از GPUها و شبکهها ساخته نشده بودند. این مسئله تصمیمگیری درباره اینکه از کدام فناوری استفاده کنیم را دشوار میکرد.
بنابراین ما تصمیم گرفتیم زیرساخت های مبتنی بر هر دو نوع را بسازیم. دو خوشه ۲۴ هزار GPU، یکی با RoCE و دیگری با InfiniBand. هدف ما ساختن و یادگیری از تجربه عملیاتی بود. این یادگیریها جهتگیری آیندهی شبکههای GenAI را تعیین خواهند کرد.
ما خوشه RoCE را برای ساخت و آماده سازی سریع بهینهسازی کردیم و خوشه InfiniBand را برای پهنایباند بیشتر شبکه. ما از هر دو خوشه InfiniBand و RoCE برای آموزش Llama 3 استفاده کردیم، با این تفاوت که خوشه RoCE برای آموزش بزرگترین مدل بکار گرفته شد. علیرغم تفاوتهای فناوری شبکهای بین این خوشهها، ما توانستیم هر دو را تنظیم کنیم تا عملکرد معادل برای این بارهای کاری بزرگ GenAI ارائه دهند.
ما سه جنبه از کل پشته را بهینهسازی کردیم تا ارتباطات شبکه برای مدلهای GenAI در هر دو خوشه بهینه باشد:
- ما الگوهای ارتباطی ناشی از موازیسازی مدل، داده و خطلوله را به لایههای مختلف توپولوژی شبکه اختصاص دادیم تا قابلیتهای شبکه به طور مؤثر بهرهبرداری شود.
- ما الگوهای ارتباط جمعی را با آگاهی از توپولوژی شبکه پیادهسازی کردیم تا حساسیت کمتری به تأخیر داشته باشند. این کار را با تغییر پیادهسازی پیشفرض ارتباط جمعی به الگوریتمهای سفارشی مانند دو برابر کردن یا نصف کردن بازگشتی بهجای الگوریتمهای متداول مانند حلقهها انجام دادیم.
- مشابه کارهای رتبهبندی، کارهای GenAI جریانهای بزرگی تولید میکنند که توزیع ترافیک را در تمام مسیرهای ممکن شبکه دشوار میکند. این امر ما را مجبور کرد تا بیشتر در بارگذاری متوازن و مسیریابی شبکه سرمایهگذاری کنیم تا توزیع بهینه ترافیک بر روی منابع شبکه را به دست آوریم.
ما در عمق درباره تکنیکهای بارگذاری متوازن RoCE خود در Networking @Scale 2023 صحبت کردیم.
ذخیرهسازی
ما به راهحلهای مؤثر ذخیرهسازی داده نیاز داریم تا حجم وسیعی از دادهها که در آموزش مدلها استفاده میشود را ذخیره کنیم. این نیازمند سرمایهگذاری در تکنولوژیهای ذخیرهسازی با ظرفیت بالا و سرعت بالا و توسعه راهحلهای جدید ذخیرهسازی داده برای بارهای کاری خاص است.
نگاه به آینده
در چند سال آینده، ما با صدها هزار GPU کار خواهیم کرد، حجم دادههای حتی بزرگتری را مدیریت خواهیم کرد، و با فاصلهها و تأخیرهای طولانیتر مواجه خواهیم بود. ما به پذیرفتن فناوریهای جدید سختافزاری—از جمله معماریهای جدید GPU—و تکامل زیرساخت خود خواهیم پرداخت.
این چالشها ما را مجبور خواهند کرد که به نوآوری و تطبیق بپردازیم به طرقی که هنوز نمیتوانیم به طور کامل پیشبینی کنیم. اما یک چیز قطعی است: ما فقط در آغاز این مسیر هستیم. همانطور که به پیمایش در چشمانداز در حال تحول هوش مصنوعی ادامه میدهیم، متعهد به گسترش مرزهای ممکن باقی خواهیم ماند.