پایتورچ ۲.۱۵ مشکل «یک پردازنده گرافیکی خراب» را حل میکند
مدیران یادگیری ماشین باخبر خواهند شد که خرابی تنها یک واحد پردازش گرافیکی (GPU) ممکن است دیگر به معنای شروع مجدد کل فرآیند آموزش نباشد. آخرین نسخه ۲.۱۵ پایتورچ شامل یک بخش پشتیبان بازنویسیشده برای کتابخانه ارتباطات جمعی انویدیا (NCCL) است که برای بهبود عیبیابی و بازیابی هنگام کارکرد همزمان پردازندههای گرافیکی طراحی شده است.
این ویژگی جدید نشان میدهد که سازندگان آن چگونه به تکامل نرمافزار ادامه میدهند تا آن را از ابزاری برای پژوهشگران به سنگ بنای کارهای تولیدی هوش مصنوعی تبدیل کنند.
تریستان رایس، توسعهدهنده اصلی پایتورچ و مهندس نرمافزار متا با تخصص در رایانش توزیعشده، روز پنجشنبه در یک پخش زنده در یوتیوب گفت که رابط کاربری کتابخانه شبکه در پایتورچ نیازمند بازنویسی بود، چرا که زیر بار انباشتی از بدهیهای فنی غرق شده بود.
رابط NCCL که «نیکل» تلفظ میشود و مخفف کتابخانه ارتباطات جمعی انویدیا است، مجموعهای از توابع اولیه ارتباطی بین پردازندههای گرافیکی را برای پایتورچ فراهم میکند. این امر به پردازندههای گرافیکی اجازه میدهد تا در یک گره واحد یا در خوشههای چندگرهای با یکدیگر ارتباط برقرار کنند؛ قابلیتی که برای اجرای استنتاج روی شبکههای عصبی بزرگ و سایر وظایف در ساخت و نگهداری مدلهای زبانی بزرگ حیاتی است.
رابط قدیمی NCCL بیش از حد آشفته بود
بخش پشتیبان قبلی پایتورچ برای NCCL که ProcessGroupNCCL نام داشت، میتوانست دهها ارتباطدهنده به ازای هر گروه پردازشی ایجاد کند که به بنبستهای مقطعی و عملکردهای غیرقابل پیشبینی منجر میشد.
نسخه جدید بخش پشتیبان NCCL با یک قانون سختگیرانه ارائه میشود: هر گروه پردازشی در طول مقداردهی اولیه تنها یک ارتباطدهنده دریافت میکند. به طور پیشفرض، این قانون تداخل بین ارتباطدهندههای متعدد و تمام پیچیدگیهای مربوط به آن را از بین میبرد. اگر برنامهای به موازیسازی نیاز داشته باشد، باید گروههای پردازشی بیشتری را اعزام کند.
کتابخانه بهروزرسانیشده همچنین با امکان پیکربندی مجدد آسانتر، پردازندههای کند یا عقبمانده را بهتر مدیریت میکند. اگر یک پردازنده گرافیکی دچار توقف ناگهانی شود یا به کُندی کار کند، یک ارکستراتور شخص ثالث میتواند آن را حذف کند
ggard و حتی میتوان یک کارگر جایگزین را اختصاص داد.
یک «ضبطگر پروازی» نیز اضافه شده است تا به مدیران ایده واضحتری از آنچه اشتباه رخ داده بدهد. پیشتر، اگر خوشهای از GPUها متوقف میشد — شاید بهدلیل زمانسنجی یا قفلزدایی — کاربر تنها پیغام عمومی دریافت میکرد. ضبطگر پروازی جدید تمام عملیات را در مجموعهای از اسنپشاتها ثبت میکند که پس از وقوع خطا قابل بررسی است.
ریس اشاره کرد که پشتیبان بهروز شده NCCL که بهنام ProcessGroupNCCL نیز شناخته میشود، بستر خالیای به توسعهدهندگان میدهد و افزودن ویژگیهای جدید را آسانتر میکند.
نسخهٔ قدیمی ProcessGroupNCCL بهعنوان بازگشت در بستهٔ ۲.۱۵ گنجانده شده است، اما اگر پشتیبان جدید NCCL همانطور که انتظار میرود کار کند، نسخهٔ قدیمی در انتشار ۲.۱۶ که برای اوایل سال آینده برنامهریزی شده، حذف خواهد شد.
منشأ Nvidia
چرا، ممکن است بپرسید، یک چارچوب یادگیری ماشین به کتابخانهٔ ارتباطی تخصصی نیاز دارد؟ همانند NumPy، PyTorch از محاسبات عددی پشتیبانی میکند، اما ابزارهایی برای ساخت و آموزش شبکههای عصبی بر روی CPU و GPU نیز فراهم میآورد.
در این محیطها، کارگران باید بهطور مداوم دادههایی چون تنسورها، گرادیانها، فعالسازیها و وزنها را مبادله کنند. پشتهٔ شبکهای مبتنی بر TCP میتواند در خوشههای بزرگ GPU گلوگاه ایجاد کند، بنابراین NCCL از مسیرهای ارتباطی بهینهشده برای انتقال داده بین GPUها استفاده میکند و بار CPU را کاهش میدهد.
Nvidia ابتدا NCCL را در کنفرانس SC15 بهعنوان یک شتابدهندهٔ عمومی منتشر کرد و این کتابخانه توسط تیم Facebook هنگام ساختن PyTorch در سال ۲۰۱۶ بهکار گرفته شد. هدف آنها ساخت نسخهای مبتنی بر پایتون از کتابخانهٔ Torch مبتنی بر Lua بود.
ویِل استوارت، همبنیانگذار ارائهدهندهٔ نرمافزار هوش مصنوعی Northflank، در یک پست وبلاگی گفت: «هر آزمایشگاه بزرگ ML (OpenAI، DeepMind، Meta، Nvidia) از PyTorch استفاده میکند. این چارچوب تمام چیزها از مدلهای انتشار و LLMها تا سیستمهای توصیهگر و رباتیک را قدرت میدهد. این پذیرش گسترده اتفاقی نیست.»
More su
این بخش 3 از 3 است. فقط همین بخش را ترجمه کن.
--- پشتیبانی از GPUهای جدید اپل و نвидیا
ویژگیهای جدید دیگری در PyTorch 2.15 شامل یک API انتقال جدید پایتون برای جابجایی یکطرفه دادهها به صورت غیر همزمان – که برای کارهای آموزشی مناسب است، در این کارها وزنها بین آموزشدهندگان و تولیدکنندگان همگامسازی میشوند – نیز بههمراه بهبودهای پردازش موازی برای دستگاههای اپل و پشتیبانی از GPUهای نسل بعدی نвидیا (Blackwell) ارائه شده است.
در مجموع، این بهروزرسانی شامل 3,117 تغییرات توسط 583 مشارکتکننده بوده است. ®
تیم ترجمه تحریریه گیلانی جان - محمد رمضانی - سیده رقیه پوراشرفی