Dafny يقبل 99,1% من شيفرة Opus 4.7 على HumanEval، لكن 1,9% فقط منها مرتبطة بالمواصفة

بيّن مؤلفو ورقة بحثية أولية (preprint) أن الرقم الواحد لعبارة «تم التحقق» يخفي ثلاث خصائص مختلفة للشيفرة. في إعادة تنفيذ مسار Li et al. على Claude Opus 4.7، قبِل مُحقِّق Dafny نسبة 99,1% من حلول HumanEval، لكن 1,9% فقط منها تحتوي على شرط لاحق (postcondition) مرتبط بمسند (predicate) من المواصفة. لذلك ينبغي أن تذكر تقارير الشيفرة المُتحقَّق منها بالذكاء الاصطناعي مقياسين على الأقل، لا مقياسًا واحدًا.

معالج بواسطة الذكاء الاصطناعي من arXiv cs.AI؛ بتحرير Hamidun News
Dafny يقبل 99,1% من شيفرة Opus 4.7 على HumanEval، لكن 1,9% فقط منها مرتبطة بالمواصفة
المصدر: arXiv cs.AI. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليarXiv cs.AI ↗
رئيس التحرير
حقيقة رئيسية #1في مسار VCG المبني على Rust، أخفقت 11,48% و14,82% من الحلول المُتحقَّق منها في الاختبارات المخفية
حقيقة رئيسية #2على VeriContest سجّل VCG نسبة End2End بلغت 7,79% مقابل 1,88% لاستدعاء واحد من Opus 4.7
حقيقة رئيسية #3التحقق من ارتباط الشرط اللاحق تحليل ساكن لشجرة AST يستغرق أجزاء من الثانية

عندما يعلن مسار توليد الشيفرة أنه «تم التحقق من N% من الحلول»، فقد يخفي هذا الرقم ضمانًا شبه فارغ. نشر Prasenjit Dey وAshish Jagmohan وRavi Kokku على arXiv ورقة بعنوان «Verified but Vacuous». يقترح المؤلفون تفكيك مفهوم «الشيفرة المُتحقَّق منها التي كتبها LLM» إلى ثلاثة مستويات تُقاس بشكل مستقل، ويُظهرون بالبيانات أن هذه المستويات تتباعد تباعدًا كبيرًا. في أحد التجارب قبِل مُحقِّق Dafny نسبة 99,1% من حلول HumanEval، بينما لم يوجد شرط لاحق مرتبط بالمواصفة إلا في 1,9% منها.

ثلاثة أسطح للإخفاق

يسمّي المؤلفون هذه الأسطح A وB وC. السطح A هو قبول المُحقِّق للبرهان (في Dafny يعني ذلك رمز إرجاع صفريًا). وهذا شرط لازم، لكنه أضعف الشروط. السطح B يتناول ما إذا كان الادعاء المُبرهَن عليه مرتبطًا بشيء ذي معنى: يجب أن يشير شرط لاحق واحد على الأقل (ensures) إلى مسند أو دالة من المواصفة المقترنة. أما السطح C فيتناول ما إذا كانت المواصفة نفسها تعكس المتطلب الأصلي للمستخدم.

يجري التدقيق على شكل سلسلة: يُحسب B على العينات التي اجتازت A، ويُحسب C على العينات التي اجتازت B. ويشير المؤلفون إلى أن هذه عينات شرطية، وليست تسلسلًا منطقيًا هرميًا للخصائص.

للسطح B اقترح المؤلفون ensures-binding gate، وهو اجتياز ساكن لشجرة AST يستغرق أجزاء من الثانية لكل مكوّن. وللسطح C يستخدمون فحص Post2Exe من اختبار VeriContest المعياري: يُحوَّل الشرط اللاحق إلى مسند قابل للتنفيذ، ثم يُشغَّل على اختبارات إيجابية وسلبية. وإذا قبِل المسند إجابة كان ينبغي أن يرفضها اختبار سلبي، فالمواصفة غير مكتملة.

يوضح مثالان على مسألة «إرجاع القيمة العظمى في المصفوفة» الفرق. المُحقِّق يقبل الطريقة r := 0 دون ensures، إذ لا توجد ضمانة وظيفية أصلًا. أما إذا أشار ensures إلى المسند r >= 0، فالارتباط موجود شكليًا، لكن المواصفة أضعف من اللازم، ولا يكتشف ذلك إلا الفحص السلوكي.

ما أظهرته إعادة تنفيذ Li et al.

أعاد الفريق تنفيذ مسار Li et al. على Claude Opus 4.7، وفيه يعمل Dafny تمثيلًا وسيطًا. واختُبرت ثلاثة اختبارات معيارية بلغة Python لمسائل بمستوى LeetCode: HumanEval وLeetCodeDataset وLiveCodeBench v6. قبِل المُحقِّق ما بين 92% و99% من العينات، بينما بقيت نسبة العينات المرتبطة بمسند من المواصفة صغيرة جدًا. وبلغت على HumanEval نسبة 1,9%. وفي 3,4% أخرى من العينات وُجد شرط لاحق، لكنه لم يشر إلى أي مسند من المواصفة. وبحسب تقدير المؤلفين، تبلغ الفجوة بين القبول والارتباط نحو أربعين ضعفًا.

تزداد نسبة العينات التي تحتوي على شرط لاحق مع ازدياد صعوبة المسائل: من 5,3% على HumanEval إلى 10,61% على LiveCodeBench v6 (1 032 من 9 731؛ و10,9% على المجموعة الفرعية المؤلفة من 9 448 عينة اجتازت الاختبارات). يكتب النموذج شروطًا لاحقة أكثر في المسائل الصعبة، لكن عدد الشروط المرتبطة بالمواصفة لا يزداد بسبب ذلك.

ويؤكد المؤلفون أن هذا ليس عيبًا في مسار Li et al. فالـ Few-shot prompt الوارد في ورقتهم يحتوي على طريقة بلا جسم وبلا شرط لاحق، إضافةً إلى fixture تتحقق من التوقعات أثناء التنفيذ. وفي مثل هذه الصيغة من المدخلات، لا يعني قبول المُحقِّق سوى صحة بقية الالتزامات الساكنة، وليس الصحة الوظيفية. أما الخلل، بحسب قولهم، فيكمن في الطريقة المعتادة لوصف مثل هذا المسار.

حتى في حالة البناء المقصود، «مُتحقَّق منه» لا يعني «صحيح»

مسار المؤلفين نفسه، VCG، مبني بشكل مختلف: يقسّم Planner المسألة، ويكتب SpecAgent المواصفات بلغة Dafny، ويكتب ImplementationAgent التنفيذات، ويدير ProverAgent حلقة التحقق والتصحيح مع ensures-gate. وتُحوَّل المكوّنات المُتحقَّق منها إلى Rust. والارتباط بالمواصفة هناك متحقق في 100% من المكوّنات بحكم طريقة البناء. ومع ذلك أخفقت 11,48% من العينات على MBPP-Rust و14,82% على شريحة LC من VeriContest في الاختبارات المخفية. ويصف المؤلفون ذلك بأنه تقريب تشغيلي لمدى الامتثال للمتطلبات، وليس تشخيصًا دقيقًا لخطأ في المواصفة.

على شريحة LC من VeriContest بلغ مقياس End2End الشامل لدى VCG نسبة 7,79% (535 من 6 870). أما المؤشرات الخارجية المنشورة فهي 5,51% لـ GPT-5.5 و1,88% للتشغيل الواحد لـ Opus 4.7. أي فرق قدره 2,3 نقطة مئوية وبنسبة 4,14 مرة. لكن ميزانيات المسائل وعدد محاولات التصحيح وبيئات الاختبار تختلف (لدى VCG عشر عينات لكل مسألة، وفي المقارنة الخارجية عينة واحدة)، ولذلك لا يدّعي المؤلفون تفوقًا قابلًا للمقارنة.

القيود والخلاصة العملية

تعرض الورقة تقديرات نقطية دون فترات ثقة. كما أن ensures-gate نفسه فظّ: فقد يرفض شرطًا لاحقًا مضمّنًا ذا معنى، بينما يمرّر تحصيل حاصل (tautology) يحمل اسمًا طنانًا. أما نسبة 27% المعلنة من الإخفاقات البنيوية في التدقيق السابق للإصدار لدى VCG، ونسبة 98% لدى Li@Opus، فلم يُتحقق منهما بترميز مستقل للفراغ الدلالي.

التوصية العملية محددة. على أي مسار يُصدر شهادات أن ينشر، إلى جانب قبول المُحقِّق، أحد المقياسين B أو C على الأقل، والأفضل كليهما. فالمقياس B وحده يترك نقطة عمياء دلالية، كما في VCG. والمقياس C وحده يترك نقطة عمياء نحوية، كما في Li@Opus. وبالنسبة للفرق التي تنوي نشر شيفرة «محققة رسميًا» من LLM في بيئة الإنتاج، فهذه قائمة تحقق جاهزة بما يجدر سؤال المورّد عنه.

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول ثلاثة أسطح للإخفاق؟

يسمّي المؤلفون هذه الأسطح A وB وC. السطح A هو قبول المُحقِّق للبرهان (في Dafny يعني ذلك رمز إرجاع صفريًا). وهذا شرط لازم، لكنه أضعف الشروط. السطح B يتناول ما إذا كان الادعاء المُبرهَن عليه مرتبطًا بشيء ذي معنى: يجب أن يشير شرط لاحق واحد على الأقل (ensures) إلى مسند أو دالة من المواصفة المقترنة. أما السطح C فيتناول ما إذا كانت المواصفة نفسها تعكس المتطلب الأصلي للمستخدم. يجري التدقيق على شكل سلسلة: يُحسب B على العينات التي اجتازت A، ويُحسب C على العينات التي اجتازت B.

ما أبرز التفاصيل حول ما أظهرته إعادة تنفيذ Li et al؟

أعاد الفريق تنفيذ مسار Li et al. على Claude Opus 4.7، وفيه يعمل Dafny تمثيلًا وسيطًا. واختُبرت ثلاثة اختبارات معيارية بلغة Python لمسائل بمستوى LeetCode: HumanEval وLeetCodeDataset وLiveCodeBench v6. قبِل المُحقِّق ما بين 92% و99% من العينات، بينما بقيت نسبة العينات المرتبطة بمسند من المواصفة صغيرة جدًا. وبلغت على HumanEval نسبة 1,9%. وفي 3,4% أخرى من العينات وُجد شرط لاحق، لكنه لم يشر إلى أي مسند من المواصفة. وبحسب تقدير المؤلفين، تبلغ الفجوة بين القبول والارتباط نحو أربعين ضعفًا.

ما أبرز التفاصيل حول حتى في حالة البناء المقصود، «مُتحقَّق منه» لا يعني «صحيح»؟

مسار المؤلفين نفسه، VCG، مبني بشكل مختلف: يقسّم Planner المسألة، ويكتب SpecAgent المواصفات بلغة Dafny، ويكتب ImplementationAgent التنفيذات، ويدير ProverAgent حلقة التحقق والتصحيح مع ensures-gate. وتُحوَّل المكوّنات المُتحقَّق منها إلى Rust. والارتباط بالمواصفة هناك متحقق في 100% من المكوّنات بحكم طريقة البناء. ومع ذلك أخفقت 11,48% من العينات على MBPP-Rust و14,82% على شريحة LC من VeriContest في الاختبارات المخفية. ويصف المؤلفون ذلك بأنه تقريب تشغيلي لمدى الامتثال للمتطلبات، وليس تشخيصًا دقيقًا لخطأ في المواصفة.

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
ما رأيك؟
جارٍ تحميل التعليقات…