كشفت Koda عن كيفية تدريب نموذج Next Edit Suggestions للتنبؤ بتعديلات الأكواس
شرحت Koda كيفية تدريب نموذج Next Edit Suggestions لـ IDE: بدلاً من التنبؤ باستمرار السطر، يتنبأ بالتغيير التالي في الكود بناءً على سجل التعديلات. استخدمت…
معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
شاركت Koda كيف درّبت نموذج Next Edit Suggestions للإكمال التلقائي الذي يحاول التنبؤ ليس بالرمز التالي، بل بالتعديل التالي ذي المعنى للكود من قبل المطور. يحول هذا النهج بيئة التطوير من الإكمال العادي إلى مساعد يفهم تدفق إعادة الهيكلة والإعادة تسمية والإصلاحات الصغيرة الدفعية. يختلف NES عن الإكمال التلقائي الكلاسيكي في أنه يأخذ في الاعتبار سجل التغييرات الحديثة ويعمل ليس فقط تحت المؤشر، بل في أي مكان في الملف.
يمكن للنموذج ليس فقط إضافة الكود، بل أيضاً حذف أو استبدال الأجزاء. السيناريوهات العملية لهذا الوضع واضحة: إعادة تسمية الكميات الكبيرة، تحديث الاستدعاءات بعد تغيير التوقيع، متابعة إعادة هيكلة جارية، تكرار إصلاحات متشابهة، محاذاة الأسلوب، إزالة الكود الميت وحتى إصلاحات lint الصغيرة. في Koda، يعتقدون أنه في ظل طفرة وكلاء الذكاء الاصطناعي، تبقى هذه الأداة مفيدة: العديد من الإصلاحات الصغيرة أسرع تأكيداً بضغطة واحدة من صياغة موجه منفصل.
أثناء التدريب، اختارت الفريق أولاً نموذج أساسي تحت قيود صارمة للكمون. على خوادم GPU المستهدفة، قاس المطورون سرعة الاستدلال وضيقوا الاختيار إلى Qwen2.5-Coder-1.
5B و DeepSeek-Coder-1.3B. بناءً على المقاييس المدمجة، تم اختيار Qwen كأساس للضبط الدقيق الخاضع للإشراف.
كان مصدر البيانات سجلات جزئية مجهولة الهوية من نموذج إكمال الكود الخاص بهم المتراكمة على مدار سنة. تم تجميع سجلات FIM هذه حسب المستخدم والجلسة والملف لإعادة بناء سلاسل التغييرات المحلية للكود. كانت المشكلة أن إصلاح المبرمج الحقيقي في السجلات غالباً ما ينقسم إلى عشرات الأحداث الدقيقة.
لذا قام المهندسون بلصق هذه السلاسل الجزئية في تغييرات موحدة ذات معنى باستخدام خوارزمية الكشف عن الفرق المتزايد الموصوفة في ورقة بحث NES. بعد ذلك، قاموا بتصفية الأمثلة بشكل منفصل حيث كان التصحيح المستهدف مرتبطاً بالفعل بشكل سببي بسجل التحرير، بدلاً من أن يكون ببساطة جزءاً منطقياً آخر من الكود. في النهاية، من ملايين العينات المرشحة، بقي فقط عشرات الآلاف.
بالإضافة إلى ذلك، قامت الفريق بالإفراط في أخذ عينات من تحريرات الاستبدال لموازنة أفضل لأنواع الإدراج والاستبدال والحذف. بعد ذلك، قارنت Koda نموذجها بـ 1.5 مليار معامل مع حلول NES المفتوحة من Continue و Zed و Sweep، وذكرت Cursor Tab و GitHub Copilot NES و JetBrains AI Assistant كمعايير مغلقة.
على مجموعة الاختبار الخاصة بها من 500 مثال، أظهرت Koda-next-edit 27.2% للمطابقة الدقيقة و 28.2% للحكم، بينما حصلت Zeta 2 على 17.
0% و 20.4% على التوالي. على عدة مجموعات بيانات، تعطي الشركة أولوية أعلى لتقييم الحكم، حيث أنها أنسب لمقارنة النماذج بصيغ استجابة مختلفة.
بالمتوسط البسيط، احتل نموذجها المرتبة الأولى، وبنتيجة المتوسط المرجح بقي من بين الرؤساء حتى في مواجهة النماذج الأكبر ذات 7B و 8B معامل. بشكل منفصل، تبرز Koda مجموعة بيانات NEP كمعيار أكثر استقلالية، لأنها ليست 'محلية' لأي من الأنظمة المقارنة. ظهرت الميزة بالفعل في الوضع التجريبي في البرنامج المساعد KodaCode 0.
9.0 لـ VS Code. تخطط الفريق لإثراء السياق بشكل أكبر مع أجزاء الكود المماثلة وتلميحات linter، واختبار نماذج أكبر إذا تمكنوا من الحفاظ على الكمون المطلوب.
اتجاه تطور آخر هو واجهة البرنامج المساعد: بالنسبة إلى NES، من المهم ليس فقط التنبؤ بالإصلاح، بل أيضاً عرضه بطريقة تسمح للمطور بقبول أو رفض الاقتراح بسرعة دون فقدان الزخم. تُظهر قصة Koda أن سوق أدوات الذكاء الاصطناعي للمبرمجين لا تقتصر على الوكلاء الذين يحاولون القيام بكل شيء في وقت واحد. بين التحرير اليدوي والتنفيذ المستقل بالكامل، توجد طبقة كبيرة من المهام حيث تأتي أعظم قيمة من النصائح السريعة والمحلية والمتوقعة مباشرة في المحرر.
إذا استمرت هذه النماذج في النمو من حيث الجودة دون فقدان السرعة، فقد تصبح هذه الفئة من المساعدين الشكل الأكثر انتشاراً للذكاء الاصطناعي في التطوير اليومي.
هل تريد التوقف عن قراءة الذكاء الاصطناعي والبدء باستخدامه؟
AI News هو موجز منسق لأخبار الذكاء الاصطناعي. تعلمك Hamidun Academy استخدام الذكاء الاصطناعي في عملك.