berita

Menjadi yang teratas dalam daftar insinyur perangkat lunak AI sumber terbuka, solusi tanpa agen UIUC memecahkan masalah pemrograman nyata

2024-07-15

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Kolom AIxiv adalah kolom tempat Machine Heart menerbitkan konten akademis dan teknis. Dalam beberapa tahun terakhir, kolom Heart of the Machine AIxiv telah menerima lebih dari 2.000 laporan, mencakup laboratorium terkemuka dari universitas dan perusahaan besar di seluruh dunia, yang secara efektif mendorong pertukaran dan diseminasi akademis. Jika Anda memiliki karya luar biasa yang ingin Anda bagikan, silakan berkontribusi atau hubungi kami untuk pelaporan. Email pengiriman: [email protected]; [email protected]

Penulis makalah ini semuanya berasal dari tim Profesor Zhang Lingming di University of Illinois di Urbana-Champaign (UIUC), termasuk: Steven Xia, mahasiswa doktoral tahun keempat, yang arahan penelitiannya adalah perbaikan kode otomatis berdasarkan AI besar model; Deng Yinlin, mahasiswa doktoral tahun keempat, yang arah penelitiannya adalah pembuatan Kode berdasarkan model AI besar, magang penelitian ilmiah, saat ini menjadi mahasiswa junior di UIUC. Guru Zhang Lingming saat ini adalah profesor madya di Departemen Ilmu Komputer di UIUC, terutama terlibat dalam penelitian yang berkaitan dengan rekayasa perangkat lunak, pembelajaran mesin, dan model kode besar.

Untuk informasi lebih rinci, silakan kunjungi situs pribadi Guru Zhang: https://lingming.cs.illinois.edu/

Sejak Devin (insinyur perangkat lunak AI otomatis pertama) diusulkan, desain Agen AI untuk rekayasa perangkat lunak telah menjadi fokus penelitian. Semakin banyak insinyur perangkat lunak otomatis AI berbasis Agen telah diusulkan dan mencapai hasil di bangku SWE kumpulan data. Ini telah mencapai kinerja yang baik dan secara otomatis memperbaiki banyak masalah GitHub yang sebenarnya.

Namun, sistem Agen yang kompleks akan menimbulkan overhead dan ketidakpastian tambahan. Apakah kita benar-benar perlu menggunakan Agen yang sedemikian rumit untuk menyelesaikan masalah GitHub? Apakah solusi yang tidak bergantung pada agen dapat mendekati kinerjanya?

Berangkat dari dua masalah ini, tim pengajar Zhang Lingming dari University of Illinois di Urbana-Champaign (UIUC) mengusulkan OpenAutoCoder-Agentless, solusi Agent-less yang sederhana, efisien, dan sepenuhnya open source yang dapat menyelesaikan masalah GitHub sebenarnya hanya dengan $0,34. Agentless telah menarik lebih dari 300 bintang GitHub di GitHub hanya dalam beberapa hari, dan berada di peringkat tiga teratas dalam daftar makalah ML terpanas mingguan DAIR.AI.



Artikel utama: AGENTLESS : Mengungkap Agen Rekayasa Perangkat Lunak Berbasis LLM

Alamat kertas: https://huggingface.co/papers/2407.01489

Kode sumber terbuka: https://github.com/OpenAutoCoder/Agentless

Ilmuwan Riset AWS Leo Boytsov mengatakan: "Kerangka kerja Agentless mengungguli semua solusi Agen sumber terbuka dan hampir mencapai level tertinggi di SWE Bench Lite (27%). Selain itu, kerangka kerja ini mengalahkan semua solusi sumber terbuka dengan biaya yang jauh lebih rendah. Kerangka kerja ini menggunakan A pendekatan kueri hierarki (mengajukan pertanyaan LLM untuk menemukan file, kelas, fungsi, dll.) memanfaatkan LLM tetapi tidak mengizinkan LLM membuat keputusan perencanaan."



Agentless adalah pendekatan otomatis terhadap masalah pengembangan perangkat lunak yang menggunakan pendekatan dua fase sederhana untuk menemukan dan memperbaiki bug di basis kode Anda. Pada fase pencarian lokasi, Agentless menggunakan pendekatan hierarki untuk secara bertahap mempersempit file, kelas/fungsi, dan lokasi pengeditan tertentu yang mencurigakan. Untuk perbaikan, ia menggunakan format diff sederhana (direferensikan dari alat sumber terbuka Aider) untuk menghasilkan beberapa kandidat tambalan, menyaring dan mengurutkannya.



Para peneliti membandingkan Agentless dengan agen perangkat lunak AI yang sudah ada, termasuk proyek sumber terbuka dan komersial/sumber tertutup yang canggih. Yang mengejutkan, Agentless mampu mengungguli semua agen perangkat lunak open source yang ada dengan biaya lebih rendah! Agentless memecahkan 27,33% masalah, yang tertinggi di antara solusi sumber terbuka, dan biaya rata-rata hanya $0,29 untuk menyelesaikan setiap masalah, dan biaya rata-rata hanya sekitar $0,34 untuk semua masalah (termasuk yang dapat dipecahkan dan belum terselesaikan).



Tidak hanya itu, Agentless juga mempunyai potensi untuk ditingkatkan. Agentless dapat menyelesaikan 41% masalah ketika mempertimbangkan semua patch yang dihasilkan, batas atas yang menunjukkan ruang yang signifikan untuk perbaikan dalam tahap penyortiran dan pemilihan patch. Selain itu, Agentless mampu memecahkan beberapa masalah unik yang bahkan alat komersial terbaik (Agen Lingma Alibaba) tidak dapat menyelesaikannya, sehingga menunjukkan bahwa alat tersebut dapat digunakan sebagai pelengkap alat yang sudah ada.



Analisis kumpulan data SWE-bench Lite

Para peneliti juga melakukan inspeksi manual dan analisis terperinci pada kumpulan data SWE-bench Lite.

Studi tersebut menemukan bahwa 4,3% masalah dalam kumpulan data SWE-bench Lite memberikan jawaban lengkap langsung dalam deskripsi masalah, yaitu patch perbaikan yang benar. 10% pertanyaan lainnya menjelaskan langkah-langkah tepat menuju solusi yang benar. Hal ini menunjukkan bahwa beberapa masalah di SWE-bench Lite mungkin lebih mudah diselesaikan.

Selain itu, tim peneliti mengamati bahwa 4,3% masalah mencakup solusi yang diusulkan pengguna atau langkah-langkah dalam deskripsi masalah, namun solusi ini tidak konsisten dengan perbaikan sebenarnya yang dilakukan pengembang. Hal ini semakin mengungkapkan potensi masalah dengan tolok ukur ini, karena solusi yang menyesatkan ini dapat menyebabkan alat AI menghasilkan solusi yang salah hanya dengan mengikuti deskripsi masalah.

Dalam hal kualitas deskripsi masalah, para peneliti mengamati bahwa meskipun sebagian besar tugas di SWE-bench Lite berisi informasi yang cukup, dan banyak tugas juga memberikan contoh kegagalan untuk mereproduksi kesalahan, masih ada 9,3% masalah yang tidak menyertakan informasi yang cukup. Misalnya, Anda perlu mengimplementasikan fungsi baru atau menambahkan pesan kesalahan, namun nama fungsi spesifik atau string pesan kesalahan spesifik tidak diberikan dalam deskripsi masalah. Artinya meskipun fungsionalitas dasar diterapkan dengan benar, pengujian akan gagal jika nama fungsi atau string pesan kesalahan tidak sama persis.



Para peneliti di Universitas Princeton dan salah satu penulis SWE-Bench mengkonfirmasi temuan mereka kepada Ofir Press: "Agentless melakukan analisis manual yang bagus terhadap SWE-bench Lite. Mereka percaya bahwa skor maksimum teoretis pada Lite mungkin 90,7%. Saya rasa batas atas sebenarnya mungkin lebih rendah (sekitar 80%). Beberapa pertanyaan memiliki informasi yang tidak memadai, dan pertanyaan lainnya terlalu ketat.”



SWE-bench Lite-S: kumpulan masalah yang ketat dan terfilter

Menanggapi permasalahan tersebut, peneliti mengusulkan subset permasalahan yang ketat SWE-bench Lite-S (berisi 252 pertanyaan). Secara khusus, kami mengecualikan dari SWE-bench Lite (berisi 300 pertanyaan) pertanyaan-pertanyaan yang berisi patch yang tepat, solusi yang menyesatkan, atau tidak memberikan informasi yang cukup dalam deskripsi masalah. Hal ini menghilangkan pertanyaan yang tidak masuk akal dan menstandardisasi tingkat kesulitan tolok ukur. Dibandingkan dengan SWE-bench Lite asli, benchmark yang difilter lebih akurat mencerminkan kemampuan sebenarnya dari alat pengembangan perangkat lunak otomatis.

Kesimpulan

Meskipun pengembangan perangkat lunak berbasis Agen sangat menjanjikan, penulis percaya bahwa sudah waktunya bagi komunitas teknologi dan riset untuk berhenti dan memikirkan metode desain dan evaluasi utama, daripada terburu-buru merilis lebih banyak Agen. Para peneliti berharap Agentless dapat membantu mengatur ulang landasan dan arah agen rekayasa perangkat lunak di masa depan.