تكتب الذكاء الاصطناعي الشيفرات بسرعة متزايدة، لكن كيف نثبت أنها موثوقة حقًا؟
أصبحت نماذج اللغة الكبيرة قادرة على إنشاء الدوال بسرعة، وإعداد المشاريع، بل وحتى تنفيذ عمليات إعادة هيكلة معقدة للشيفرات.
لكن ثمة مشكلة لا تزال قائمة: كون الشيفرة تبدو منطقية وتعمل، لا يعني أنها صحيحة في جميع الحالات.
وهذا أحد المخاطر التي يسهل إغفالها في البرمجة بالذكاء الاصطناعي.
اجتياز دالة للاختبارات لا يثبت إلا أنها تعمل بشكل سليم مع المدخلات التي اختُبرت بالفعل. أما الأخطاء الحقيقية، فقد تختبئ في المدخلات غير المعتادة، والحالات الحدية، والتركيبات المعقدة للحالات.
فكيف يمكننا إذن تعزيز الموثوقية أكثر؟
أحد المسارات المهمة هو التحقق الصوري (Formal Verification).
فهو لا يقتصر على كتابة مزيد من الاختبارات، بل يقوم على صياغة الخصائص التي يجب أن يحققها البرنامج في صورة مواصفات رياضية دقيقة، ثم استخدام الاستدلال المنطقي أو أدوات التحقق لإثبات استيفاء البرنامج لهذه المتطلبات ضمن الافتراضات والنطاق المحددين.
يمكن فهم الفرق بين الطريقتين على النحو الآتي:
* الاختبار: التحقق من خلو سيناريوهات محددة من المشكلات.
* التحقق الصوري: محاولة تقديم برهان دقيق على صحة البرنامج فيما يتعلق بخصائص محددة بوضوح.
وبالطبع، لا يُعد التحقق الصوري حلًا سحريًا. فالبراهين لا تغطي سوى المواصفات والافتراضات ونطاق التحقق المحددة؛ وإذا كانت المتطلبات نفسها معيبة، أو لم يشمل نموذج التحقق البيئة الحقيقية، فقد تظل هناك مخاطر.
في المستقبل، يُفترض أن يعتمد سير العمل الأمثل لوكلاء البرمجة على توليد الذكاء الاصطناعي للشيفرة، ثم فحص أدوات التحقق الآلية للخصائص الأساسية، ومواصلة الإصلاح والتحقق عند اكتشاف المشكلات.
ويكتسب ذلك أهمية خاصة في الأنظمة المالية، والمترجمات، وأنظمة التشغيل، والبرمجيات الحساسة للسلامة، حيث قد تكون تكلفة أخطاء الشيفرة باهظة للغاية.
يتولى الذكاء الاصطناعي تسريع التطوير، فيما تتولى آليات التحقق ضمان صحة الشيفرة. ولا ينبغي للبرمجة الموثوقة بالذكاء الاصطناعي أن تكتفي بإظهار مدى سرعة كتابة الشيفرة، بل عليها أيضًا أن توضح سبب استحقاقها للثقة.
أصبحت نماذج اللغة الكبيرة قادرة على إنشاء الدوال بسرعة، وإعداد المشاريع، بل وحتى تنفيذ عمليات إعادة هيكلة معقدة للشيفرات.
لكن ثمة مشكلة لا تزال قائمة: كون الشيفرة تبدو منطقية وتعمل، لا يعني أنها صحيحة في جميع الحالات.
وهذا أحد المخاطر التي يسهل إغفالها في البرمجة بالذكاء الاصطناعي.
اجتياز دالة للاختبارات لا يثبت إلا أنها تعمل بشكل سليم مع المدخلات التي اختُبرت بالفعل. أما الأخطاء الحقيقية، فقد تختبئ في المدخلات غير المعتادة، والحالات الحدية، والتركيبات المعقدة للحالات.
فكيف يمكننا إذن تعزيز الموثوقية أكثر؟
أحد المسارات المهمة هو التحقق الصوري (Formal Verification).
فهو لا يقتصر على كتابة مزيد من الاختبارات، بل يقوم على صياغة الخصائص التي يجب أن يحققها البرنامج في صورة مواصفات رياضية دقيقة، ثم استخدام الاستدلال المنطقي أو أدوات التحقق لإثبات استيفاء البرنامج لهذه المتطلبات ضمن الافتراضات والنطاق المحددين.
يمكن فهم الفرق بين الطريقتين على النحو الآتي:
* الاختبار: التحقق من خلو سيناريوهات محددة من المشكلات.
* التحقق الصوري: محاولة تقديم برهان دقيق على صحة البرنامج فيما يتعلق بخصائص محددة بوضوح.
وبالطبع، لا يُعد التحقق الصوري حلًا سحريًا. فالبراهين لا تغطي سوى المواصفات والافتراضات ونطاق التحقق المحددة؛ وإذا كانت المتطلبات نفسها معيبة، أو لم يشمل نموذج التحقق البيئة الحقيقية، فقد تظل هناك مخاطر.
في المستقبل، يُفترض أن يعتمد سير العمل الأمثل لوكلاء البرمجة على توليد الذكاء الاصطناعي للشيفرة، ثم فحص أدوات التحقق الآلية للخصائص الأساسية، ومواصلة الإصلاح والتحقق عند اكتشاف المشكلات.
ويكتسب ذلك أهمية خاصة في الأنظمة المالية، والمترجمات، وأنظمة التشغيل، والبرمجيات الحساسة للسلامة، حيث قد تكون تكلفة أخطاء الشيفرة باهظة للغاية.
يتولى الذكاء الاصطناعي تسريع التطوير، فيما تتولى آليات التحقق ضمان صحة الشيفرة. ولا ينبغي للبرمجة الموثوقة بالذكاء الاصطناعي أن تكتفي بإظهار مدى سرعة كتابة الشيفرة، بل عليها أيضًا أن توضح سبب استحقاقها للثقة.