عالج قسم DeepMind AI في Google كل شيء من ستار كرافت الى البروتين للطي. لذلك ربما ليس من المستغرب أن يتجه صانعوها في النهاية إلى ما هو بلا شك مصلحة شخصية: برمجة الكمبيوتر. في إصدار يوم الخميس من Science ، تصف الشركة نظامًا طورته ينتج رمزًا استجابةً لبرمجة نموذجية لتلك المستخدمة في مسابقات البرمجة البشرية.
في التحدي المتوسط ، يمكن لنظام الذكاء الاصطناعي أن يسجل ما يقرب من النصف العلوي من المشاركين. لكنه كافح قليلاً من أجل التوسع ، حيث كان من غير المرجح أن ينتج برنامجًا ناجحًا بشأن المشكلات التي تتطلب عادةً المزيد من التعليمات البرمجية. ومع ذلك ، فإن حقيقة أنه يعمل دون تلقي أي معلومات هيكلية حول الخوارزميات أو لغات البرمجة أمر مثير للدهشة بعض الشيء.
رفع التحدي
تحديات برمجة الكمبيوتر بسيطة للغاية: يتم إعطاء الأشخاص مهمة لإكمال وإنتاج التعليمات البرمجية التي يجب أن تؤدي المهمة المطلوبة. في المثال الوارد في المقالة الجديدة ، تم إعطاء المبرمجين سلسلتين وطُلب منهم تحديد ما إذا كان من الممكن إنتاج الأقصر من الاثنين عن طريق استبدال المسافات الخلفية ببعض المفاتيح اللازمة لكتابة السلسلة الأطول. ثم يتم فحص البرامج المقدمة لمعرفة ما إذا كانت تقدم حلاً عامًا للمشكلة أو إذا فشلت عند اختبار أمثلة إضافية.
بالنظر إلى أمثلة كافية من البرامج القادرة على حل مشكلة واحدة ، فمن المحتمل أن يكون من الممكن لنظام الذكاء الاصطناعي أن يستنتج البنية الخوارزمية اللازمة للنجاح. لكنه لن يكون حلاً عامًا لحل جميع المشاكل ؛ سوف يفشل الذكاء الاصطناعي الذي تم تدريبه على فئة التحدي عندما يُطلب منك إكمال تحدي غير ذي صلة.
لجعل شيء ما أكثر قابلية للتعميم ، تعامل فريق DeepMind معه على أنه مشكلة لغة. إلى حد ما ، يعد وصف التحدي تعبيرًا عن ما يجب أن تفعله الخوارزمية ، في حين أن الكود هو تعبير عن الشيء نفسه ، فقط بلغة مختلفة. لذلك تم تصميم الذكاء الاصطناعي المعني بحيث يتكون من جزأين: جزء تناول الوصف وحوّله إلى تمثيل داخلي ، والثاني يستخدم التمثيل الداخلي لإنشاء كود عمل.
كان تشكيل النظام أيضًا عملية من خطوتين. في المرحلة الأولى ، طُلب من النظام ببساطة معالجة لقطة جهاز على GitHub ، بإجمالي أكثر من 700 جيجابايت من التعليمات البرمجية. (في الوقت الحاضر ، عندما يمكنك وضع هذا على محرك أقراص USB ، قد لا يبدو هذا كثيرًا ، ولكن تذكر أن الرمز هو مجرد نص عادي ، لذلك تحصل على الكثير من الأسطر لكل جيجابايت.) لاحظ أن هذه البيانات ستتضمن أيضًا تعليقات ، والتي يجب أن تستخدم لغة طبيعية لشرح ما تفعله الشفرة القريبة ، وبالتالي يجب أن تساعد في مهام الإدخال والإخراج.
بمجرد تشكيل النظام ، مر بفترة تعديل. أعدت DeepMind مسابقات البرمجة الخاصة بها ، ثم أدخلت النتائج في النظام: وصف المشكلة ، ورمز العمل ، والشفرة الفاشلة ، وحالات الاختبار المستخدمة للتحقق منها.
تم تجربة مناهج مماثلة من قبل ، لكن DeepMind تقول إنها كانت ببساطة قادرة على تخصيص المزيد من الموارد للتدريب. “المحرك الرئيسي لأداء AlphaCode ،” تنص الورقة ، “جاء من زيادة عدد عينات النموذج إلى أوامر من الحجم أكبر من العمل السابق.”