تمت ترجمة المحتوى الموجود على هذا الموقع باستخدام الذكاء الاصطناعي (AI) أو تقنية الترجمة الآلية، وقد تحتوي على أخطاء.

Skip to content
Artificial Intelligence
Programming Languages

SelfCodeAlign: المحاذاة الذاتية لتوليد الكود

Author

يوشيانغ وي (جامعة إلينوي في أوربانا-شامبين)، فيديريكو كاسانو (جامعة نورث إيسترن وكورسور إيه آي)، جياوي ليو (جامعة إلينوي في أوربانا-شامبين)، ييفنغ دينغ (جامعة إلينوي في أوربانا-شامبين)، نامان جاين (جامعة كاليفورنيا، بيركلي)، زاكاري مولر (Hugging Face)، هارم دي فريس (ServiceNow)، لياندرو فون فيرا (Hugging Face)، أرجون غوها (جامعة نورث إيسترن وRoblox)، لينغمينغ زانغ (جامعة إلينوي في أوربانا-شامبين)

Venue

NeurIPS 2024

Abstract

يعد ضبط التعليمات نهجًا للضبط الدقيق الخاضع للإشراف يحسن بشكل كبير من قدرة نماذج اللغة الكبيرة (LLMs) على اتباع التعليمات البشرية. نقترح SelfCodeAlign، وهو أول مسار عمل شفاف تمامًا ومتساهل لمحاذاة نماذج اللغة الكبيرة ذاتيًا دون الحاجة إلى تعليقات بشرية مكثفة أو تقطير. يستخدم SelfCodeAlign نفس النموذج الأساسي للاستدلال طوال عملية توليد البيانات. فهو يستخرج أولاً مفاهيم الترميز المتنوعة من مقتطفات البذور عالية الجودة لتوليد مهام جديدة. ثم يأخذ عينات من استجابات متعددة لكل مهمة، ويقرن كل منها بحالات اختبار، ويتحقق من صحتها في بيئة تجريبية. وأخيرًا، يتم اختيار الأمثلة الناجحة لضبط التعليمات. في تجاربنا الأولية، نستخدم SelfCodeAlign مع CodeQwen1.5-7B لتوليد مجموعة بيانات تضم 74 ألف زوج من التعليمات والاستجابات. يؤدي الضبط الدقيق لهذه المجموعة إلى نموذج يحقق 67.1 pass@1 على HumanEval+، متفوقًا على CodeLlama-70B-Instruct رغم أنه أصغر بعشر مرات. في جميع المعايير، يتفوق هذا النموذج المُحسّن باستمرار على الإصدار الأصلي الذي تم تدريبه باستخدام OctoPack، وهي الطريقة المتطورة السابقة لضبط التعليمات دون تعليقات بشرية أو تقطير. بالإضافة إلى ذلك، نظهر أن SelfCodeAlign فعال عبر نماذج اللغة الكبيرة (LLMs) ذات الأحجام المختلفة، من 3B إلى 33B، وأن النماذج الأساسية يمكن أن تستفيد أكثر من المواءمة مع توزيع البيانات الخاص بها. كما نقوم بالتحقق من فعالية كل مكون في خط إنتاجنا، مما يوضح أن SelfCodeAlign يتفوق على كل من التقطير المباشر من GPT-4o وطرق التقطير الرائدة القائمة على GPT-3.5، مثل OSS-Instruct وEvol-Instruct. كما أدى SelfCodeAlign إلى إنشاء StarCoder2-Instruct، وهو أول نموذج لغة كبيرة (LLM) للرموز البرمجية يتميز بالشفافية الكاملة والترخيص المفتوح والمواءمة الذاتية، ويحقق أداءً متطورًا في البرمجة.