لماذا لا تستطيع نماذج اللغة الكبيرة بناء البرمجيات حقًا
يناقش هذا المقال قدرة نماذج اللغة الكبيرة (LLMs) على بناء البرمجيات، ويؤكد أنها لا تستطيع حقًا القيام بذلك بسبب افتقارها إلى القدرة على الاحتفاظ بـ "نماذج ذهنية" واضحة.دورة عمل مهندس البرمجيات الفعال: يصف الكاتب مهندس البرمجيات الفعال بأنه يتبع حلقة مستمرة من الخطوات:
بناء نموذج ذهني للمتطلبات.
كتابة الكود الذي يلبي تلك المتطلبات.
بناء نموذج ذهني لما يفعله الكود بالفعل.
تحديد الفروقات بين ما كان يُقصد وما تم تحقيقه، ثم تحديث الكود (أو المتطلبات).القدرة الأساسية للمهندسين الفعالين هي بناء نماذج ذهنية واضحة والحفاظ عليها.
نماذج اللغة الكبيرة: القدرات والقيود:
تُعد نماذج اللغة الكبيرة جيدة في كتابة الكود وتحديثه عند تحديد المشكلة.
يمكنها قراءة الكود، تشغيل الاختبارات، إضافة السجلات، وربما استخدام المصححات (debuggers).
لكنها لا تستطيع الاحتفاظ بنماذج ذهنية واضحة.
لماذا تفشل نماذج اللغة الكبيرة في بناء النماذج الذهنية؟
تخلط وتصاب بالارتباك بسهولة، وتفترض أن الكود الذي كتبته يعمل.
عند فشل الاختبارات، تصاب بالحيرة بشأن ما إذا كانت المشكلة في الكود أو الاختبارات، أو تتجه إلى التخمين.
عند الإحباط، قد تحذف كل شيء وتبدأ من جديد، على عكس المهندسين البشر الذين يتعمقون في فهم المشكلة قبل البدء من جديد.
يمكن للمهندسين البشر التحقق من نموذجهم الذهني، وجمع المزيد من البيانات، أو مناقشة المشكلة مع الآخرين عند مواجهة الصعوبات.
المستقبل القريب:
يعتقد الكاتب أن التغيير في قدرات النماذج سيتطلب تعديلاً في طريقة بنائها وتحسينها، وليس فقط زيادة حجم السياق (context window).
يحتاج المهندسون البشر إلى القدرة على "تخزين" السياق مؤقتًا للتركيز على مشكلة فرعية، ثم العودة للسياق الأصلي، أو القدرة على التكبير والتصغير لرؤية الصورة الكبيرة.
تعاني النماذج التوليدية الحالية من عدة مشاكل تؤثر مباشرة على قدرتها على الاحتفاظ بنماذج ذهنية واضحة، منها:
حذف السياق (Context omission): ضعف في العثور على السياق المحذوف.
انحياز الحداثة (Recency bias): تحيز قوي للمعلومات الأحدث في نافذة السياق.
الهلوسة (Hallucination): توليد تفاصيل غير موجودة.
يجري العمل على إضافة ميزة "الذاكرة" للنماذج لمساعدتها على محاكاة هذه القدرات الذهنية البشرية، ولكن حاليًا، لا يمكنها (بعد مستوى معين من التعقيد) فهم ما يجري حقًا.
لا تستطيع النماذج مقارنة نموذجين ذهنيين مختلفين لتحديد الفروقات بدقة وتحديد ما إذا كان يجب تحديث الكود أو المتطلبات.
الخلاصة ودور نماذج اللغة الكبيرة حاليًا:
نماذج اللغة الكبيرة مفيدة لمهندسي البرمجيات.
يمكنها توليد الكود بسرعة، وهي ممتازة في توليف المتطلبات والوثائق.
بالنسبة للمهام البسيطة ذات المتطلبات الواضحة، يمكنها إنجاز المهمة بكفاءة.
ومع ذلك، لأي مهمة غير بسيطة، فإنها لا تستطيع الاحتفاظ بسياق دقيق بما يكفي للتكرار والوصول إلى حل عملي.
يظل مهندس البرمجيات هو المسؤول عن ضمان وضوح المتطلبات وأن الكود يؤدي وظيفته بشكل صحيح.
تؤمن شركة "زيد" (Zed) بأن البشر والوكلاء (agents) يمكنهم التعاون في بناء البرمجيات، ولكن في الوقت الحالي، المهندس البشري هو المسيطر، ونموذج اللغة الكبيرة هو مجرد أداة إضافية.