الأخبار التكنولوجية والاستعراضات والنصائح!

اقترح باحثون من Google AI و UC Berkeley نهجًا للذكاء الاصطناعي يعلم LLMs تصحيح أخطاء برنامجه المتوقع من خلال عروض توضيحية قليلة الطلقات

ستساعدك المقالة التالية: اقترح باحثون من Google AI و UC Berkeley نهجًا للذكاء الاصطناعي يعلم LLMs تصحيح أخطاء برنامجه المتوقع من خلال عروض توضيحية قليلة الطلقات

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

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

تشير الدراسات السابقة إلى أن النماذج اللغوية الكبيرة ليست قادرة بعد على تصحيح الكود في حالة عدم وجود ردود فعل خارجية ، مثل اختبارات الوحدة أو التعليمات البشرية ، على الرغم من بعض الدراسات الحديثة التي تظهر أن هذه النماذج لديها القدرة على توليد رسائل تغذية مرتدة لانتقاد وتحسين مخرجاتها لبعض مجالات اللغة الطبيعية والتفكير. في هذه الدراسة ، قدم باحثون من Google Research و UCB SELF-DEBUGGING ، باستخدام محفزات قليلة لتعليم نموذج اللغة الضخم حول تصحيح أخطاء الكود الخاص به. يأمر SELFDEBUGGING النموذج لتشغيل الكود ، ثم إنشاء رسالة ملاحظات بناءً على الكود ونتائج التنفيذ دون الحاجة إلى تدريب إضافي على النموذج.

تدرب SELF-DEBUGGING النموذج على اكتشاف مشكلات التنفيذ عن طريق شرح الكود ، على عكس الدراسات السابقة حول استخدام التعليقات البشرية لإصلاح الكود ، حيث تصف رسالة الملاحظات أخطاء التعليمات البرمجية وكيفية تصحيحها. يشبه إجراء التصحيح هذا تقنية تصحيح أخطاء البط المطاطية التي يستخدمها المبرمجون البشريون. يؤدي وصف الكود إلى البطة المطاطية في اللغة العادية سطراً سطراً إلى تحسين فعالية التصحيح بدون مساعدة احترافية. يتم عرض تقنية SELF-DEBUGING بالكامل في الشكل 1. وهي تقيم كود DaVinci-002 لعائلة طراز GPT-3 من أجل تفكيك الذات.

بالنسبة لمجموعة متنوعة من مهام إنشاء التعليمات البرمجية ، مثل إنشاء تحويل النص إلى SQL وترجمة الشفرات وإنشاء تحويل النص إلى لغة Python ، تقدم SELFDEBUGGING الأداء الأكثر تطورًا. مع شرح الكود وعدم وجود اختبارات وحدة في وصف التحدي ، يُظهر مقياس Spider لتوليد النص إلى SQL أن التصحيح الذاتي يزيد بشكل موثوق من خط الأساس بنسبة 2-3٪ بأعداد متفاوتة من برامج البداية ويزيد من دقة التنبؤ في أكثر البرامج تعقيدًا استعلامات SQL بنسبة 9٪.

يؤدي استخدام اختبارات الوحدة إلى جانب شرح الكود على TransCoder لترجمة الكود و MBPP لتوليد النص إلى Python إلى زيادة الدقة بنسبة تصل إلى 12٪. وبالمقارنة ، فإن شرح الكود وحده دون تصحيح الأخطاء يحسِّن بانتظام أداء ترجمة الكود بنسبة 2-3٪. يزيد التصحيح الذاتي من كفاءة العينة ويمكن أن يكون على قدم المساواة مع أو أفضل من النماذج الأساسية التي تأخذ عينة من أكثر من 10 تنبؤات. وفقًا لأبحاثهم ، يعد تدريس نماذج اللغة الكبيرة لأداء SELF-DEBUGING دون إشراف بشري طريقة أخرى واعدة لزيادة القدرة على الترميز وخفض تكلفة أخذ العينات اللازمة لإكمال المهام الصعبة. هذا بالإضافة إلى تحسين قدرتها على إنشاء رمز من البداية.