العودة

PyTorch 2.15 يعيد كتابة خلفية NCCL لتحسين استعادة أعطال وحدات GPU
SiTech AI Team2 دقيقة قراءة

PyTorch 2.15 يعيد كتابة خلفية NCCL لتحسين استعادة أعطال وحدات GPU

يتضمن PyTorch 2.15 خلفية مكتوبة من جديد لمكتبة NCCL من Nvidia، بهدف تحسين تشخيص الأعطال واستعادتها عندما تعمل وحدات GPU معاً في مهام تدريب كبيرة للذكاء الاصطناعي.

يتضمن PyTorch 2.15 خلفية مكتوبة من جديد لمكتبة NCCL من Nvidia، صُممت لتحسين تشخيص الأعطال والتعافي منها عندما تعمل وحدات GPU معًا. وتأتي الإصدارة بميزات أخرى، فيما يواصل مبتكرو البرنامج نقله من أداة للباحثين إلى قلب العمل الإنتاجي في الذكاء الاصطناعي. وتألف التحديث من 3,117 كوميت من 583 مساهمًا.

إعادة كتابة خلفية NCCL

كانت الخلفية السابقة لـ PyTorch لمكتبة NCCL، وتُسمى ProcessGroupNCCL، قادرة على إنشاء عشرات المُراسِلات لكل مجموعة عمليات، ما أدى إلى حالات جمود متقطعة وأداء غير متوقع. وقال Tristan Rice، مطور أساسي في PyTorch ومهندس برمجيات في Meta متخصص في الحوسبة الموزعة، في بث مباشر على YouTube يوم الخميس، إن واجهة مكتبة الشبكات احتاجت إلى إعادة كتابة لأنها غارقة في الدين التقني. وتعتمد الخلفية الجديدة قاعدة صارمة: مُراسِل واحد فقط لكل مجموعة عمليات عند التهيئة، وهو ما يلغي افتراضيًا التداخل بين المُراسِلات وتعقيداته؛ وعلى البرامج التي تحتاج إلى توازٍ إرسال مجموعات عمليات إضافية.

وتتعامل المكتبة المحدّثة مع الوحدات المتأخرة بفضل تهيئة أسهل: إذا تعطّل GPU أو عمل ببطء، استطاع منسّق خارجي استبعاده وتعيين بديل عنه. ويسجّل «مسجّل الطيران» العمليات في لقطات تُفحص بعد العطل، بدلًا من الرسالة العامة السابقة عند توقف العنقود بمهلة أو جمود. وأشار رايس إلى أن خلفية NCCL المنظّفة تمنح المطورين صفحة بيضاء تسهّل إضافة الميزات.

لماذا NCCL مهم

NCCL، وتُنطق Nickel، تمنح PyTorch بدائيات اتصال بين وحدات GPU داخل عقدة واحدة وبين عقد العنقود، وهو أمر حيوي لتشغيل الاستدلال على الشبكات العصبية الكبيرة ولبناء نماذج اللغة الكبيرة وصيانتها. وعلى العمال أن يتبادلوا المُوترات والمتدرجات والتفعيلات والأوزان باستمرار، فيما تستخدم NCCL مسارات اتصال محسّنة مع تقليل حمل CPU مقارنة بالشبكات المعتمدة على TCP.

أصدرت Nvidia مكتبة NCCL أول مرة في SC15 كمسرّع عام الغرض، وتبنّاها فريق Facebook عند بناء PyTorch عام 2016 سعيًا إلى نسخة بلغة Python من مكتبة Torch لتعلم الآلة المكتوبة بـ Lua. وقال Will Stewart، الشريك المؤسس لمزوّد برمجيات الذكاء الاصطناعي Northflank، في تدوينة: «كل مختبر ML كبير (OpenAI وDeepMind وMeta وNvidia) يستخدم PyTorch، وهو يشغّل كل شيء من نماذج الانتشار والنماذج اللغوية الكبيرة إلى أنظمة التوصية والروبوتات. وهذا الانتشار الواسع ليس مصادفة».

ميزات 2.15 الأخرى وإطلاقها

وتشمل الميزات الأخرى واجهة transport API بلغة Python لنقل البيانات أحادي الاتجاه بشكل غير متزامن، وهي مناسبة لمهام التدريب التي تُزامَن فيها الأوزان بين المدرّبات والمولّدات، إضافة إلى تحسينات المعالجة المتوازية لأجهزة Apple ودعم وحدات GPU من الجيل التالي Blackwell. ويبقى ProcessGroupNCCL القديم في حزمة 2.15 كخيار للتراجع، وإذا عملت الخلفية الجديدة كما هو متوقع فستُزال النسخة الأقدم في إصدارة 2.16 المقررة أوائل العام المقبل.

المصادر: The Register

SiTech

SiTech — تطوير ويب مدعوم بالذكاء الاصطناعي

نبني مواقع سريعة وعصرية وندمج الذكاء الاصطناعي في سير عمل الشركات. لديك مشروع أو سؤال؟ يسعدنا مساعدتك.