Rumah > Artikel > Peranti teknologi > Pengekod sangat gembira! Microsoft mencadangkan CodePlan untuk mengautomasikan tugas pengekodan LLM merentas 168 pangkalan kod
Untuk model besar, mereka mahir dalam tugas pengekodan setempat.
Jika tugasan melibatkan berbilang fail saling bergantung, LLM tidak dapat menyelesaikan masalah
Microsoft Researcher A task rangka kerja rangkaian saraf bebas yang dipanggil CodePlan telah direka untuk tujuan ini 🎜#Alamat kertas: https://arxiv.org/pdf/2309.12499.pdf
Dalam kertas, CodePlan menyepadukan rantaian penyuntingan berbilang langkah (rantaian-pengeditan) ), ialah kaedah baharu yang menggabungkan analisis program, perancangan dan LLM.
Mari kita lihat secara terperinci, bagaimana CodePlan direka?
CodePlan: Model Besar + Perancangan
Dalam aktiviti kejuruteraan perisian, seperti pemindahan pakej perisian pelaporan Ralat statik untuk analisis atau ujian, serta menambah petunjuk jenis atau spesifikasi lain pada asas kod, melibatkan pengeditan meresap keseluruhan repositori kod.
Alat Pengekodan Sebagai contoh,Alat Pengekodan GitHub Copilot dan Code Whisperer telah mendapat sokongan daripada keupayaan model yang besar, menyediakan pengkod dengan penyelesaian kepada isu pengekodan setempat
Walau bagaimanapun, hakikatnya, " Tugas pengekodan peringkat repositori adalah lebih kompleks dan tidak boleh diselesaikan secara langsung oleh LLM, kerana kod dalam repositori saling bergantung dan keseluruhan repositori mungkin terlalu besar untuk disertakan 🎜🎜#Dalam penyelidikan ini, pasukan Microsoft menganggap rangka kerja pengekodan peringkat perpustakaan sebagai perancangan. masalah dan mencadangkan rangka kerja agnostik tugas yang dipanggil CodePlan.
CodePlan menggabungkan rantai edit berbilang langkah (pelan) di mana setiap langkah memanggil LLM pada lokasi kod. Konteks di lokasi kod itu datang daripada keseluruhan repositori, perubahan kod sebelumnya dan arahan khusus tugas.
CodePlan ialah gabungan baharu berdasarkan analisis kebergantungan tambahan, menukar kemungkinan analisis impak dan algoritma perancangan penyesuaian #🎜🎜 ##🎜🎜 #
PictureRajah berikut menunjukkan perubahan dalam API perpustakaan kompleks Penyelidik Microsoft ditugaskan untuk memindahkan pangkalan kod mengikut perubahan ini.
Picture
Sebelah kiri kod Bahagian 3 menunjukkan asas kod dan penggunaan Bahagian 3 berkaitan dengan perpustakaan kompleks
Secara khusus, fungsi kaedah dalam fail Create.cs memanggil kaedah create_complex dalam perpustakaan, dan kaedah Proses dalam fail Process.cs .cs panggilan func.
Picture
Pengkaji menyerahkan huraian tugasan dan func body LLM untuk menjana kod fungsi yang diubah suai, seperti yang ditunjukkan di sebelah kanan Rajah 3 Ia mengembalikan objek jenis Kompleks dan bukannya tuple dua nilai titik terapung.Perhatikan bahawa pengeditan ini mengakibatkan perubahan dalam tandatangan fungsi kaedah - ia kini mengembalikan objek jenis Kompleks.
Apa yang perlu diubah suai ialah: pemanggil func kaedah perlu diubah suai, seperti kaedah proses dalam fail Process.cs, seperti yang ditunjukkan di bahagian bawah sudut kiri Rajah 3. Tanpa pengubahsuaian yang sesuai pada badan kaedah proses, kod tidak akan dibina!
Bahagian bawah sebelah kanan Rajah 3 menunjukkan pengubahsuaian yang sesuai pada kaedah proses, yang boleh membawa repositori kepada keadaan yang konsisten supaya tidak akan berlaku ralat semasa penyusunan.
Tugas utama penyelidik adalah untuk mewujudkan "sistem pengekodan peringkat repositori" yang secara automatik boleh menjana spesifikasi terbitan yang diperlukan untuk penyuntingan
#🎜 🎜 #Tugas pengekodan peringkat perpustakaan dipacu LLM ditakrifkan seperti berikut:
Picture
Dalam rangka kerja keseluruhan CodePlan, input termasuk repositori, arahan melalui bahasa semula jadi, atau set Edit kod awal menyatakan tugas pembenihan spesifikasi, oracle ketepatan dan LLM
CodePlan mencipta graf pelan di mana setiap nod mewakili kod LLM perlu melaksanakan tugas Mengedit, manakala tepi mewakili nod sasaran yang perlu dilaksanakan selepas nod sumber
CodePlan memantau suntingan kod dan mengembangkan graf pelan secara adaptif.
Setelah semua langkah dalam pelan telah selesai, repositori akan dianalisis oleh oracle. Jika Oracle mengesahkan repositori, tugas itu selesai. Jika ralat ditemui, laporan ralat berfungsi sebagai spesifikasi benih untuk pusingan seterusnya penjanaan dan pelaksanaan pelan.
Picture
Selain itu, algoritma CodePlanncy juga mengekalkan graf, Fig dependency . 4 menggambarkan struktur graf kebergantungan.
Picture
# 🎜🎜 #Setiap tugasan dinilai pada berbilang tugas asas kod, setiap satu memerlukan perubahan yang saling bergantung kepada berbilang fail (2-97 fail). Tidak pernah sebelum ini tahap kerumitan ini diautomasikan menggunakan LLM Hasil daripada tugas pengekodan
menunjukkan bahawa CodePlan lebih konsisten dengan kebenaran asas berbanding dengan garis dasar, membolehkan 5 /6 repositori untuk lulus semakan kesahihan seperti binaan bebas ralat dan penyuntingan kod yang betul, dan ketepatan yang dipertingkatkan
Ia berjaya menangani banyak cabaran dan membuka kemungkinan baharu untuk cekap dan amalan kejuruteraan perisian yang boleh dipercayai#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜#rujukan:#🎜🎜 ## 🎜🎜 ## 🎜🎜#https: //www.php.cn/link/23b1f559d8bd157d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0bd. 🎜##🎜 🎜#
Atas ialah kandungan terperinci Pengekod sangat gembira! Microsoft mencadangkan CodePlan untuk mengautomasikan tugas pengekodan LLM merentas 168 pangkalan kod. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!