Rumah  >  Artikel  >  Peranti teknologi  >  Kejuruteraan Trafik menggandakan ketepatan penjanaan kod: daripada 19% kepada 44%

Kejuruteraan Trafik menggandakan ketepatan penjanaan kod: daripada 19% kepada 44%

WBOY
WBOYke hadapan
2024-02-05 09:15:09723semak imbas

Pengarang kertas baharu mencadangkan cara untuk "meningkatkan" penjanaan kod.

Kejuruteraan Trafik menggandakan ketepatan penjanaan kod: daripada 19% kepada 44%

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.

Keterbatasan Kejuruteraan Petunjuk

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:

  • Tepat padan sintaks bahasa pengaturcaraan sasaran
  • Kendalikan kes sudut dan input yang tidak dijangka dengan anggun
  • yang diterangkan dalam semua butiran kecil penyataan Dan keperluan
  • pastikan kod disusun dan berjalan dengan betul untuk semua input yang sah

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.

Proses Lelaran AlphaCodium

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-pemprosesan

  • Model menghurai penerangan masalah ke dalam peluru untuk mengeluarkan butiran penting.
  • Terangkan logik yang dimaksudkan di sebalik setiap contoh input/output.
  • Sediakan dua atau tiga penyelesaian bahasa semula jadi.
  • Jana kes ujian berbeza tambahan untuk liputan kod.
Lelaran Kod

  • Model menjana penyelesaian kod awal.
  • Jalankan kod berulang kali terhadap kes ujian awam dan betulkan sebarang ralat yang berlaku.
  • Lakukan perkara yang sama untuk kes ujian yang dihasilkan oleh model.
  • Kes ujian tambahan ditambah pada rangkaian "sauh ujian" yang semakin meningkat untuk mengelakkan regresi.

Dengan 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.

Kejuruteraan Trafik menggandakan ketepatan penjanaan kod: daripada 19% kepada 44%

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.

Hasil Eksperimen

Para penyelidik menilai AlphaCodium terhadap penanda aras CodeContests, yang mengandungi beratus-ratus masalah pengekodan daripada pertandingan pengaturcaraan yang kompetitif.

Kejuruteraan Trafik menggandakan ketepatan penjanaan kod: daripada 19% kepada 44%

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.

Impak Yang Lebih Luas

Walaupun ditunjukkan terhadap masalah pengaturcaraan yang kompetitif, konsep yang digunakan dalam AlphaCodium memberikan pengalaman yang lebih luas terpakai untuk penjanaan kod yang memajukan AI:

  • Kejuruteraan sahaja untuk bekerja dengan Terdapat had Kejuruteraan tugas kod yang kompleks. Pengalaman menyelesaikan masalah yang konkrit adalah kritikal.
  • Spesifikasi pembangunan berasaskan ujian boleh menyediakan asas untuk latihan model. Ujian ini menyediakan fungsi kecergasan yang jelas.
  • Penyahpepijatan kod berulang memfokuskan penambahbaikan model pada ralat yang sebenarnya berlaku.
  • Pelanjutan liputan ujian menyerlahkan jurang generalisasi yang tidak kelihatan dalam pembayang.
  • Pembuatan keputusan yang lembut dengan pengesahan berganda mengurangkan kerentanan dan berat sebelah.

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!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam