
Bergabunglah dengan buletin harian dan mingguan kami untuk pembaruan terbaru dan konten eksklusif tentang liputan AI terkemuka di industri. Pelajari lebih lanjut
Pengkodean dengan bantuan model AI terus berlanjut mendapatkan popularitas, tetapi banyak yang menyoroti Masalah yang muncul ketika pengembang mengandalkan asisten pengkodean.
Namun, para peneliti dari MIT, Universitas McGill, ETH Zurich, Universitas Johns Hopkins, Yale dan Mila-Quebec Artificial Intelligence Institute telah mengembangkan metode baru untuk memastikan bahwa kode yang dihasilkan AI lebih akurat dan bermanfaat. Metode ini mencakup berbagai bahasa pemrograman dan menginstruksikan model bahasa besar (LLM) untuk mematuhi aturan setiap bahasa.
Grup menemukan bahwa dengan mengadaptasi metode pengambilan sampel baru, model AI dapat dipandu untuk mengikuti aturan bahasa pemrograman dan bahkan meningkatkan kinerja model bahasa kecil (SLM), yang biasanya digunakan untuk pembuatan kode, melampaui model bahasa besar.
Dalam makalah ini, para peneliti menggunakan berurutan Monte Carlo (SMC) untuk “mengatasi sejumlah masalah penguraian semantik yang menantang, membimbing generasi dengan analisis statis dan dinamis tambahan.” Sequential Monte Carlo mengacu pada keluarga algoritma yang membantu mencari solusi untuk menyaring masalah.
João Loula, penulis co-lead dari makalah ini, mengatakan dalam sebuah wawancara dengan MIT's Campus Paper bahwa metode ini “dapat meningkatkan asisten pemrograman, analisis data bertenaga AI dan alat penemuan ilmiah.” Ini juga dapat memotong biaya komputasi dan lebih efisien daripada metode reranking.
Para peneliti mencatat bahwa kode yang dihasilkan AI dapat menjadi kuat, tetapi juga sering dapat mengarah pada kode yang mengabaikan aturan semantik bahasa pemrograman. Metode lain untuk mencegah ini dapat mendistorsi model atau terlalu memakan waktu.
Metode mereka membuat LLM mematuhi aturan bahasa pemrograman dengan membuang output kode yang mungkin tidak berfungsi lebih awal dalam proses dan “mengalokasikan upaya untuk output yang lebih mungkin valid dan akurat.”
Mengadaptasi SMC dengan pembuatan kode
Para peneliti mengembangkan arsitektur yang membawa SMC ke generasi kode “di bawah kendala sintaksis dan semantik yang beragam.”
“Tidak seperti banyak kerangka kerja sebelumnya untuk decoding yang dibatasi, algoritma kami dapat mengintegrasikan kendala yang tidak dapat dievaluasi secara bertahap selama seluruh kosa kata token, serta kendala yang hanya dapat dievaluasi pada interval yang tidak teratur selama generasi,” kata para peneliti dalam makalah.
Fitur-fitur utama dari mengadaptasi pengambilan sampel SMC dengan generasi model termasuk distribusi proposal di mana pengambilan sampel token-by-token dipandu oleh kendala murah, bobot penting yang benar untuk bias dan resampling yang merealokasi upaya menghitung ke arah generasi parsial.
Para peneliti mencatat bahwa sementara SMC dapat memandu model menuju kode yang lebih benar dan berguna, mereka mengakui bahwa metode tersebut mungkin memiliki beberapa masalah.
“Sementara pengambilan sampel yang penting membahas beberapa kekurangan decoding lokal, itu juga menderita kelemahan besar: koreksi berat dan potensi mahal tidak diintegrasikan sampai setelah urutan lengkap telah dihasilkan dari proposal. Ini adalah meskipun informasi penting tentang apakah urutan dapat memenuhi kendala yang sering tersedia jauh lebih awal dan dapat digunakan untuk menghindari sejumlah besar komputasi yang tidak perlu,” mereka tidak perlu.
Pengujian model
Untuk membuktikan teori mereka, Loula dan timnya menjalankan eksperimen untuk melihat apakah menggunakan SMC untuk merekayasa kode yang lebih akurat.
Eksperimen ini adalah:
- Python Code Generation pada Tugas Ilmu Data, yang menggunakan LLAMA 3 70B untuk kode garis demi baris dan menguji versi awal
- Generasi teks-ke-sql dengan llama 3 8b- instruksikan
- Kesimpulan Sasaran dalam Tugas Perencanaan Untuk Memprediksi Kondisi Sasaran Agen, dan juga menggunakan Llama 3 8b
- Sintesis molekuler untuk penemuan obat
Mereka menemukan bahwa menggunakan SMC meningkatkan model bahasa kecil, peningkatan akurasi dan ketahanan, dan mengungguli model yang lebih besar.
Mengapa itu penting
Model AI telah membuat insinyur dan coder lainnya bekerja lebih cepat dan lebih efisien. Ini juga memunculkan jenis insinyur perangkat lunak yang sama sekali baru: The Vibe Coder. Tetapi ada kekhawatiran tentang kualitas kode, kurangnya dukungan untuk pengkodean yang lebih kompleks dan biaya komputasi untuk pembuatan kode sederhana.
Metode baru, seperti mengadaptasi SMC, dapat membuat pengkodean bertenaga AI lebih berguna dan memungkinkan para insinyur untuk mempercayai kode yang dihasilkan oleh model lebih banyak.
Perusahaan lain telah mengeksplorasi cara untuk meningkatkan kode yang dihasilkan AI. Bersama-sama AI dan Agentica merilis DeepCoder-14b, yang memanfaatkan lebih sedikit parameter. Google juga meningkatkan fitur bantu kodenya untuk membantu meningkatkan kualitas kode.