قام الجيش لتوه بإنشاء نظام ذكاء اصطناعي قادر على برمجة البرامج
28 ديسمبر 2020
هل تشعر بالملل من كتابة كود البرامج الجديدة الخاصة بك؟ أخيرا تم ابتكار نظام ذكاء اصطناعي يمكنه فعل ذلك من أجلك.
BAYOU هي أداة تعليمية عميقة تعمل بشكل أساسي مثل محرك بحث للبرمجة: حيث تقوم بإخباره عن نوع البرنامج الذي ترغب في إنشائه بكلمات بسيطة ، وسوف يقوم بإنشاء برنامج مصاغ بلغة الجافا التي سوف تقوم بإنشاء البرنامج بناء على أفضل تخمين للكلمات التي تم إنشاؤها.
تم تطوير هذه الأداة من قبل فريق من علماء الكمبيوتر من جامعة Rice بعدما تلقوا تمويلا للمشروع من الجيش وجوجل. في دراسة نشرت في وقت سابق، كانت تصف كيف قاموا ببناء BAYOU وماهي أنواع المشاكل التي يمكن أن تساعد المبرمجين على حلها.
أن تصميم التطبيقات التي يمكن أن تقوم ببرمجة أجهزة الكمبيوتر هو عبارة عن طريق طويل من البحث منذ زمن طويل لفرع من علوم الكمبيوتر يسمي الذكاء الاصطناعي (AI). وجاء هذا التطبيق من مبادرة تهدف إلى استخراج المعرفة من مصادر المعرفة على الإنترنت مثل GitHub. ويمكن للمستخدمين تجربته على askbayou.com.
” ويقول الخبراء أن الأيام التي كان يقوم المبرمج فيها بكتابة رموز البرنامج من الصفر قد ولت ”
وفي الأساس يقوم BAYOU بقراءة تعليمات البرمجة لحوالي 1500 تطبيق اندرويد، والتي تحتوي على حوالي 100 مليون كود بلغة الجافا. تم تغذية كل هذه البرمجة من خلال البرنامج، وهذا يساعد في إنشاء برامج آخرى أيضا.
إذا كان الكود الذي يقوم BAYOU ببرمجته يتضمن أي نوع من المعلومات حول ما يفعله الكود، حينها يعلم أيضا BAYOU ما هو المطلوب من البرامج أن يفعله إلى جانب كيفية عمله. وهذه المعلومات السياقية هي ما تتيح للذكاء الاصطناعي أن يقوم بكتابة برامج وظيفية تعتمد على بضع كلمات أساسية ومعلومات أساسية حول ما يحتاجه المبرمج.
وبهذا قد يصبح تعليم الأشخاص كيفية البرمجة باستخدام رموز أقل بساطة وسهولة، حيث قد يستخدمون أنظمة الذكاء الاصطناعي هذا لبرمجة برامج تلبي احتياجاتهم. في الوقت الحالي لا يزال مشروع BAYOU في مراحله الأولى، ولا يزال فريق العمل الخاص به يعملون على تطوير أعمال البرنامج التكنولوجية.
وبالطبع، لن تكون تلك اللحظة التي يصبح فيها الذكاء الاصطناعي ذو تكاثر ذاتي، تقوم BAYOU بعمل ما يسميه الباحثين “تخطيطات” للبرنامج الذي سيتم برمجته، لا تزال هناك حاجة إلى تجميع هذه الرسومات في تطبيق أو أداة أكبر، وقد يلزم أن يتم تصميمها خصيصا للمشروع.
يحاول العلماء والمتخصصون منذ ستون عاما بناء أنظمة يمكنها كتابة التعليمات البرمجية، لكن المشكلة تكمن في أن هذه الطرق والأساليب بها قدر من الصعوبة والغموض كما يقول مخترع التطبيق Swarat Chaudhuri، أستاذ علوم الكمبيوتر في جامعة Rice. عادة ما تحتاج إلى تقديم الكثير من التفاصيل حول ما يفعله البرنامج الذي تريد فعله بالبرنامج ويمكن أن تكون كتابة التفاصيل على نفس القدر العمل من كتابة الشفرة فقط.
” Bayou يعتبر تحسنا كبيرا “، كما يقول. حيث يمكن لمطور البرامج أن يعطيه قدرا ضئيلا من المعلومات كما ذكرنا – بضع كلمات رئيسية أو مطالبات، وسيحاول التطبيق التنبؤ بالبرنامج الذي يريده.
ويقول Chaudhuri أن التطبيق درب نفسه من خلال دراسة من الملايين من أسطر البرمجة الأكواد المكتوبة عن طريق البشر. ” فقد قام بدراسة كل هذه الأشياء في الأساس على GitHub ويستند بها لكتابة الأكواد.
ويقول Chris Jermaine وهو أستاذ علوم الكمبيوتر بنفس الجامعة والذي شارك في إدارة مختبر نظم البرمجيات الذكية، أن التطبيق مفيد بشكل خاص في تجميع نماذج من الاكواد الخاصة ببرمجيات واجهات برمجة تطبيقات معينة.
ويقول أيضا Chris Jermaine أن البرمجة اليوم مختلفة تماما عما كانت عليه قبل 30 أو 40 عاما، نمتلك أجهزة الكمبيوتر في جيوبنا، على معاصمنا، وملايين من الاجهزة المنزلية وغيرها من الأجهزة.
ويقول المهندس المعماري Vijay Murali، وهو عالم أبحاث في هذا المختبر، تطوير البرمجيات الحديثة يعتمد في الأساس على APls. هذه قواعد وتعريفات وبروتوكولات خاصة بالنظام تسمح لجزء من التعليمات البرمجية بالتفاعل مع نظام تشغيل أو قاعدة بيانات أو نظام أجهزة أو نظام برنامج أخر. هناك المئات من واجهات برمجة التطبيقات، كما يصعب جدا على المطورين والمبرمجين التنقل خلالها. إنهم يقضون الكثير من الوقت في مواقع الأسئلة والأجوبة مثل Stack Overflow ويطلبون من المبرمجين الاخرين المساعدة.
ويقول Murali أن المبرمجين الآن يمكن طرح بعض هذه الأسئلة في Bayou، وسوف يعطيهم التطبيق إجابة فورية.
كما أن هذه التعليقات الفورية يمكن أن تقوم بحل المشكلة على الفور، وإذا لم يحدث هذا فإن أجابة التطبيق قد تساعد في توجيه المبرمجين نحو الحل الصحيح على الأقل.
ويقول Jermaine إن الهدف الرئيسي للفريق هو حث المطورين على محاولة توسيع نطاق التطبيق Bayou، والذي تم إصداره بموجب ترخيص مفتوح المصدر.
وكلما زادت المعلومات المتوفرة في Bayou حول ما يريده الناس، كلما كان ذلك أسهل وأفضل في تحقيقه، ويهدف مؤسسو التطبيق إلى أن يقوم أكبر عدد من الأشخاص باستخدام البرنامج.
استند الباحثون في إنشاء Bayou إلى طريقة تسمي تعلم الرسم العصبي، والتي تدريب شبكة عصبية اصطناعية للتعرف على أنماط عالية المستوي من مئات الآلاف من برامج الجافا. يقوم بذلك عن طريق إنشاء مخطط لكل برنامج يقرأه ثم ربط هذا المخطط بالنية التي تكمن وراء البرنامج أو غرض استخدامه.
وعندما يسأل المستخدم أسئلة Bayou يقوم النظام بعمل مكالمة للحكم حول البرنامج الذي يطلب منه الكتابة. ثم يقوم بإنشاء رسومات للعديد من البرامج المرشحة الأكثر احتمالا التي قد يرغب المستخدم في القيام بها.
استنادا إلى هذا التخمين فإن جزءا منفصلا من بايو، وهي وحدة تفهم تفاصيل الجافا ذات المستوي المنخفض ويمكنها القيام بالتفكير المنطقي التلقائي، سوف تولد أربعة أو خمسة أجزاء مختلفة من الأكواد. وسيقوم بعرضها للمستخدمين مثل النتائج على بحث المواقع، ومن المرجح أن يكون هذا الجواب هو الإجابة الصحيحة.
وحتى إذا كانت هذه التكنولوجيا فقط في مهدها أو طريقها للإنشاء، فإنها تعتبر خطوة رئيسية في طريق البحث وإنشاء هذا النظام من الذكاء الاصطناعي، وهو هدف عظيم جدا لباحث علوم الكمبيوتر. وتتطلب محاولات أخرى لإنشاء شئ مثل BAYOU قيودا كبيرة لتوجيه المبرمجين نحو النوع الصحيح من البرمجة. ونظرا لأن BAYOU يمكنه العمل مع كلمتين رئيسيتين فقط، فإنه يستغرق وقتا أقل بكثير، وأكثر سهولة في الاستخدام بشكل عام لكي يقوم باستخدامه البشر العاديين.