GitHub, kod arama ve analizi için makine öğreniminin kullanımında gelişmeler başlattı

GitHub gönderilen proje KodArama AğıÇeşitli programlama dillerinde kodun ayrıştırılması, sınıflandırılması ve analiz edilmesi için gerekli makine öğrenmesi modellerini ve veri setlerini hazırlayan . CodeSearchNet, buna benzer IMAGEnet, kodun ne yaptığını resmileştiren ek açıklamalar içeren geniş bir kod parçacıkları koleksiyonu içerir. Eğitim modellerine yönelik bileşenler ve CodeSearchNet kullanım örnekleri, Tensorflow çerçevesi kullanılarak Python'da yazılmıştır ve tarafından dağıtıldı MIT lisansı altında.

CodeSearchNet oluşturulurken, makine öğrenimi sistemlerinin yalnızca sözdizimsel özellikleri değil, aynı zamanda kod tarafından gerçekleştirilen eylemlerin anlamını da hesaba katmasına olanak tanıyan doğal dildeki metin ayrıştırma teknolojileri kullanıldı. GitHub sistemi uygulamak sorguları kullanarak anlamsal kod aramasını organize etmeye yönelik deneylerde Doğal lisan (örneğin, "dizelerin listesini sıralama" isteğinde bulunulduğunda, karşılık gelen algoritmaların uygulanmasını içeren kod görüntülenir).

Önerilen veri seti, mevcut açık kütüphanelerin kaynak metinlerine dayanarak hazırlanan 2 milyondan fazla kod-yorum bağlantısını içermektedir. Kod, bireysel işlevlerin veya yöntemlerin kaynak metninin tamamını kapsar ve yorum, işlev tarafından gerçekleştirilen eylemleri açıklar (ayrıntılı belgeler sağlanır). Şu anda Python, JavaScript, Ruby, Go, Java ve PHP için veri setleri hazırlanmaktadır. Aşağıdakiler de dahil olmak üzere çeşitli sinir ağlarını eğitmek için önerilen veri kümelerinin kullanımına ilişkin örnekler verilmiştir: Sinirsel Kelime Torbası, RNN, Öz-Dikkat (BERT) ve 1D-CNN+Öz-Dikkat Hibrit.

Doğal dil arama mekanizmalarını geliştirmek için ek olarak bir dizi CodeSearchNet Yarışması hazırlanmıştır.
99 tipik Yaklaşık 4 milyon yöntem ve işlevi kapsayan CodeSearchNet Corpus veri kümesindeki en olası kod bağlamalarını açıklayan yaklaşık 6 bin uzman açıklamasıyla sorgular (boyutu ayarla yaklaşık 20 GB). CodeSearchNet Challenge, doğal dil kodunu aramaya yönelik belirli yöntemlerin etkinliğini değerlendirmek için bir kıyaslama görevi görebilir. Araçları kullanma KubeFlow hazırlanmış
örnek kod arama motoru.

Kaynak: opennet.ru

Yorum ekle