، مقالات،

كود ChatGPT: هل الذكاء الاصطناعي جيد بالفعل في كتابة التعليمات البرمجية؟



هذه المقالة جزء من حصريتنا سلسلة مراقبة مجلة IEEE بالشراكة مع IEEE Xplore.

لقد أمضى المبرمجون عقودًا من الزمن في كتابة التعليمات البرمجية لنماذج الذكاء الاصطناعي، والآن، في لحظة دائرة كاملة، يتم استخدام الذكاء الاصطناعي لكتابة التعليمات البرمجية. ولكن كيف يمكن مقارنة مولد أكواد الذكاء الاصطناعي بالمبرمج البشري؟

دراسة نشرت في عدد يونيو من معاملات IEEE في هندسة البرمجيات قام بتقييم الكود الذي تم إنتاجه بواسطة ChatGPT الخاص بـ OpenAI من حيث الوظائف والتعقيد والأمان. تظهر النتائج أن ChatGPT يتمتع بنطاق واسع للغاية من النجاح عندما يتعلق الأمر بإنتاج تعليمات برمجية وظيفية – بمعدل نجاح يتراوح من 0.66% إلى 89% – اعتمادًا على صعوبة المهمة، ولغة البرمجة. ، وعدد من العوامل الأخرى.

في حين أنه في بعض الحالات يمكن لمولد الذكاء الاصطناعي أن ينتج تعليمات برمجية أفضل من البشر، إلا أن التحليل يكشف أيضًا عن بعض المخاوف الأمنية المتعلقة بالتعليمات البرمجية التي ينشئها الذكاء الاصطناعي.

يوتيان تانغ هو محاضر في جامعة جلاسكو والذي شارك في الدراسة. ويشير إلى أن إنشاء التعليمات البرمجية المستندة إلى الذكاء الاصطناعي يمكن أن يوفر بعض المزايا فيما يتعلق بتعزيز الإنتاجية وأتمتة مهام تطوير البرمجيات – ولكن من المهم فهم نقاط القوة والقيود في هذه النماذج.

“من خلال إجراء تحليل شامل، يمكننا الكشف عن المشكلات والقيود المحتملة التي تنشأ في إنشاء التعليمات البرمجية المستندة إلى ChatGPT… [and] يشرح تانغ: “تحسين تقنيات التوليد”.

لاستكشاف هذه القيود بمزيد من التفصيل، سعى فريقه إلى اختبار قدرة GPT-3.5 على معالجة 728 مشكلة ترميز من منصة اختبار LeetCode بخمس لغات برمجة: C، وC++، وJava، وJavaScript، وPython.

“إن الفرضية المعقولة التي تفسر سبب قدرة ChatGPT على العمل بشكل أفضل مع مشكلات الخوارزمية قبل عام 2021 هي أن هذه المشكلات تظهر بشكل متكرر في مجموعة بيانات التدريب.” —يوتيان تانغ، جامعة جلاسكو

بشكل عام، كان ChatGPT جيدًا إلى حد ما في حل المشكلات في لغات الترميز المختلفة، ولكن بشكل خاص عند محاولة حل مشكلات الترميز التي كانت موجودة على LeetCode قبل عام 2021. على سبيل المثال، كان قادرًا على إنتاج تعليمات برمجية وظيفية للمسائل السهلة والمتوسطة والصعبة بنجاح. بنسب بلغت نحو 89 و71 و40 بالمئة على التوالي.

“ومع ذلك، عندما يتعلق الأمر بمشكلات الخوارزمية بعد عام 2021، تتأثر قدرة ChatGPT على إنشاء تعليمات برمجية صحيحة وظيفيًا. ويشير تانغ إلى أنه في بعض الأحيان يفشل في فهم معنى الأسئلة، حتى بالنسبة للمسائل ذات المستوى السهل.

على سبيل المثال، انخفضت قدرة ChatGPT على إنتاج تعليمات برمجية وظيفية لمشكلات الترميز “السهلة” من 89 بالمائة إلى 52 بالمائة بعد عام 2021. وانخفضت قدرتها على إنشاء تعليمات برمجية وظيفية للمشكلات “الصعبة” من 40 بالمائة إلى 0.66 بالمائة بعد هذا الوقت أيضًا.

يقول تانغ: “إن الفرضية المعقولة التي تفسر لماذا يمكن لـ ChatGPT أن تعمل بشكل أفضل مع مشاكل الخوارزمية قبل عام 2021 هي أن هذه المشكلات تظهر بشكل متكرر في مجموعة بيانات التدريب”.

في الأساس، مع تطور البرمجة، لم يتعرض ChatGPT بعد لمشاكل وحلول جديدة. إنه يفتقر إلى مهارات التفكير النقدي للإنسان ولا يمكنه إلا معالجة المشكلات التي واجهها سابقًا. قد يفسر هذا سبب تفوقها في معالجة مشكلات البرمجة القديمة مقارنة بالمشكلات الأحدث.

“قد يقوم ChatGPT بإنشاء تعليمات برمجية غير صحيحة لأنه لا يفهم معنى مشاكل الخوارزمية.” —يوتيان تانغ، جامعة جلاسكو

ومن المثير للاهتمام أن ChatGPT قادر على إنشاء تعليمات برمجية ذات وقت تشغيل وذاكرة أقل من 50 بالمائة على الأقل من الحلول البشرية لنفس مشكلات LeetCode.

واستكشف الباحثون أيضًا قدرة ChatGPT على إصلاح أخطاء الترميز الخاصة به بعد تلقي التعليقات من LeetCode. لقد اختاروا بشكل عشوائي 50 سيناريو للترميز حيث قام ChatGPT في البداية بإنشاء ترميز غير صحيح، إما لأنه لم يفهم المحتوى أو المشكلة المطروحة.

على الرغم من أن ChatGPT كان جيدًا في إصلاح أخطاء التجميع، إلا أنه لم يكن جيدًا بشكل عام في تصحيح أخطائه.

يوضح تانغ: “قد يقوم ChatGPT بإنشاء تعليمات برمجية غير صحيحة لأنه لا يفهم معنى مشاكل الخوارزمية، وبالتالي فإن معلومات ردود الفعل البسيطة هذه ليست كافية”.

ووجد الباحثون أيضًا أن التعليمات البرمجية التي تم إنشاؤها بواسطة ChatGPT تحتوي على قدر لا بأس به من نقاط الضعف، مثل اختبار فارغ مفقود، ولكن العديد منها كان من السهل إصلاحها. تظهر نتائجهم أيضًا أن التعليمات البرمجية التي تم إنشاؤها في لغة C كانت الأكثر تعقيدًا، تليها لغة C++ وPython، والتي لها تعقيد مماثل للتعليمات البرمجية المكتوبة بواسطة الإنسان.

يقول تانغ، بناءً على هذه النتائج، من المهم أن يقدم المطورون الذين يستخدمون ChatGPT معلومات إضافية لمساعدة ChatGPT على فهم المشكلات بشكل أفضل أو تجنب نقاط الضعف.

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

من مقالات موقعك

مقالات ذات صلة حول الويب

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى