GitHub telah membuka pengembangan penggunaan pembelajaran mesin untuk pencarian dan analisis kode

GitHub diperkenalkan proyek CodeSearchNet, yang telah menyiapkan model pembelajaran mesin dan kumpulan data yang diperlukan untuk menguraikan, mengklasifikasikan, dan menganalisis kode dalam berbagai bahasa pemrograman. CodeSearchNet, mirip dengan IMAGEnet, menyertakan banyak koleksi cuplikan kode dengan anotasi yang memformalkan fungsi kode. Komponen untuk model pelatihan dan contoh penggunaan CodeSearchNet ditulis dengan Python menggunakan kerangka Tensorflow dan didistribusikan oleh di bawah lisensi MIT.

Saat membuat CodeSearchNet, teknologi penguraian teks bahasa alami digunakan, yang memungkinkan sistem pembelajaran mesin memperhitungkan tidak hanya fitur sintaksis, tetapi juga arti dari tindakan yang dilakukan oleh kode. Sistem GitHub terapan dalam percobaan mengatur pencarian kode semantik menggunakan kueri di bahasa alami (misalnya, ketika meminta "mengurutkan daftar string", kode dengan implementasi algoritma yang sesuai akan ditampilkan).

Kumpulan data yang diusulkan mencakup lebih dari 2 juta tautan kode-komentar, yang disiapkan berdasarkan teks sumber perpustakaan terbuka yang ada. Kode mencakup teks sumber lengkap dari masing-masing fungsi atau metode, dan komentar menjelaskan tindakan yang dilakukan oleh fungsi tersebut (dokumentasi terperinci disediakan). Saat ini, kumpulan data disiapkan untuk Python, JavaScript, Ruby, Go, Java, dan PHP. Contoh penggunaan kumpulan data yang diusulkan untuk melatih berbagai jenis jaringan saraf, termasuk Kata-Kata Neural-Kantong, RNN, Perhatian Diri (BERT) dan 1D-CNN+Hibrida Perhatian Diri.

Untuk mengembangkan mekanisme pencarian bahasa alami, serangkaian Tantangan CodeSearchNet juga telah disiapkan, termasuk
99 tipikal kueri dengan sekitar 4 ribu anotasi ahli yang menjelaskan pengikatan kode yang paling mungkin terjadi dalam kumpulan data CodeSearchNet Corpus, yang mencakup sekitar 6 juta metode dan fungsi (mengatur ukuran sekitar 20 GB). Tantangan CodeSearchNet dapat berfungsi sebagai tolok ukur untuk mengevaluasi efektivitas metode tertentu dalam mencari kode bahasa alami. Menggunakan alat kubeflow siap
contoh mesin pencari kode.

Sumber: opennet.ru

Tambah komentar