تشخيص أعطال أعباء العمل الموزعة للذكاء الاصطناعي باستخدام NVIDIA Attribution

يقوم برنامج NVIDIA Attribution بربط سجلات العمل والمقاييس وحالة جدولة المهام ضمن نطاق العبء العملي لإنتاج تشخيصات منظمة. يساعد هذا الأداة مفتوحة المصدر الفرق على تحديد الأسباب الجذرية مثل أعطال الشبكات، مع الحفاظ على الأعراض الناتجة كأدلة.

القراءة الصوتية غير متاحة في هذا المتصفح
تشخيص أعطال أعباء العمل الموزعة للذكاء الاصطناعي باستخدام NVIDIA Attribution

الوسوم

ملخص سريع

يقوم برنامج NVIDIA Attribution بربط سجلات العمل والمقاييس وحالة جدولة المهام ضمن نطاق العبء العملي لإنتاج تشخيصات منظمة. يساعد هذا الأداة مفتوحة المصدر الفرق على تحديد الأسباب الجذرية مثل أعطال الشبكات، مع الحفاظ على الأعراض الناتجة كأدلة.

تشخيص أعطال أعباء العمل الموزعة للذكاء الاصطناعي باستخدام NVIDIA Attribution

في مجال الذكاء الاصطناعي الموزع، يمكن لعطل واحد في الأجهزة أن يؤدي إلى سلسلة من الأعراض التي تخفي المصدر الحقيقي للفشل. عندما تواجه وحدة معالجة الرسومات عطلاً خطيراً، قد تبلغ الطبقات التالية عن أخطاء في الاتصال، وقد تتغير حالات المخطط، وقد تظهر آلاف رسائل السجلات في جميع أنحاء المجموعة. غالباً ما يشير الاستثناء المبلغ عنه إلى المكان الذي توقفت فيه أعباء العمل، وليس إلى المكان الذي بدأ فيه الفشل. تتعامل NVIDIA Attribution مع هذا التعقيد عن طريق ربط سجلات أعباء العمل والمقاييس وبيانات القياس عن بُعد وحالات المخطط لإنتاج تشخيص منظم.

وفقاً لشركة NVIDIA، يسمح هذا الأداة مفتوحة المصدر لفرق البنية التحتية بتحويل الأدلة الخام لأعباء العمل إلى تشخيص قابل لإعادة تنفيذه في مجموعاتهم الخاصة. يعمل النظام من خلال مكونين قابلين للنشر: خدمة Attribution، التي توفر واجهة برمجة التطبيقات REST لمحرك التخصيص الأساسي، وBlueprint لـ Attribution، وهو أداة مرجعية بلغة Python تربط مخططات المجموعة ومصادر بيانات القياس عن بُعد بالخدمة.

البنية التحتية والمكونات الأساسية

تم تصميم بنية NVIDIA Attribution لفصل المنطق الأساسي عن عمليات الدمج الخاصة بكل بيئة. تقوم خدمة Attribution بتحليل محاولة واحدة من أعباء العمل في كل مرة، مما يجعل التخصيص متاحاً عبر واجهة برمجة التطبيقات REST. أما Blueprint لـ Attribution، فهو يتولى عمليات الدمج الخاصة بكل مجموعة؛ حيث يكتشف أعباء العمل ويحدد سياق التنفيذ ويشغل أدوات جمع البيانات ويتصل بالخدمة ويثري النتائج ويكتبها في مصادر الإخراج، بما في ذلك لوحة تحكم للقراءة فقط.

يسمح هذا الفصل للفرق بتطبيق نفس منطق التخصيص على جميع المجموعات، مع تكييف المخططات وبيانات القياس عن بُعد وموصلات الإخراج لكل بيئة. يأتي Blueprint مع موصلات لسياق التنفيذ لبرامج Slurm وKueue ومدخلات ثابتة، بالإضافة إلى موصلات للسجلات والمقاييس لأدوات Loki والملفات المحلية وسجلات pods في Kubernetes ومقاييس PromQL.

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

عملية تحديد الأسباب ذات المراحل الأربع

تتبع عملية تحديد الأسباب سلسلة عمل مكونة من أربع مراحل محددة مسبقًا، وهي مصممة لفصل الأعراض الناتجة عن الأخطاء عن الحدث الذي تسبب فيها.

  1. تحديد نطاق العبء العملي: يحدد المخطط الأساسي محاولة تنفيذ العبء العملي من خلال معرفات المخطط أو من خلال نافذة تنفيذ صريحة وتخصيص العقد.
  2. جمع الملاحظات: تولد أدوات تسجيل البيانات ومؤشرات الأداء سجلات ملاحظات مرتبطة بنطاق العبء العملي، وذلك من سجلات التطبيقات وسجلات النظام ورسائل برامج تشغيل GPU وبرنامج Fabric Manager وتاريخ المخطط ومؤشرات العقد والشبكة.
  3. استخراج الأحداث وربطها: يستدعي الخدمة محرك تحديد الأسباب لتحديد الأحداث المهمة مثل معرفات GPU XIDs وأخطاء NCCL وتغييرات المخطط وشروط المؤشرات. تقوم قواعد محددة مسبقًا بتقييم توقيت هذه الأحداث وتفاعلها مع بعضها البعض.
  4. إرجاع نتيجة منظمة: يدمج المخطط الأساسي النتيجة مع نتيجة تنفيذ العبء العملي (terminalstate) والمجال المُحدد كسبب للخطأ (subdomain) والأعراض والعقد المتأثرة، بالإضافة إلى سجل يوضح نطاق عمل أدوات جمع البيانات والأخطاء.

تضمن هذه العملية أن تكون النتائج قابلة لإعادة إنتاجها وتخصيصها. كما يسمح الإخراج المنظم بالتكامل مع أنظمة الصحة والتعافي القائمة، مما يتيح للأنظمة الأخرى استخدام قيم terminalstate وsubdomain بدلاً من تحليل سجلات خاصة بكل منتج.

تفسير الأدلة: مثال عملي

لتوضيح كيفية عمل النظام، لنفترض وجود عبء عمل تدريبي مركب يتضمن عدة وحدات GPU، حيث تواجه إحدى وحدات GPU خطأً فادحًا. في هذا السيناريو، تحتوي سجلات التطبيق على ثلاثة أخطاء مختلفة من نوع NCCL، بينما تحتوي سجلات النظام في node-02 على معرف XID 149 مع كلمات خطأ تشير إلى مشكلة في سلامة إشارات NVLink.

مرحلة الاستخراج تُنفذ أولاً على سجلات المدخلات الخام، مما ينتج أحداثًا منظمة يتم معالجتها في المراحل اللاحقة. كما هو موضح في وثائق NVIDIA، فإن قاعدة EARLY-stage HandleXidBurstEvents تقرأ أدلة XID burst، وتفكك كلمات الخطأ، وتصدر حدث تنسيب لمشكلة في سلامة الإشارة على node-02.، وخلال هذه الخطوة، تظل أحداث NCCL الثلاثة دون تغيير.

بعد ذلك، يحول الإطار الأحداث إلى أعراض لكل عقدة ويقوم بعملية تنظيف لكل عقدة. في المثال المقدم، تحتفظ قاعدة Xid149AndNvlinkFiltering بعرض سلامة الإشارة وتخفض أهمية أعراض العقد الأخرى. كما تقوم قاعدة Gb200PriorityRootCause بتقليل مجموعة الأعراض النشطة على مستوى المهمة بشكل أكبر. وأخيرًا، ينتج تحديد النتائج تنسيبًا لفشل الأجهزة.

من الضروري ملاحظة أن النظام يحتفظ بتقارير NCCL كأدلة "مثيرة للاهتمام". على الرغم من تخفيض أهميتها لدعم التشخيص الأساسي، إلا أن مصادرها الأصلية تظل محفوظة حتى يمكن فحصها. يضمن هذا النهج أن يعكس التشخيص الصورة الكاملة: السبب الجذري هو فشل الأجهزة على node-02، بينما تظل أخطاء NCCL محفوظة كأعراض داعمة تشرح الطبيعة الموزعة للفشل.

التعامل مع عدم اليقين والجودة

عندما يتوافق أكثر من سبب مع الأدلة، قد يكون النطاق الفرعي غامضًا. يعكس نظام NVIDIA Attribution هذا عدم اليقين بشكل صحيح بدلاً من تحويل الأدلة غير الكاملة إلى تشخيص قاطع. تعتمد جودة التنسيب على جودة واكتمال البيانات القياسية الأساسية.

يميز النظام بشكل ضمني بين سياقات التدريب المسبق والتعديل الدقيق من خلال تحليل الأحداث والسجلات المحددة المرتبطة بحمل العمل. ومع ذلك، من المهم ملاحظة أن عرض نموذج ليس قياسًا مُثبتًا بشكل مستقل. يسجل التشخيص هذا الفرق، مما يضمن فهم الفرق لمستوى الثقة في التنسيب.

توسيع التنسيب إلى البنية التحتية

يتيح نموذج NVIDIA Attribution المفتوح المصدر لفرق البنية التحتية ترميز نمط الأعطال مرة واحدة وتطبيقه على جميع أعباء العمل والمجموعات. يمكن للمطورين إضافة قواعد لأنماط أعطال جديدة وتنفيذ وصلات لجداول توزيع العمل وخوادم القياس عن بُعد الخاصة بهم. نظرًا لأن الملحقات تستخدم نفس عقود ExecutionContext وObservation وresult، فإن التكاملات الجديدة تغذي نفس سلسلة التشخيص.

يهدف مخطط Attribution Blueprint إلى كونه تنفيذًا مرجعيًا يمكّن الممارسين من تخصيص الحل لبيئاتهم. يمكن تشغيل هذه المخططات بالقرب من مصادر بيانات كل مجموعة، إما باستخدام خدمة Attribution مخصصة لكل مخطط أو خدمة مشتركة لعدة مخططات. هناك مرونة في كيفية رغبة الفرق في تخصيص عملية النشر، مثل اختيار تكوين واحد إلى واحد أو واحد إلى كثير.

الخلاصة

يوفر NVIDIA Attribution إطارًا قويًا لتشخيص أعطال أعباء العمل الموزعة في مجال الذكاء الاصطناعي، من خلال التحول من تحليل الأحداث المعزولة على العقد إلى تحليل يركز على أعباء العمل. من خلال ربط السجلات والمقاييس وحالة جدول التوزيع باستخدام قواعد محددة، يحدد النظام الأسباب الجذرية مثل أعطال الأجهزة مع الحفاظ على الأعراض الناتجة كأدلة.

يمكن للفرق الاستفادة من خدمة Attribution ومخطط Blueprint للحصول على رؤية حول أنماط الأعطال، وتحديد نقاط إصلاحها، وتحسين مرونة بنيتهم التحتية للذكاء الاصطناعي. سواء كان التحليل يتعلق بأخطاء NCCL أو مشاكل في سلامة إشارات NVLink، فإن الأداة توفر مسارًا منظمًا من الأدلة الخام إلى تشخيص عملي.

المصدر: https://developer.nvidia.com/blog/diagnose-distributed-ai-workload-failures-with-nvidia-attribution

المصادر