الذّكاء الصّنعي سيكتب الشّيفرات البرمجية؛ نشكر أصدقاءنا المبرمجين أم نودّعهم؟!
المعلوماتية >>>> الذكاء الصنعي
ابتكرَ علماءِ الحاسوبِ في جامعةِ رايس تطبيقًا برمجيًّا للتعلّم العميقِ؛ يستطيعُ مساعدةَ المبرمِجين عبرَ كتابةِ شيفراتٍ برمجيّةٍ استجابةً لبعضِ الكلماتِ المفتاحيَّة، ويُساعدهم على التنقّلِ في عددٍ متزايدٍ من واجهاتِ برمجةِ التطبيقات"API" الّتي لا تملكُ دليلَ استخدام.
درّب نظام "بايو" نفسه من خلال دراسة الملايين من أسطر البرمجة بلغة "جافا" المكتوبة بواسطة الانسان.
ويستطيعُ "بايو" - التّطبيقُ الّذي أُنشِئ في جامعةِ "رايس" عبر مبادرةٍ تُموّلها "وكالة المشاريعِ البحثيَّةِ الدّفاعيَّةِ المُتقدِّمة"- مساعدةَ المبرمجين بهدف استخراج المعلومات من مواقع إلكترونيّة خاصّة بالشّيفرات البرمجيّة مثل موقع "GitHub"
وقُدّمت المقالة عن "بايو" في 1 مايو (أيّار) في "فانكوفر، كولومبيا البريطانية" في المُؤتمر الدّوليّ السّادس عن عروضِ التّعلّم، وهو مَنْفذٌ رئيسيّ لبحوثِ التّعلّم العميق.
وبإمكان أيّ مستخدمٍ تجربته عبرَ الرَّابط الآتي: askbayou.com
وإنَّ تصميمَ تطبيقاتٍ تستطيع برمجة الحاسوب حلمٌ طالَ انتظارُه منذُ القِدم في علوم الحاسوب، وعلى وجه الخصوص في تخصّص الّذكاء الصّنعي.
وقدْ حاول النَّاس مدّة 60 عامًا بناءَ الأنظمةِ الّتي تَكتبُ شيفراتٍ برمجيَّة، ولكنَّ عدم وضوح الهدف من نظامٍ ما كان مشكلةً تجعلُ هذهِ الطرق غير جيّدة لبناءِ التّطبيقات البرمجيّة. ويقولُ "سورات تشودري" المُشارك في إنشاء نظام "بايو" والبروفيسور المساعد في علوم الحاسب في جامعة رايس: "عادةً ما تحتاج إلى تقديم الكثير من التّفاصيل عن ما يفعله البرنامج المُستهدَف، ويمكن أن تكون كتابة هذه التّفاصيل بحجم العمل نفسه اللازم لكتابة الشّيفرة البرمجيّة فقط."
ويقول أيضاً: "إنّ نظام بايو هو تحسينٌ كبير"؛ إذ يمكن أنْ يُزوَّدَ مطوّر البرمجيّات "بايو" بكميّة صغيرة جدًّا من المعلومات؛ بضعةُ توجيهاتٍ أو كلماتٍ رئيسةٍ فقط، وسيحاولُ بعدها قراءةَ عقل المبرمج وتوقّع البرنامجِ الّذي يريده.
وقال "تشودري" أنَّ "بايو" درّب نفسه عبر دراسة ملايين الأسطر البرمجيّة المكتوبةِ بلغة "جافا"، ودرس على نحوٍ أساسيّ كل ما هو موجود على منصة "GitHub"، وهذا ما يستندُ إليه في أثناء كتابته للشّيفرات البرمجيّة.
ويقول "كريس جيرماين" المُشارِك في ابتكار "بايو"؛ وهو بروفيسور في علوم الحاسوب ومساعدٌ في إدارة أنظمة البرمجيّات الذّكيّة في جامعة رايس مع "تشودري": "بايو" مفيدٌ على نحوٍ خاصّ في تركيبِ أمثلةٍ من واجهات برمجةِ تطبيقاتٍ APIs محدَّدة.
وقال "جيرماين": البرمجةُ اليومَ مختلفةٌ جدًّا عمّا كانت عليه قبل 30 أو 40 عامًا؛ إذْ ولّت تلك الأيّامُ التي كان المبرمجُ يكتبُ فيها شيفرة برمجيّةً بدءًا من الصفر، وأصبحت الحواسيبُ توضعُ في جيوبنا ومعاصمنا، ودخلتِ البرمجةُ في التّطبيقاتِ البرمجيّةِ والمركبات وأجهزةٍ أخرى.
وقال مهندس بايو المعماريّ " فيخاي مورالي"؛ وهو عالمُ أبحاثٍ في المختبر: "إنَّ التّطوير الحديث للبرمجيّات يتمحورُ حول واجهاتِ برمجةِ التَّطبيقات APIs."
وهذه هي القواعدُ والأدواتُ والتّعريفاتُ والبروتوكولات الخاصَّةُ بالنّظام، والّتي تسمحُ لجزءٍ من الشّيفرات البرمجيَّة بالتّفاعل مع نظامِ تشغيلٍ محدَّدٍ أو قاعدةِ بياناتٍ محدَّدة أو معدّاتٍ محدَّدةٍ أو نظامٍ برمجيّ آخر.
وتوجد المئاتُ من الـ "APIs"، والتَّنقل عبرهم صعبٌ جدًّا على المطوّرين؛ إذْ إنّهم يقضون الكثير من الوقتِ في مواقع مثل "Stack Overflow" يطلبونَ فيهِ المساعدة من مطوّرين آخرين.ويقول "مورالي": يمكنُ للمطوّرين أنْ يطرحوا بعضَ هذه الأسئلةِ على نظام" بايو"؛ إذْ إنَّه سيعطيهم إجابةً فوريَّة، ويقولُ أيضًا: " إنَّ ردّ الفعل الفوريّ يُمكن أن يحلَّ المشكلةَ على الفور، وإذا لم يحلَّها؛ فيجبُ أن تؤدّي الشيفرة البرمجيّةُ التي يقترُحها نظام "بايو" إلى سؤالٍ أكثرَ وضوحًا من الأسئلةِ المطروحةِ من قِبَل الإنسان."
وقال "جيرمين": "إنَّ الهدف الأساسيّ للفريق هو جعلُ المطورين يحاولون توسيع نطاق "بايو"، والّذي أُصدرَ بموجبِ ترخيصٍ مفتوحِ المصدر."
وقالَ أيضًا: "كلَّما زادَ عددُ المعلوماتِ الّتي لدينا عمَّا يُريدُه النَّاس من نظامٍ مثل "بايو"؛ كلَّما كان ذلك أفضل لنا، ونريدُ أن يستخدمه أكبر عددٍ ممكنٍ من الأشخاص".
ويستند "بايو" على طريقة تُدعى تعلّم الرّسم العصبونيّ؛ الّذي يُدرِّب شبكةً عصبونيّةً اصطناعيّةً للتّعرفِ على أنماطٍ عاليةِ المستوى في مئات الآلافِ من البرامجِ المكتوبةِ بلغةِ "جافا"؛ إذْ يُنشئ مخططًّا لكلّ برنامجٍ يقرأه، ومن ثمّ يربطه بالهدفِ الّذي كُتِب البرنامجُ لأجله.
وعندما يَسألُ المُستخدم نظامَ "بايو" بعض الأسئلة؛ يستدعي النّظامُ احتمالات البرنامج الذي تُطلب كتابته، ثمَّ ينشئُ مخطّطاتٍ للعديدِ من البرامجِ المُرشَّحة والأكثر احتمالًا بأنْ يرغبَ المستخدم بها.
ويقول "جيرمين": بناءً على هذا التّخمين؛ فإنَّ جزءًا منفصلًا من "بايو"؛ وهي وحدةٌ تفهمُ التّفاصيل المنخفضة المستوى من "جافا"، وتستطيعُ التّفكيرَ المنطقيّ التّلقائيّ؛ ستولِّدُ أربعةَ أو خمسةَ أجزاءٍ مختلفةٍ من الشّيفرات البرمجيَّة، وسيُعرضُ ذلكَ للمُستخدمين بطريقةِ عرض النّتائج في البحث على الويب، وهذا على الأرجحِ هو الإجابةُ الصَّحيحة، ولكن سيكونُ هناك ثلاثةٌ إجاباتٍ أُخرى ، ومن الممكن أن تكونَ واحدة منها هي ما نبحثُ عنه.
المصادر: