طوبولوجيا التغذية الراجعة أهم من ذكاء النموذج Image: AI generated

هل ستحل النماذج الأذكى كل شيء؟

السردية السائدة حول أدوات البرمجة بالذكاء الاصطناعي تقول: عندما يصبح النموذج جيداً بما يكفي، سيكتب الكود ويكتب الاختبارات ويُعيد الهيكلة بنفسه. إذا لم يستطع GPT-4، فسيستطيع GPT-5. إذا قصّر Claude، فسيتولى Claude أكبر.

هل هذا صحيح فعلاً؟

كلّفت Claude Opus 4.7 بإعادة هيكلة filefunc. أنهاها في ساعة واحدة دون مراجعة بشرية. validate نجح، pytest نجح، التغطية ثابتة. ظاهرياً، هذا يتوافق مع سردية “احصل على نموذج أفضل فحسب”.

لكن ماذا لو أعطيت نفس النموذج نفس إعادة الهيكلة بدون قواعد filefunc؟ بدون validate؟ بدون تغذية راجعة للتغطية؟ النتيجة مختلفة تماماً. يقع في doom loop — إصلاح خطأ يكسر موضعاً آخر، وإصلاح ذلك يكسر موضعاً آخر.

نفس النموذج. ما تغيّر هو البيئة.


“انتهيت” — غريزة الإنهاء المبكر لدى الوكيل

تجربة أخرى مع نفس النموذج. أطلقت وكيلاً على مشروع يحتوي 527 دالة. “اكتب اختبارات لكل دالة.” أنهى الوكيل وأبلغ: “تم.”

الدوال التي حصلت فعلاً على اختبارات: 40. 40 من أصل 527.

الوكيل لم يكذب. أنجز 40 وقرر “هذا كافٍ.” الميل الافتراضي لـ LLM هو الإنهاء المبكر المتفائل. عندما يصادف دالة صعبة، يتخطاها، ويُنجز بضعاً أخرى، ثم يستنتج “الباقي يتبع نفس النمط، إذن لا بأس.”

بعد فرض حلقة بأداة CLI:

وكيل مستقل:    40 / 527  (7.6%)  — الوكيل يعلن "انتهيت"
حلقة CLI:      527 / 527 (100%)  — الآلة تعلن "بقي 487"

نفس النموذج. نفس المشروع. الفرق هو من يقرر متى “انتهى”.


البيئة تصنع النموذج

كلتا التجربتين تشيران إلى نفس الاستنتاج. Opus 4.7 لم يُنهِ لأنه ذكي. أنهى لأن سطح المواصفات كان قابلاً للتحقق آلياً.

filefunc validate  → هل يُلبّي هيكل الكود القواعد؟
pytest             → هل السلوك الحالي محفوظ؟
coverage           → أي الفروع ناقصة؟

هذه الثلاثة أعطت تغذية راجعة فورية مع كل تعديل. النموذج تلقى التغذية الراجعة، أجرى تصحيحات، تلقاها مرة أخرى، صحح مرة أخرى. حلقة تصحيح ذاتي.

هنا تكمن الفكرة الجوهرية:

طوبولوجيا التغذية الراجعة تحدد النتائج أكثر من ذكاء النموذج.

نماذج LLM قوية في التوليد لكنها ضعيفة في ضمان الصحة. أثبت Huang et al.‏ (2024) تجريبياً أنه عندما تحاول نماذج LLM تصحيح استدلالها ذاتياً دون تغذية راجعة خارجية (oracle feedback)، قد يتدهور الأداء فعلياً. لكن عند وجود مُحقق حتمي، يستقر الأداء بشكل كبير. lint، typecheck، test، coverage — هذه تصبح إشارة التدرج التي تُصحّح مخرجات النموذج.

“سيُحَل عندما تصبح النماذج ذكية بما يكفي” قضية خاطئة. العبارة الدقيقة هي: “إذا كانت التغذية الراجعة سريعة بما يكفي، فالنماذج الحالية تستطيع حله بالفعل.”


broad exploration مقابل local correction

قوة نماذج LLM ليست في الـ broad exploration — بل في الـ local correction.

“اكتب اختبارات لهذا المشروع” — هذا broad exploration. يفقد LLM اتجاهه.

“السطر 41 غير مُغطّى” — هذا local correction. يكتب LLM اختباراً يُغطي تحديداً ذلك السطر.

أرقام تم التحقق منها في مشاريع حقيقية:

بدون تغذية راجعة:  يتوقف عند 60–70% تغطية
مع تغذية راجعة:    يصل إلى 100% (للدوال القابلة للوصول)

نفس النموذج. السطر الواحد “line 41 not covered” يعمل كإشارة تدرج. هذه التغذية الراجعة توجّه تصحيحات LLM في الاتجاه الصحيح تماماً.


Symbolic Feedback Loop

بنية واحدة تخترق كل هذه الملاحظات.

LLM يُولّد → أداة حتمية تحكم → النتيجة تُعاد إلى LLM → تكرار

أسمّيها Symbolic Feedback Loop.

التيار السائد في الصناعة اليوم هو LLM Feedback Loop — ذكاء اصطناعي يتحقق من ذكاء اصطناعي. كأن شخصاً سكراناً يسأل صديقاً سكراناً: “هل أنا سكران؟” كلاهما احتمالي، فتتراكم الأخطاء.

الـ Symbolic Feedback Loop مختلفة. أثبت Chen et al.‏ (2023) أن التنقيح التكراري — إعادة رسائل خطأ المُترجم ووقت التشغيل إلى النموذج — يُحسّن دقة الكود بشكل كبير. pytest لا يُهلوس. go test لا يسكر أبداً. قياس التغطية لا يكذب. التحقق من المواصفات لا ينحرف.

هذه البنية تعمل في المجالات التي يمكن فيها الحكم على الصحة آلياً — الكود، الاختبارات، المواصفات، الأنواع. أناقة تصميم الـ API أو طبيعية تجربة المستخدم لا يمكن بعد الحكم عليها بأدوات رمزية. توسيع تلك الحدود هو التحدي التالي. أؤمن بوجود مسار لجلب حتى اللغة الطبيعية ضمن حدود قابلة للتحقق.

ما أظهره AlphaCode (Li et al., 2022) في البرمجة التنافسية يتبع نفس المبدأ. لم تكن قدرة التوليد للنموذج بذاتها، بل تصميم البيئة — توليد ملايين المرشحين ثم التصفية عبر الاختبارات — هو ما حدد الأداء. بدلاً من جعل النموذج أذكى، الأكثر فعالية هو جعل التغذية الراجعة المُعادة إلى النموذج أكثر دقة.


تفويض القرارات

من البديهي أن القرارات لا ينبغي تفويضها للذكاء الاصطناعي. لكن أن يتحقق البشر من كل شيء ويقرروا كل شيء أمر مُرهق. بعض القرارات المتكررة والمُهيكلة يمكن أن تؤديها أدوات رمزية نيابة عن البشر.

“هل تُغطي هذه الاختبارات كل الفروع؟” — لا يحتاج أي إنسان لقراءتها. أداة التغطية تحكم. “هل يُلبّي هذا الكود القواعد البنيوية؟” — لا يحتاج أي إنسان لمراجعته. validate يحكم. “هل بقيت دوال لم تُعالَج؟” — لا يحتاج أي إنسان لعدّها. CLI يُعلن.

القرارات التي لا يمكن تفويضها للذكاء الاصطناعي يمكن تفويضها لأدوات رمزية — لأنها حتمية، وليست احتمالية. هذا هو سبب وجود الـ Symbolic Feedback Loop.

مدّ السكة أهم من جعل القطار أسرع.

كثيرون يبنون القطارات. لا أحد تقريباً يمدّ السكك.

المراجع

مقال ذو صلة: Ratchet Pattern — كيف تجعل الوكيل يُنهي المهمة — التطبيق العملي لهذه النظرية. نمط يُجبر الوكلاء على التقارب.

أداة ذات صلة: tsma — مثال عملي على Ratchet Pattern. 527 دالة، صفر TODO.

سجل التغييرات

  • 2026-05-14: الإصدار الأول