هوش داده افلاطون
جستجوی عمودی و هوش مصنوعی

آموزش توزیع شده و مقیاس بندی کارآمد با کتابخانه های موازی و موازی داده Amazon SageMaker | خدمات وب آمازون

تاریخ:

پیشرفت فوق‌العاده‌ای در زمینه یادگیری عمیق توزیع‌شده برای مدل‌های زبان بزرگ (LLM) به‌ویژه پس از انتشار ChatGPT در دسامبر 2022 صورت گرفته است. اندازه LLM‌ها با میلیاردها یا حتی تریلیون‌ها پارامتر همچنان به رشد خود ادامه می‌دهند، و اغلب چنین نمی‌شوند. به دلیل محدودیت حافظه در یک دستگاه شتاب دهنده مانند GPU یا حتی یک گره واحد مانند ml.p5.32xlarge قرار می گیرد. مشتریانی که LLM ها را آموزش می دهند اغلب باید حجم کاری خود را بین صدها یا حتی هزاران GPU توزیع کنند. توانمندسازی آموزش در چنین مقیاسی همچنان یک چالش در آموزش توزیع شده است، و آموزش کارآمد در چنین سیستم بزرگی یکی دیگر از مشکلات به همان اندازه مهم است. در طول سال‌های گذشته، جامعه آموزشی توزیع‌شده، موازی‌سازی سه‌بعدی (موازی داده‌ها، موازی‌سازی خطوط لوله، و موازی‌سازی تانسور) و تکنیک‌های دیگر (مانند موازی‌سازی توالی و موازی‌سازی تخصصی) را برای رسیدگی به چنین چالش‌هایی معرفی کرده‌اند.

در دسامبر 2023، آمازون از انتشار آن خبر داد کتابخانه موازی مدل SageMaker 2.0 (SMP)، که به کارایی پیشرفته در آموزش مدل های بزرگ، همراه با SageMaker کتابخانه موازی داده ها را توزیع کرد (SMDDP). این نسخه یک به روز رسانی قابل توجه از 1.x است: SMP اکنون با PyTorch منبع باز یکپارچه شده است موازی داده کاملاً خرد شده API های (FSDP) که به شما امکان می دهد از یک رابط آشنا هنگام آموزش مدل های بزرگ استفاده کنید و با موتور ترانسفورماتور (TE)، باز کردن قفل تکنیک های موازی تانسور در کنار FSDP برای اولین بار. برای کسب اطلاعات بیشتر در مورد انتشار، مراجعه کنید کتابخانه موازی مدل Amazon SageMaker اکنون بارهای کاری PyTorch FSDP را تا 20٪ تسریع می کند..

در این پست به بررسی مزایای عملکردی می پردازیم آمازون SageMaker (از جمله SMP و SMDDP)، و اینکه چگونه می توانید از کتابخانه برای آموزش کارآمد مدل های بزرگ در SageMaker استفاده کنید. ما عملکرد SageMaker را با معیارهایی در خوشه‌های ml.p4d.24x بزرگ تا 128 نمونه نشان می‌دهیم، و FSDP دقت ترکیبی با bfloat16 را برای مدل Llama 2 نشان می‌دهد. ما با نمایش بازده‌های مقیاس‌گذاری نزدیک به خطی برای SageMaker شروع می‌کنیم، سپس مشارکت‌های هر ویژگی را برای توان عملیاتی بهینه تجزیه و تحلیل می‌کنیم و با آموزش کارآمد با طول‌های توالی مختلف تا 32,768 از طریق موازی‌سازی تانسور به پایان می‌رسانیم.

مقیاس بندی تقریباً خطی با SageMaker

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

در این بخش، عملکرد مقیاس بندی نزدیک به خطی SMP را نشان می دهیم. در اینجا ما مدل‌های Llama 2 را با اندازه‌های مختلف (پارامترهای 7B، 13B و 70B) با استفاده از طول توالی ثابت 4,096 آموزش می‌دهیم، پشتیبان SMDDP برای ارتباطات جمعی، TE فعال، اندازه دسته‌ای جهانی 4 میلیون، با 16 تا 128 گره p4d. . جدول زیر پیکربندی بهینه و عملکرد آموزشی ما را خلاصه می کند (مدل TFLOP در ثانیه).

اندازه مدل تعداد گره ها TFLOP* sdp* tp* تخلیه* بازده پوسته پوسته شدن
7B 16 136.76 32 1 N ٪۱۰۰
32 132.65 64 1 N ٪۱۰۰
64 125.31 64 1 N ٪۱۰۰
128 115.01 64 1 N ٪۱۰۰
13B 16 141.43 32 1 Y ٪۱۰۰
32 139.46 256 1 N ٪۱۰۰
64 132.17 128 1 N ٪۱۰۰
128 120.75 128 1 N ٪۱۰۰
70B 32 154.33 256 1 Y ٪۱۰۰
64 149.60 256 1 N ٪۱۰۰
128 136.52 64 2 N ٪۱۰۰

*در اندازه مدل داده شده، طول دنباله و تعداد گره‌ها، پس از بررسی ترکیب‌های مختلف sdp، tp و بارگذاری فعال‌سازی، توان عملیاتی و پیکربندی‌های بهینه جهانی را نشان می‌دهیم.

جدول پیشین اعداد بهینه توان عملیاتی را که به درجه موازی داده‌های خرد شده (sdp) (معمولاً از اشتراک‌گذاری ترکیبی FSDP به جای اشتراک‌گذاری کامل استفاده می‌شود، با جزئیات بیشتر در بخش بعدی)، درجه موازی تانسور (tp) و تغییرات مقدار تخلیه فعال‌سازی، خلاصه می‌کند. نشان دادن یک مقیاس تقریبا خطی برای SMP همراه با SMDDP. به عنوان مثال، با توجه به مدل Llama 2 با اندازه 7B و طول دنباله 4,096، به طور کلی بازده مقیاس 97.0٪، 91.6٪ و 84.1٪ (نسبت به 16 گره) در گره های 32، 64 و 128 به دست می آید. راندمان مقیاس بندی در اندازه های مختلف مدل پایدار است و با بزرگتر شدن اندازه مدل کمی افزایش می یابد.

SMP و SMDDP همچنین کارایی های مقیاس بندی مشابهی را برای سایر طول های دنباله مانند 2,048 و 8,192 نشان می دهند.

عملکرد کتابخانه موازی مدل SageMaker 2.0: Llama 2 70B

اندازه‌های مدل در طول سال‌های گذشته، همراه با به‌روزرسانی‌های مکرر عملکرد پیشرفته در جامعه LLM، به رشد خود ادامه داده‌اند. در این بخش، عملکرد SageMaker را برای مدل Llama 2 با استفاده از اندازه مدل ثابت 70B، طول توالی 4,096 و اندازه دسته جهانی 4 میلیون نشان می‌دهیم. برای مقایسه با پیکربندی و توان عملیاتی بهینه جهانی جدول قبلی (با SMDDP، معمولاً به اشتراک گذاری ترکیبی FSDP و TE)، جدول زیر به سایر خروجی های بهینه (به طور بالقوه با موازی تانسور) با مشخصات اضافی در باطن توزیع شده (NCCL و SMDDP) گسترش می یابد. ، استراتژی های اشتراک گذاری FSDP (شاردینگ کامل و اشتراک گذاری ترکیبی)، و فعال کردن یا غیرفعال کردن TE (پیش فرض).

اندازه مدل تعداد گره ها TFLOPS پیکربندی TFLOPs #3 بهبود TFLOP نسبت به خط پایه
. . اشتراک گذاری کامل NCCL: #0 اشتراک گذاری کامل SMDDP: #1 اشتراک گذاری ترکیبی SMDDP: #2 اشتراک گذاری ترکیبی SMDDP با TE: #3 sdp* tp* تخلیه* #0 → #1 #1 → #2 #2 → #3 #0 → #3
70B 32 150.82 149.90 150.05 154.33 256 1 Y -0.6٪ ٪۱۰۰ ٪۱۰۰ ٪۱۰۰
64 144.38 144.38 145.42 149.60 256 1 N ٪۱۰۰ ٪۱۰۰ ٪۱۰۰ ٪۱۰۰
128 68.53 103.06 130.66 136.52 64 2 N ٪۱۰۰ ٪۱۰۰ ٪۱۰۰ ٪۱۰۰

*در اندازه مدل داده شده، طول دنباله و تعداد گره‌ها، پس از بررسی ترکیب‌های مختلف sdp، tp، و بارگذاری فعال‌سازی، توان عملیاتی و پیکربندی بهینه جهانی را نشان می‌دهیم.

آخرین نسخه SMP و SMDDP از چندین ویژگی از جمله PyTorch FSDP بومی، شاردینگ هیبریدی گسترده و انعطاف‌پذیرتر، یکپارچه‌سازی موتور ترانسفورماتور، موازی‌سازی تانسور، و عملیات جمع‌آوری بهینه شده پشتیبانی می‌کند. برای درک بهتر اینکه SageMaker چگونه به آموزش های توزیع شده کارآمد برای LLM دست می یابد، مشارکت های افزایشی SMDDP و SMP زیر را بررسی می کنیم. ویژگی های اصلی:

  • بهبود SMDDP نسبت به NCCL با اشتراک گذاری کامل FSDP
  • جایگزینی اشتراک گذاری کامل FSDP با اشتراک گذاری ترکیبی، که هزینه های ارتباطی را برای بهبود توان عملیاتی کاهش می دهد.
  • افزایش بیشتر توان عملیاتی با TE، حتی زمانی که موازی سازی تانسور غیرفعال است
  • در تنظیمات منابع پایین‌تر، بارگذاری فعال‌سازی ممکن است بتواند آموزش‌هایی را فعال کند که در غیر این صورت به دلیل فشار بالای حافظه غیرممکن یا بسیار آهسته هستند.

اشتراک گذاری کامل FSDP: بهبود SMDDP نسبت به NCCL

همانطور که در جدول قبلی نشان داده شده است، زمانی که مدل‌ها به طور کامل با FSDP تقسیم می‌شوند، اگرچه خروجی‌های NCCL (TFLOPs #0) و SMDDP (TFLOPs #1) در 32 یا 64 گره قابل مقایسه هستند، پیشرفت عظیم 50.4٪ از NCCL به SMDDP وجود دارد. در 128 گره

در اندازه‌های مدل کوچک‌تر، ما پیشرفت‌های ثابت و قابل‌توجهی را با SMDDP نسبت به NCCL مشاهده می‌کنیم، که از اندازه‌های خوشه‌ای کوچک‌تر شروع می‌شود، زیرا SMDDP قادر است گلوگاه ارتباطی را به طور موثر کاهش دهد.

اشتراک گذاری هیبریدی FSDP برای کاهش هزینه های ارتباطی

در SMP 1.0 راه اندازی کردیم موازی سازی داده های خرد شده، یک تکنیک آموزشی توزیع شده که توسط آمازون در داخل طراحی شده است MiCS فن آوری. در SMP 2.0، ما اشتراک گذاری ترکیبی SMP را معرفی می کنیم، یک تکنیک اشتراک گذاری ترکیبی توسعه پذیر و انعطاف پذیرتر که به مدل ها اجازه می دهد به جای همه GPU های آموزشی، در میان زیرمجموعه ای از GPU ها تقسیم شوند، که این مورد برای اشتراک گذاری کامل FSDP است. برای مدل‌های با اندازه متوسط ​​که نیازی به تقسیم‌بندی در کل کلاستر ندارند تا محدودیت‌های حافظه هر GPU را برآورده کنند، مفید است. این منجر به این می شود که خوشه ها بیش از یک مدل مشابه داشته باشند و هر GPU با همتاهای کمتری در زمان اجرا ارتباط برقرار کند.

اشتراک‌گذاری ترکیبی SMP، اشتراک‌گذاری کارآمد مدل را در محدوده وسیع‌تری، از کوچک‌ترین درجه خرده‌گیری بدون مشکل حافظه تا اندازه کل خوشه (که برابر با اشتراک‌گذاری کامل است) ممکن می‌سازد.

شکل زیر وابستگی توان عملیاتی به sdp در tp = 1 را برای سادگی نشان می دهد. اگرچه لزوماً با مقدار tp بهینه برای NCCL یا SMDDP اشتراک گذاری کامل در جدول قبلی یکسان نیست، اعداد بسیار نزدیک هستند. این به وضوح ارزش تغییر از اشتراک گذاری کامل به اشتراک گذاری ترکیبی را در اندازه خوشه ای بزرگ از 128 گره تأیید می کند که برای هر دو NCCL و SMDDP قابل استفاده است. برای اندازه‌های مدل‌های کوچک‌تر، پیشرفت‌های قابل‌توجهی با شاردینگ ترکیبی از اندازه‌های خوشه کوچک‌تر شروع می‌شود و این تفاوت با اندازه خوشه افزایش می‌یابد.

بهبود با TE

TE برای سرعت بخشیدن به آموزش LLM در پردازنده های گرافیکی NVIDIA طراحی شده است. علیرغم عدم استفاده از FP8 به دلیل اینکه در نمونه های p4d پشتیبانی نمی شود، هنوز شاهد افزایش سرعت قابل توجهی با TE در p4d هستیم.

علاوه بر MiCS آموزش‌دیده با SMDDP، TE یک تقویت ثابت برای توان عملیاتی در تمام اندازه‌های خوشه ارائه می‌کند (تنها استثنا، اشتراک‌گذاری کامل در 128 گره است)، حتی زمانی که موازی تانسور غیرفعال است (درجه موازی تانسور 1 است).

برای اندازه‌های مدل کوچک‌تر یا طول‌های توالی مختلف، تقویت TE پایدار و غیر ضروری است، در محدوده تقریباً 3-7.6%.

بارگذاری فعال سازی در تنظیمات منابع کم

در تنظیمات منابع کم (با توجه به تعداد کمی از گره ها)، FSDP ممکن است فشار حافظه بالایی را تجربه کند (یا در بدترین حالت حتی حافظه را از دست می دهد) زمانی که چک پوینت فعال سازی فعال است. برای چنین سناریوهایی با تنگناهای حافظه، روشن کردن بارگذاری فعال سازی به طور بالقوه گزینه ای برای بهبود عملکرد است.

به عنوان مثال، همانطور که قبلاً دیدیم، اگرچه Llama 2 در اندازه مدل 13B و طول توالی 4,096 می تواند با حداقل 32 گره با چک پوینت فعال سازی و بدون بارگذاری فعال سازی به طور بهینه تمرین کند، اما در صورت محدود شدن به 16، بهترین توان عملیاتی را با بارگذاری فعال سازی به دست می آورد. گره ها

فعال کردن آموزش با دنباله های طولانی: موازی تانسور SMP

طول سکانس های طولانی تر برای مکالمات طولانی و زمینه مورد نظر است و در جامعه LLM توجه بیشتری را به خود جلب می کند. بنابراین، ما در جدول زیر، عملیات توالی طولانی مختلف را گزارش می کنیم. جدول توان عملیاتی بهینه را برای آموزش Llama 2 در SageMaker با طول توالی های مختلف از 2,048 تا 32,768 نشان می دهد. در طول توالی 32,768، آموزش FSDP بومی با 32 گره در اندازه دسته ای جهانی 4 میلیون غیر ممکن است.

. . . TFLOPS
اندازه مدل طول توالی تعداد گره ها FSDP و NCCL بومی SMP و SMDDP بهبود SMP
7B 2048 32 129.25 138.17 ٪۱۰۰
4096 32 124.38 132.65 ٪۱۰۰
8192 32 115.25 123.11 ٪۱۰۰
16384 32 100.73 109.11 ٪۱۰۰
32768 32 NA 82.87 .
13B 2048 32 137.75 144.28 ٪۱۰۰
4096 32 133.30 139.46 ٪۱۰۰
8192 32 125.04 130.08 ٪۱۰۰
16384 32 111.58 117.01 ٪۱۰۰
32768 32 NA 92.38 .
*: حداکثر . . . . ٪۱۰۰
*: میانه . . . . ٪۱۰۰

هنگامی که اندازه خوشه بزرگ است و یک اندازه دسته کلی ثابت داده می شود، برخی از آموزش های مدل ممکن است با PyTorch FSDP بومی غیرممکن باشد، بدون خط لوله داخلی یا پشتیبانی از موازی سازی تانسور. در جدول قبل، با توجه به اندازه دسته جهانی 4 میلیون، 32 گره، و طول توالی 32,768، اندازه دسته موثر در هر GPU 0.5 است (به عنوان مثال، tp = 2 با اندازه دسته 1)، که در غیر این صورت بدون معرفی غیر ممکن است. موازی تانسور

نتیجه

در این پست، آموزش کارآمد LLM با SMP و SMDDP را در نمونه‌های p4d نشان دادیم، و مشارکت‌هایی را به چندین ویژگی کلیدی نسبت می‌دهیم، مانند بهبود SMDDP نسبت به NCCL، اشتراک‌گذاری هیبریدی انعطاف‌پذیر FSDP به جای اشتراک‌گذاری کامل، ادغام TE، و امکان موازی‌سازی تانسور به نفع طول توالی طولانی پس از آزمایش در طیف گسترده‌ای از تنظیمات با مدل‌های مختلف، اندازه‌های مدل، و طول‌های دنباله‌ای مختلف، کارایی مقیاس‌گذاری نزدیک به خطی قوی، تا ۱۲۸ نمونه p128d در SageMaker را نشان می‌دهد. به طور خلاصه، SageMaker همچنان یک ابزار قدرتمند برای محققان و پزشکان LLM است.

برای کسب اطلاعات بیشتر به ادامه مطلب مراجعه نمایید کتابخانه موازی مدل SageMaker v2، یا با تیم SMP تماس بگیرید [ایمیل محافظت شده].

سپاسگزاریها

مایلیم از رابرت ون دوسن، بن اسنایدر، گوتام کومار و لوئیس کوینتلا برای بازخوردها و بحث های سازنده شان تشکر کنیم.


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

شیلا شیلا لیو یک SDE در آمازون SageMaker است. او در اوقات فراغت خود از مطالعه و ورزش در فضای باز لذت می برد.

سوهیت کودگوله یک مهندس توسعه نرم افزار با گروه هوش مصنوعی AWS است که بر روی چارچوب های یادگیری عمیق کار می کند. در اوقات فراغت خود از پیاده روی، مسافرت و آشپزی لذت می برد.

ویکتور ژو یک مهندس نرم افزار در یادگیری عمیق توزیع شده در خدمات وب آمازون است. او را می توان در حال لذت بردن از پیاده روی و بازی های رومیزی در اطراف منطقه خلیج SF یافت.

دریا کاودار به عنوان مهندس نرم افزار در AWS کار می کند. علایق او شامل یادگیری عمیق و بهینه سازی آموزش توزیع شده است.

تنگ خو یک مهندس توسعه نرم افزار در گروه آموزش توزیع شده در AWS AI است. او از خواندن لذت می برد.

نقطه_img

جدیدترین اطلاعات

نقطه_img

چت با ما

سلام! چگونه می توانم به شما کمک کنم؟