أخبار سيئة للمطورين؟ هذا الذكاء الاصطناعي أصبح جيدًا جدًا في كتابة التعليمات البرمجية

تقول DeepMind أن أبحاثها يمكن أن تساعد المبرمجين في النهاية على البرمجة بشكل أكثر كفاءة وفتح المجال أمام الأشخاص الذين لا يقومون بالتشفير.

أخبار سيئة للمطورين؟ هذا الذكاء الاصطناعي أصبح جيدًا جدًا في كتابة التعليمات البرمجية
 أخبار سيئة للمطورين؟ هذا الذكاء الاصطناعي أصبح جيدًا جدًا في كتابة التعليمات البرمجية

يعد تحديد لغة البرمجة التي يجب تعلمها سؤالًا كبيرًا للمطورين اليوم بسبب الاستثمار الضخم في الوقت الذي يستغرقه. لكن هذا السؤال يمكن أن يصبح زائداً عن الحاجة في المستقبل حيث تقوم نماذج الذكاء الاصطناعي (AI) بكل الأحمال الثقيلة من خلال فهم وصف المشكلة وترميز الحل.  

يدعي باحثون من وحدة DeepMind التي تركز على الذكاء الاصطناعي في Google أن نظام AlphaCode الخاص بها يمكن أن يعبر عن حلول للمشاكل في التعليمات البرمجية التي تحقق درجة متوسطة في مسابقات البرمجة التي يقوم بها مبرمجون جدد. تتطلب هذه المسابقات من البشر فهم مشكلة موصوفة بلغة طبيعية ثم ترميز الخوارزمية بكفاءة. 

في ورقة بحثية جديدة غير خاضعة لاستعراض الأقران، يوضح باحثو DeepMind بالتفصيل كيف حققت AlphaCode متوسط ​​تصنيف لأفضل 54.3٪ من المشاركين في 10 مسابقات برمجة أقيمت سابقًا مع أكثر من 5000 مشارك. تم استضافة المسابقات على منصة مسابقة كود Codeforces.

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

يحتاج المتسابقون البشريون، وبالتالي، AlphaCode إلى تحليل وصف لتحدي أو لغز وكتابة برنامج بسرعة لحلها. يعد هذا أكثر صعوبة من تدريب نموذج باستخدام بيانات GitHub لحل تحدي ترميز بسيط.  

مثل البشر، احتاج AlphaCode لفهم وصف اللغة الطبيعية متعدد الفقرات للمشكلة، وتفاصيل سرد الخلفية، ووصف للحل المطلوب من حيث المدخلات والمخرجات. 

لحل المشكلة، سيحتاج المنافس إلى إنشاء خوارزمية ثم تنفيذ الخوارزمية بكفاءة، مما قد يتطلب تحديد لغة برمجة أسرع مثل C ++ على Python للتغلب على هذه القيود. 

تضمنت مجموعة بيانات AlphaCode ما قبل التدريب 715 جيجابايت من التعليمات البرمجية من الملفات المأخوذة من مستودعات GitHub المكتوبة بلغة C ++ و C # و Go و Java و JavaScript / TypeScript و Lua و Python و PHP و Ruby و Rust و Scala. صقل الفريق النموذج باستخدام مجموعات بيانات لمشاكل البرمجة التنافسية المأخوذة من Codeforces ومجموعات البيانات المماثلة. 

تم تحقيق التعزيز الذي أعطته DeepMind AlphaCode من خلال الجمع بين نماذج المحولات واسعة النطاق. تتضمن الأمثلة على ذلك نموذج GPT-3 الخاص بـ OpenAI ونموذج لغة BERT من Google. استخدم DeepMind نماذج اللغة القائمة على المحولات لإنشاء رمز ثم تصفية الإخراج إلى مجموعة صغيرة من "البرامج الواعدة" التي تم تقديمها للتقييم.

أوضح فريق AlphaCode في DeepMind في مدونة "في وقت التقييم، نقوم بإنشاء قدر هائل من برامج C ++ و Python لكل مشكلة، بأعداد أكبر من العمل السابق". 

"ثم نقوم بتصفية هذه الحلول وتجميعها وإعادة ترتيبها لمجموعة صغيرة من 10 برامج مرشحة نقدمها للتقييم الخارجي. يستبدل هذا النظام الآلي عملية التجربة والخطأ للمنافسين المتمثلة في تصحيح الأخطاء وتجميعها واجتيازها، وفي النهاية تقديم."

يوضح DeepMind كيف ترميز AlphaCode حلاً لمشكلة معينة هنا

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

أيضا، هناك تكاليف بيئية. تطلب تدريب النموذج "مئات من أيام petaFLOPS" في مراكز بيانات Google. لكن إنشاء كود الذكاء الاصطناعي على المدى الطويل "يمكن أن يؤدي إلى أنظمة يمكنها بشكل متكرر كتابة وتحسين نفسها، مما يؤدي بسرعة إلى المزيد والمزيد من الأنظمة المتقدمة." 

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

ومع ذلك، تؤكد DeepMind أن عملها لا يقترب من أن يكون تهديدًا للمبرمجين البشريين، ولكن أنظمتها تحتاج إلى أن تكون قادرة على تطوير قدرات حل المشكلات لمساعدة البشرية. 

يقول باحثو DeepMind: "إن استكشافنا في إنشاء الكود يترك مجالًا واسعًا للتحسين ويلمح إلى أفكار أكثر إثارة يمكن أن تساعد المبرمجين على تحسين إنتاجيتهم وفتح المجال أمام الأشخاص الذين لا يكتبون الكود حاليًا". 

إرسال تعليق

أحدث أقدم

إنظم إلى قناتنا على تيليجرام

إنظم إلى قناتنا وتوصل بأحدث المواضيع التقنية

إتظم إلينا الأن