افتتح GitHub تطورات في استخدام التعلم الآلي للبحث عن التعليمات البرمجية وتحليلها

GitHub جيثب: المقدمة مشروع كود سيرش نت، والتي أعدت نماذج التعلم الآلي ومجموعات البيانات اللازمة لتحليل وتصنيف وتحليل التعليمات البرمجية في لغات البرمجة المختلفة. CodeSearchNet، على غرار IMAGEnet، يتضمن مجموعة كبيرة من مقتطفات التعليمات البرمجية مع التعليقات التوضيحية التي تضفي الطابع الرسمي على ما تفعله التعليمات البرمجية. تمت كتابة مكونات نماذج التدريب وأمثلة استخدام CodeSearchNet بلغة Python باستخدام إطار عمل Tensorflow و وزعت من خلال بموجب ترخيص معهد ماساتشوستس للتكنولوجيا.

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

تتضمن مجموعة البيانات المقترحة أكثر من مليوني رابط للتعليقات البرمجية، تم إعدادها بناءً على النصوص المصدرية للمكتبات المفتوحة الموجودة. يغطي الكود النص المصدر الكامل للوظائف أو الطرق الفردية، ويصف التعليق الإجراءات التي تقوم بها الوظيفة (يتم توفير الوثائق التفصيلية). حاليًا، يتم إعداد مجموعات البيانات لـ Python وJavaScript وRuby وGo وJava وPHP. يتم تقديم أمثلة على استخدام مجموعات البيانات المقترحة لتدريب أنواع مختلفة من الشبكات العصبية، بما في ذلك العصبية حقيبة من الكلمات, RNN, الاهتمام الذاتي (بيرت) و 1D-CNN + هجين الاهتمام الذاتي.

ولتطوير آليات البحث باللغة الطبيعية، تم أيضًا إعداد مجموعة من تحديات CodeSearchNet، بما في ذلك
99 نموذجي استعلامات تحتوي على حوالي 4 آلاف تعليق توضيحي للخبراء تصف روابط التعليمات البرمجية الأكثر احتمالية في مجموعة بيانات CodeSearchNet Corpus، والتي تغطي حوالي 6 ملايين طريقة ووظيفة (ضبط الحجم حوالي 20 جيجابايت). يمكن أن يكون تحدي CodeSearchNet بمثابة معيار لتقييم فعالية طرق معينة للبحث في رموز اللغة الطبيعية. استخدام الأدوات Kubeflow معد
مثال محرك بحث الكود.

المصدر: opennet.ru

إضافة تعليق