GitHub telah membuka perkembangan dalam penggunaan pembelajaran mesin untuk carian dan analisis kod

GitHub diperkenalkan projek CodeSearchNet, yang telah menyediakan model pembelajaran mesin dan set data yang diperlukan untuk menghurai, mengklasifikasi dan menganalisis kod dalam pelbagai bahasa pengaturcaraan. CodeSearchNet, serupa dengan ImageNet, termasuk koleksi besar coretan kod dengan anotasi yang memformalkan perkara yang dilakukan oleh kod itu. Komponen untuk model latihan dan contoh penggunaan CodeSearchNet ditulis dalam Python menggunakan rangka kerja Tensorflow dan diedarkan oleh di bawah lesen MIT.

Apabila mencipta CodeSearchNet, teknologi penghuraian teks bahasa semula jadi telah digunakan, membolehkan sistem pembelajaran mesin mengambil kira bukan sahaja ciri sintaksis, tetapi juga makna tindakan yang dilakukan oleh kod tersebut. Sistem GitHub terpakai dalam eksperimen tentang mengatur carian kod semantik menggunakan pertanyaan pada bahasa semula jadi (contohnya, apabila meminta "mengisih senarai rentetan", kod dengan pelaksanaan algoritma yang sepadan dipaparkan).

Set data yang dicadangkan termasuk lebih daripada 2 juta pautan ulasan kod, disediakan berdasarkan teks sumber perpustakaan terbuka sedia ada. Kod merangkumi teks sumber lengkap fungsi atau kaedah individu, dan ulasan menerangkan tindakan yang dilakukan oleh fungsi tersebut (dokumentasi terperinci disediakan). Pada masa ini, set data disediakan untuk Python, JavaScript, Ruby, Go, Java dan PHP. Contoh disediakan untuk menggunakan set data yang dicadangkan untuk melatih pelbagai jenis rangkaian saraf, termasuk Neural-Bag-Of-Words, RNN, Perhatian Diri (BERT) dan Hibrid 1D-CNN+Perhatian Diri.

Untuk membangunkan mekanisme carian bahasa semula jadi, satu set Cabaran CodeSearchNet telah disediakan tambahan, termasuk
99 tipikal pertanyaan dengan kira-kira 4 ribu anotasi pakar yang menerangkan pengikatan kod yang paling mungkin dalam set data CodeSearchNet Corpus, meliputi kira-kira 6 juta kaedah dan fungsi (saiz yang ditetapkan kira-kira 20 GB). Cabaran CodeSearchNet boleh berfungsi sebagai penanda aras untuk menilai keberkesanan kaedah tertentu untuk mencari kod bahasa semula jadi. Menggunakan alatan KubeFlow disediakan
contoh enjin carian kod.

Sumber: opennet.ru

Tambah komen