Satuan IBM Penelitian Artificial Intelligence (AI) mempresentasikan kumpulan data dari 14 juta sampel untuk mengembangkan model pembelajaran mesin yang dapat membantu dalam tugas pemrograman. Sebuah dataset bernama Proyek CodeNet, mengambil namanya dari ImageNet, repositori gambar terkenal yang merevolusi visi komputer dan pembelajaran mendalam.
Pemrogram menemukan masalah baru dan mengeksplorasi berbagai solusi, menggunakan banyak mekanisme pemikiran sadar dan bawah sadar. Sebagian besar algoritme pembelajaran mesin memerlukan tugas yang terdefinisi dengan baik dan sejumlah besar data beranotasi untuk mengembangkan model yang dapat memecahkan masalah yang sama.
Banyak upaya telah dilakukan untuk membuat kumpulan data dan tolok ukur untuk pengembangan dan evaluasi sistem AI-untuk-kode oleh komunitas pakar. Namun, mengingat sifat pengembangan perangkat lunak yang kreatif dan terbuka, sangat sulit untuk membuat kumpulan data yang sempurna untuk pemrograman. Dengan Project CodeNet, peneliti IBM berusaha membuat kumpulan data multiguna yang dapat digunakan untuk melatih model pembelajaran mesin pada berbagai tugas. Pencipta CodeNet menggambarkannya sebagai "kumpulan data berskala sangat besar, beragam, dan berkualitas tinggi untuk mempercepat kemajuan algoritmik dalam AI untuk kode."
Kumpulan data berisi 14 juta contoh dari 500 juta baris kode yang ditulis dalam 55 bahasa pemrograman yang berbeda. Sampel kode diperoleh dari hampir 4000 tugas yang diajukan yang diposting di platform pengkodean online AIZU dan AtCoder. Contoh kode mencakup jawaban yang benar dan salah untuk tugas yang diberikan.
Juga menarik:
- Hubble memasuki mode aman karena kesalahan perangkat lunak pada komputer terpasang
- Masalah lain untuk CD Projekt: Peretas mengancam akan membocorkan kode sumber game ke jaringan
Salah satu fitur utama CodeNet adalah jumlah anotasi yang ditambahkan ke contoh. Setiap tugas pengkodean yang termasuk dalam kumpulan data memiliki deskripsi tekstual, serta batas waktu dan memori CPU. Setiap pengiriman kode berisi selusin informasi, termasuk bahasa, tanggal pengiriman, ukuran, waktu eksekusi, penerimaan, dan jenis kesalahan. Peneliti IBM juga berusaha keras untuk memastikan bahwa kumpulan data seimbang di berbagai parameter, termasuk bahasa pemrograman, penerimaan, dan jenis kesalahan.
CodeNet bukan satu-satunya kumpulan data untuk melatih model pembelajaran mesin pada tugas pemrograman. Namun ada beberapa ciri yang membedakannya. Yang pertama adalah besarnya kumpulan data, termasuk jumlah sampel dan keragaman bahasa. Tapi mungkin yang lebih penting adalah metadata yang disertakan dengan contoh kode. Anotasi kaya yang ditambahkan ke CodeNet membuatnya cocok untuk beragam tugas, tidak seperti kumpulan data pengkodean lain yang berspesialisasi dalam tugas pemrograman tertentu.
Ini pikiran bertiup.
Dengan GPT-3, saya membangun generator layout di mana Anda hanya menggambarkan layout yang Anda inginkan, dan menghasilkan kode JSX untuk Anda.
APA foto.twitter.com/w8JkrZO4lk
- Sharif Shameem (@sharifshameem) Juli 13, 2020
Ada beberapa cara untuk menggunakan CodeNet. Salah satunya adalah penerjemahan bahasa. Karena setiap tugas pengkodean dalam kumpulan data berisi representasi bahasa pemrograman yang berbeda, ilmuwan data dapat menggunakannya untuk membuat model pembelajaran mesin yang menerjemahkan kode dari satu bahasa ke bahasa lain. Ini bisa nyaman bagi organisasi yang ingin mem-porting kode lama ke bahasa baru dan membuatnya dapat diakses oleh programmer generasi baru.
Baca juga:
- IBM memperkenalkan teknologi manufaktur chip 2nm pertama di dunia
- IBM sedang mengembangkan kecerdasan buatan untuk menemukan antibiotik baru
Tradisi dan keturunan harus bermain bersama dengan pemikiran yang berbeda, dengan generasi termuda dari algoritma saraf dan metode ML dalam mengajukan masalah, saling memperbaiki satu sama lain
Seiring berjalannya waktu, level programmer akan semakin menurun (dibandingkan sekarang). Artinya, dimungkinkan untuk menulis kode miring dan bengkok dalam "bahasa sial". Dan kemudian mesin akan mengoptimalkan, dan akan memungkinkan untuk mendapatkan kode yang dioptimalkan dari programmer assembler profesional (atau bahkan lebih baik).