Pengarang kertas baharu mencadangkan cara untuk "meningkatkan" penjanaan kod.
Penjanaan kod ialah keupayaan yang semakin penting dalam kecerdasan buatan. Ia secara automatik menjana kod komputer berdasarkan penerangan bahasa semula jadi dengan melatih model pembelajaran mesin. Teknologi ini mempunyai prospek aplikasi yang luas dan boleh mengubah spesifikasi perisian kepada kod yang boleh digunakan, mengautomasikan pembangunan bahagian belakang dan membantu pengaturcara manusia untuk meningkatkan kecekapan kerja.
Walau bagaimanapun, menjana kod berkualiti tinggi masih mencabar untuk sistem AI, berbanding tugas bahasa seperti terjemahan atau ringkasan. Kod mesti mematuhi sintaks bahasa pengaturcaraan sasaran dengan tepat, mengendalikan kes tepi dan input yang tidak dijangka dengan anggun, dan mengendalikan banyak butiran kecil perihalan masalah dengan tepat. Malah ralat kecil yang mungkin kelihatan tidak berbahaya di kawasan lain boleh mengganggu sepenuhnya kefungsian program, menyebabkan ia gagal untuk menyusun atau dijalankan.
Baru-baru ini, penyelidik di CodiumAI mencadangkan AlphaCodium, kaedah baharu yang boleh meningkatkan keupayaan penjanaan kod model bahasa besar seperti GPT-4 dengan ketara. Maksud mereka ialah hanya memperhalusi perkataan gesaan mempunyai batasan yang wujud dalam menyelesaikan masalah pengekodan yang kompleks. Sebaliknya, mereka mereka bentuk proses berbilang peringkat yang memfokuskan pada penjanaan, jalankan dan penyahpepijatan secara berulang terhadap kes ujian, yang membolehkan model belajar daripada amalan.
Dalam tugasan bahasa semula jadi, kejuruteraan pembayang merujuk kepada penalaan teliti kata-kata dan struktur pembayang untuk membimbing model menghasilkan output yang diingini. Contohnya, menambah frasa "Tulis ringkasan ringkas:" sebelum teks input boleh menyebabkan model menjana ringkasan yang lebih tepat.
Kejuruteraan segera telah terbukti sangat berkesan dalam melakukan penjanaan teks untuk membimbing tingkah laku model bahasa besar. Walau bagaimanapun, apabila ia datang kepada masalah pengekodan, penyelidik mendapati bahawa walaupun dengan pelarasan yang meluas tepat pada masanya, hanya keuntungan kecil boleh dicapai. Penemuan ini menimbulkan pemikiran. Oleh itu, menjana kod berkualiti tinggi masih memerlukan penyelesaian lain:
Keperluan struktur ini berada di luar skop penjanaan teks dan tidak boleh dikod keras ke dalam gesaan. Gesaan itu sendiri tidak mempunyai kemahiran pengekodan dan maklum balas konkrit yang diperlukan untuk pembelajaran model.
Untuk menangani cabaran ini, penyelidik membangunkan proses lelaran yang distruktur khusus untuk masalah penjanaan kod. Inovasi utama ialah menggunakan hasil pelaksanaan kod yang dijana sebagai isyarat pembelajaran untuk memberikan maklum balas langsung.
Proses AlphaCodium mempunyai dua peringkat utama:
Pra-pemprosesanDengan membuat alasan secara berperingkat tentang masalah, membangunkan hipotesis penyelesaian, memperluaskan liputan ujian, dan menjana kod dan nyahpepijat secara berulang, model belajar melalui pengalaman—kemahiran yang diperlukan untuk penjanaan kod berkualiti tinggi.
Rajah 1. Contoh gesaan dengan output berstruktur (Jana Fasa Penyelesaian Kemungkinan)
Penyelidik mendapati bahawa mereka bentuk proses dengan antara muka dan matlamat yang jelas adalah lebih baik berbanding modul model hujung ke hujung untuk mendapatkan hasil yang lebih baik. Setiap fasa mula-mula memfokuskan pada subtugas yang lebih mudah untuk membina pengetahuan dan mendedahkan cerapan yang memaklumkan fasa hiliran. Peringkat huluan seperti penjanaan ujian tidak memerlukan penyelesaian lengkap, hanya penaakulan asas.
Para penyelidik menilai AlphaCodium terhadap penanda aras CodeContests, yang mengandungi beratus-ratus masalah pengekodan daripada pertandingan pengaturcaraan yang kompetitif.
Rajah 2. Penerangan dan refleksi masalah - contoh soalan CodeContests biasa, refleksi kendiri tentang masalah berdasarkan kecerdasan buatan. Walaupun penerangan awal panjang dan kompleks, refleksi kendiri yang betul boleh menjadikan masalah lebih jelas dan lebih koheren, membawa kepada penyelesaian kod yang lebih baik
Berbanding model GPT-4, AlphaCodium akan mengesahkan berbanding dengan petua tunggal yang sangat dioptimumkan Kod ketepatan penjanaan pada set meningkat daripada 19% kepada 44%. Faedah ini berlaku merentas saiz model dan set ujian yang berbeza, dan jauh lebih berkesan daripada projek petunjuk yang berasingan.
AlphaCodium juga menunjukkan prestasi yang lebih baik daripada kaedah yang diterbitkan sebelum ini, seperti AlphaCode dan CodeChain, sambil menggunakan sumber pengkomputeran yang lebih sedikit. Contohnya, dengan mengelakkan penjanaan kekerasan yang tidak perlu, ketepatannya adalah setanding dengan AlphaCode sambil memerlukan pertanyaan model 10,000 kali lebih sedikit.
Hasil ini menunjukkan nilai mereka bentuk sistem AI secara holistik di sekitar struktur tugas, dan bukannya menganggapnya sebagai penjana teks tujuan umum. Dengan menggabungkan kod berulang yang berjalan dan menyahpepijat, AlphaCodium menyelaraskan proses latihan dengan lebih baik dengan matlamat utama untuk menghasilkan kod praktikal yang mantap.
Walaupun ditunjukkan terhadap masalah pengaturcaraan yang kompetitif, konsep yang digunakan dalam AlphaCodium memberikan pengalaman yang lebih luas terpakai untuk penjanaan kod yang memajukan AI:
AlphaCodium menyediakan paradigma baharu yang menjanjikan untuk penjanaan kod berdasarkan amalan terbaik kejuruteraan perisian. Masih terdapat soalan penyelidikan terbuka mengenai kebolehgeneralisasian dan overhed pengiraan. Tetapi prinsip yang dibentangkan di sini (belajar daripada pengalaman, pembangunan dipacu ujian, penaakulan modular dan penyahpepijatan berulang) nampaknya menyediakan asas yang kukuh untuk meningkatkan keupayaan pengekodan untuk AI.
Pautan kertas: https://arxiv.org/pdf/2401.08500.pdf.
Asas kod: https://github.com/Codium-ai/AlphaCodium.
Tajuk asal: "Kejuruteraan aliran" menggandakan ketepatan penjanaan kod (19% lwn 44%), pengarang: Mike Young
Pautan: https://notes.aimodels.fyi/flow-engineering-intensifies-for- penjanaan kod/.
Atas ialah kandungan terperinci Kejuruteraan Trafik menggandakan ketepatan penjanaan kod: daripada 19% kepada 44%. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!