Floating-Point Neural Network Verification at the Software Level
تقدم هذه الورقة NeuroCodeBench 2.0، وهو معيار مرجعي قائم على لغة C للتحقق من عمليات تنفيذ الشبكات العصبية ذات الفاصلة العائمة، مما يتيح أول تقييم صارم لأدوات التحقق البرمجية الحديثة ويوضح حدودها الحالية مع تسليط الضوء على التأثير الإيجابي للمعيار المرجعي على تطوير الأدوات.
المؤلفون الأصليون:Edoardo Manino, Bruno Farias, Rafael Sá Menezes, Fedor Shmarov, Lucas C. Cordeiro
تخيل أنك تقوم ببناء عقل لآلة، شبكة عصبية فائقة الذكاء، مصممة لقيادة سيارة أو إقلاع طائرة. في عالم الرياضيات والنظرية، تكون هذه العقول مثالية؛ فهي تتبع قواعد سلسة ومستمرة مثل تدفق المياه في النهر. لكن في العالم الحقيقي، لا تتحدث الحواسيب "الرياضيات المثالية"، بل تتحدث لغة "النقطة العائمة"، وهي لغة رقمية متقطعة حيث تُقطع الأرقام إلى قطع صغيرة ومنتهية، تماماً مثل محاولة رسم غروب شمس ناعم باستخدام لوحة ألوان محدودة من قطع الليغو فقط. هذا التقطيع الضئيل يمكن أن يسبب خللاً غريباً: فالدالة التي يجب أن تستمر في الصعود دائماً قد تهبط فجأة بسبب خطأ في التقريب، تماماً مثل الدرج الذي يبدو ناعماً من بعيد، ولكن يحتوي على درجة مخفية وخطيرة إذا نظرت إليه عن كثب.
الآن، تخيل أنك تريد إثبات أن هذا العقل الآلي آمن قبل أن تسمح له بالقيادة. يمكنك اختباره مليون مرة، لكن ذلك يشبه فحص جسر عبر قيادة السيارات فوقه مليون مرة؛ فقد تفوتك تلك الشقوق الوحيدة التي تسبب الانهيار. بدلاً من ذلك، أنت تريد "محقِّقاً رسمياً" — محققاً فائق الذكاء يثبت رياضياً أن الدماغ لن يرتكب خطأً أبداً، مهما كان المدخل الذي يتلقاه. السؤال الكبير هو: هل تستطيع هذه المحققين الرقميين التعامل مع الواقع الفوضوي والمتقطع لكيفية برمجة الشبكات العصبية فعلياً في البرمجيات، أم أنهم يعملون فقط على النسخ النظرية المثالية؟
تلقي هذه الورقة نظرة صريحة وجادة على ثمانية من أفضل أدوات التحقق من البرمجيات المؤتمتة المتاحة اليوم. قام المؤلفون ببناء ساحة اختبار ضخمة تسمى NeuroCodeBench 2.0، والتي تحتوي على 912 لغزاً مختلفاً، تتراوح من الدوال الرياضية البسيطة إلى شبكات عصبية كاملة تصل معلماتها إلى 170,000 معلمة. لقد غدوا هذه الألغاز على أدوات التحقق ليروا ما إذا كانت هذه الأدوات قادرة على تحديد ما إذا كان الكود آمناً أم خطيراً بشكل صحيح. كانت النتائج بمثابة مواجهة للواقع: الأدوات تعاني حالياً. فهي غالباً ما تتعثر، أو تنفد منها الوقت، أو الأسوأ من ذلك، تعلن بثقة أن الكود غير الآمن "آمن" أو الكود الآمن "غير آمن". اتضح أن هذه الأدوات رائعة في فحص الكود البسيط، لكنها ليست مستعدة تماماً للتعامل مع واقع النقطة العائمة المعقد في الشبكات العصبية الحديثة. ومع ذلك، فإن القصة ليست سيئة تماماً؛ إذ توضح الورقة أن مجرد امتلاك معيار مرجعي صارم كهذا قد ساعد بالفعل المطورين في إصلاح العديد من أدواتهم، مما يشير إلى أنه مع المزيد من الممارسة والأدوات الأفضل، قد نتمكن يوماً ما من جعل هؤلاء المحققين الرقميين يواكبون الركب.
ملخص تقني: التحقق من الشبكات العصبية ذات الفاصلة العائمة على مستوى البرمجيات
بيان المشكلة
بينما تقدم عمليات التحقق من الشبكات العصبية ضمانات رسمية للنماذج المثالية ذات القيم الحقيقية بشكل كبير، إلا أن هذه النهج غالبًا ما تفشل في مراعاة تفاصيل التنفيذ المحددة للأنظمة المنشورة. في التطبيقات الحرجة للسلامة (مثل نظم التحكم السيبراني الفيزيائي CPS، وإنترنت الأشياء IoT)، يتم تنفيذ الشبكات العصبية باستخدام حسابات الفاصلة العائمة ذات الدقة المحدودة (عادةً 32 بت وفق معيار IEEE 754) وتعتمد على مكتبات رياضية قياسية (مثل math.h). هذه التفاصيل منخفضة المستوى تسبب أخطاء تقريب وسلوكيات غير ترابطية يمكن أن تبطل براهين السلامة المستمدة من نماذج ذات دقة لانهائية. على سبيل المثال، يوضح البحث أن دالة التنشيط SoftSign، التي تكون غير متناقصة في الحسابات الحقيقية، تفقد هذه الخاصية عند تنفيذها باستخدام الفاصلة العائمة 32 بت.
أدت المحاولات الحالية للتحقق من كود الشبكات العصبية على مستوى البرمجيات إلى نتائج مختلطة. فغالبًا ما تواجه أدوات التحقق من البرمجيات صعوبة في التوسع لتشمل نماذج الشبكات العصبية الكبيرة، مما يدفع الممارسين للعودة إلى نماذج غير دقيقة (ذات دقة لانهائية) أو التخلي عن التحقق لصالح الاختبار. علاوة على ذلك، لوحظ أن الأدوات الحالية تعطي نتائج غير صحيحة في حالات معينة، مما يثير الشك في موثوقيتها كأدوات للحكم على السلامة (safety oracles) للتنفيذات ذات الفاصلة العائمة. هناك نقص في التقييم الصارم والمعياري لأدوات التحقق من البرمجيات المؤتمتة، وتحديدًا فيما يتعلق بكود الشبكات العصبية.
المنهجية
لمعالجة هذه الفجوات، أجرى المؤلفون تقييمًا صارمًا لثمانية من أحدث أدوات التحقق من البرمجيات المؤتمتة على كود الشبكات العصبية. تضمنت المنهجية ثلاثة مكونات رئيسية:
بناء المعيار المرجعي (NeuroCodeBench 2.0): أنشأ المؤلفون معيارًا مرجعيًا شاملاً يتكون من 912 مثالاً للتحقق. يغطي هذا المعيار:
الدوال الرياضية: 58 حالة لاختبار الخصائص (مثل الرتابة، الدورية، والحدود الخطية) لدوال math.h القياسية.
دوال التنشيط: 57 حالة لاختبار خصائص التنشيط الشائعة (مثل ReLU، وTanH، وSoftSign، وGELU).
الشبكات العصبية الكاملة: 711 حالة تشمل شبكات Hopfield، وشبكات ReLU المشفرة بـ SAT، وشبكات التقريب متعدد الحدود، وشبكات محدودة ليبشيتز (Lipschitz-bounded)، وشبكات مشتقة من VNN-COMP (مهام كثافة الاحتمالية والتعلم المعزز).
الحقيقة الأرضية (Ground Truth): تم تصنيف كل حالة مسبقًا على أنها "آمنة" أو "غير آمنة" باستخدام تقنيات مثل الاختبار بالقوة الغاشمة (brute-force testing)، أو البناء الاستقصائي، أو توليد الأمثلة المضادة، مما يضمن وجود حكم صحيح معروف للتقييم.
التقييز والتوافق: لضمان المقارنة العادلة وقابلية التكرار، قام المؤلفون بتحويل جميع حالات المعيار المرجعي إلى التنسيق المستخدم في المسابقة الدولية للتحقق من البرمجيات (SV-COMP). تضمن ذلك إنشاء ملفات C قائمة بذاتها تتضمن تنفيذ النموذج، وخصائص السلامة، والتبعيات اللازمة. استخدم سير العمل إطار عمل BenchExec لإدارة حدود الموارد والتنفيذ، مما يضمن تشغيل الأدوات بنفس الإعدادات المستخدمة في نسخة 2024 من SV-COMP.
التقييم التجريبي: قيمت الدراسة ثماني أدوات (2LS، CBMC، CPAChecker، DIVINE، ESBMC، PeSCo، Pinaka، UAutomizer) تحت شرطين:
الأساسي (Baseline): تشغيل أدوات التحقق على حالات المعيار المرجعي العادية.
النماذج التشغيلية (Operational Models): توفير تنفيذات C صريحة لمكتبة math.h (باستخدام MUSL وCORE-MATH) لمعرفة ما إذا كان توفير تعريفات الدوال يحسن نتائج التحقق.
التحليل التاريخي: حلل المؤلفون أيضًا الأداء التاريخي لأداة واحدة (ESBMC) من عام 2018 إلى 2026 لمراقبة الاتجاهات في هذا المجال.
المساهمات الرئيسية
NeuroCodeBench 2.0: إنشاء معيار مرجعي واسع النطاق ذو حقيقة أرضية مصمم خصيصًا للتحقق من مستوى البرمجيات للشبكات العصبية ذات الفاصلة العائمة. يتضمن 912 حالة تتراوح من الدوال البسيطة إلى الشبكات الكاملة التي تصل إلى 170 ألف معلمة.
التكامل مع SV-COMP: تم تنسيق المعيار المرجعي ليكون متوافقًا مع بنية SV-COMP، مما يجعله جزءًا من مجموعة المعايير الرسمية لنسخة 2026. وهذا يسمح بالتقييم الآلي والقابل للتكرار باستخدام إعدادات الأدوات القياسية.
التقييم الصارم: أول درسة منهجية تقارن بين ثمانية من أحدث أدوات التحقق من البرمجيات على كود الشبكات العصبية، مما يكشف عن تباين كبير في الأداء والصحة.
تحليل النماذج التشغيلية: استقصاء ما إذا كان توفير تنفيذات صريحة للمكتبات الرياضية (MUSL، CORE-MATH) يحسن أداء أدوات التحقق، ووجد أن التأثير يعتمد على الأداة وغالبًا ما يكون ضئيلاً أو سلبيًا.
النتائج
أسفر التقييم عن عدة نتائج حاسمة فيما يتعلق بالوضع الراهن للتحقق من البرمجيات للشبكات العصبية:
انخفاض الصحة والقابلية للتوسع: وُصفت النتائج بأنها "مخيبة للآمال نوعًا ما". أظهرت الأدوات تباينًا كبيرًا عبر المعيار المرجعي، حيث نجحت أفضل أداة (CBMC) في حل 371 من أصل 912 حالة، بينما حلت الأدوات الأخرى عددًا أقل بكثير. تباين متوسط معدل الحل عبر الفئات، حيث سجلت بعض الفئات المعقدة (مثل التعلم المعزز) معدلات حل منخفضة للغاية بلغت 3%. فشلت معظم الأدوات في التحقق من أكثر من طبقة عصبية واحدة في المرة الواحدة.
الأحكام غير الصحيحة: أنتجت العديد من الأدوات معدلًا مرتفعًا من النتائج غير الصحيحة. على سبيل المثال، أنتجت CBMC ما يقرب من 25% من الأحكام القطعية غير الصحيحة (معظمها نتائج إيجابية كاذبة)، كما أظهرت Pinaka وUAutomizer أيضًا معدلات خطأ كبيرة. كانت ESBMC هي الأداة الوحيدة التي لم تنتج أي أحكام غير صحيحة من بين الأدوات التي حلت عددًا كبيرًا من الحالات.
تأثير النماذج التشغيلية: لم يؤدِ توفير تنفيذات صريحة لـ math.h (MUSL أو CORE-MATH) إلى أي تحسن ملحوء بشكل عام. بالنسبة لبعض الأدوات (CBMC، ESBMC، Pinaka)، انخفض الأداء فعليًا بسبب التعقيد المضاف للتحقق من كود المكتبة. وبالنسبة لأدوات أخرى (CPAChecker، PeSCo)، زاد عدد الحالات التي تم حلها، لكن ذلك جاء غالبًا مع زيادة في الأحكام غير الصحيحة.
حدود القابلية للتوسع: واجهت الأدوات صعوبة كبيرة مع الشبكات العصبية الكاملة. انخفض معدل الحل إلى خانة الآحاد للفئات المعقدة مثل التعلم المعزز وكثافة الاحتمالية. حتى بالنسبة للشبكات الاصطناعية، لم تستطع أدوات مثل ESBMC حل سوى الحالات ذات العرض الصغير جدًا (مثل عرض 4) قبل انتهاء الوقت المخصص.
التقدم التاريخي: أظهر تحليل ESMC من 2018 إلى 2026 تحسنًا غير رتيب ولكنه ثابت بشكل عام. تم تتبع طفرة ملحوظة في الأحكام غير الصحيحة في 2022-2023 لخطأ في تنفيذ خوارزمية k-induction، والذي تم إصلاحه بعد إصدار NeuroCodeBench 1.0. أدى تقديم NeuroCodeBench 1.0 في عام 2024 إلى تقليل الأحكام غير الصحيحة بشكل جذري في المجتمع، رغم أن تأثير NeuroCodeBench 2.0 (أواخر 2025) كان أكثر اعتدالًا.
الأهمية والادعاءات
يزعم البحث أنه بينما يعد التحقق من الشبكات العصبية على مستوى البرمجيات أمرًا ممكنًا من الناحية النظرية، فإن أدوات التحقق من البرمجيات الحالية ليست جاهزة بعد للتعامل مع هذه المهمة بفعالية. تسلط الدراسة الضوء على أن الأدوات الحالية لا يمكنها التحقق بشكل موثوق من أكثر من طبقة واحدة، وغالبًا ما تعطي نتائج غير صحيحة، وتفتقر إلى الدعم الكامل للمكتبات الرياضية القياسية.
يجادل المؤلفون بأن عملهم يعد بمثابة "واقع مرير" (reality check) لمجتمع التحقق. فمن خلال توفير معيار مرجعي صارم مع حقيقة أرضية معروفة، يوضحون أن الفجوة بين التحقق المثالي وتنفيذ البرمجيات لا تزال واسعة جدًا بحيث لا تستطيع الأدوات الحالية جسرها دون تحسينات كبيرة. ويرى البحث أن إصدار NeuroCodeBench قد حفز التقدم بالفعل، كما هو واضح من انخفاض الأحكام غير الصحيحة بعد إصداره الأول. ومع ذلك، يخلص المؤلفون إلى أن اعتماد التنفيذ الكامل للشبكات العصبية ضد الانحرافات العددية في أسوأ الحالات يظل تحديًا طويل الأمد يتطلب دعمًا أصيلًا للمكتبات الرياضية وإجراءات قرار مخصصة متكيفة مع حسابات الفاصلة العائمة.