AI Umum

Umpan Balik yang Dihasilkan Kompiler untuk Model Bahasa Besar

Model bahasa besar (LLM) telah terbukti sukses dalam berbagai tugas di bidang rekayasa perangkat lunak, seperti pembuatan kode dan dokumentasi, penerjemahan kode antarbahasa pemrograman, penulisan uji unit, serta pendeteksian dan perbaikan bug. Ketersediaan kumpulan data kode sumber terbuka yang besar dan model yang mendukung Github seperti CodeLlama, ChatGPT, dan Codex untuk mengembangkan pemahaman statistik tentang berbagai bahasa secara signifikan meningkatkan pengalaman pengkodean. Beberapa model, seperti AlphaCode, dilatih sebelumnya pada tugas pemrograman kompetitif, memungkinkan model untuk mengoptimalkan kode pada tingkat sumber untuk beberapa bahasa.

Penelitian optimasi kode berbasis pembelajaran mesin sebelumnya mencoba berbagai teknik, mulai dari fitur yang dibuat secara manual hingga jaringan saraf grafik yang kompleks dan canggih. Namun, batasan umum dalam pendekatan ini adalah bahwa representasi program input yang diberikan ke model pembelajaran mesin tetap tidak lengkap, sehingga mengakibatkan hilangnya beberapa informasi penting. Misalnya, MLGO menawarkan wawasan tentang penyisipan fungsi tetapi tidak memiliki rekonstruksi yang akurat dari aspek-aspek seperti grafik panggilan dan aliran kontrol.

Untuk mengatasi masalah ini, LLM untuk penyetelan halus optimasi LLVM diusulkan, yang menunjukkan kemampuan penalaran kode yang luar biasa. Para peneliti dari Meta AI dan Rice University memperkenalkan paradigma unik dalam optimasi kompiler yang didukung oleh LLM dengan umpan balik kompiler untuk mengoptimalkan ukuran kode rakitan LLVM. Model tersebut mengambil LLVM IR yang tidak dioptimalkan sebagai input dan menghasilkan IR yang dioptimalkan, lintasan optimasi terbaik, dan jumlah instruksi dari IR yang tidak dioptimalkan dan dioptimalkan. Kemudian, input dikompilasi dengan lintasan optimasi yang dihasilkan dan dievaluasi untuk melihat apakah jumlah instruksi yang diprediksi benar jika IR yang dihasilkan dapat dikompilasi, dan jika sesuai dengan kode yang dikompilasi. Umpan balik ini dikembalikan ke LLM, dan kesempatan lain diberikan untuk mengoptimalkan kode.

Metode ini berlanjut dengan mengevaluasi konsistensi pembuatan model oleh kompiler dan memberikan umpan balik kepada model. Untuk setiap generasi model asli, jika daftar lintasan yang dihasilkan valid dan jumlah instruksi yang diprediksi benar dan dihitung, skor bleu antara kode yang dihasilkan dan kode diperoleh dengan mengkompilasi daftar lintasan yang dihasilkan. Kode yang dihasilkan dan dikompilasi dalam umpan balik juga disediakan.

Model yang diusulkan mengungguli model asli sebesar 0,53%, mempersempit kesenjangan dengan penyetel otomatis sebesar 10%. Di sisi lain, ketika pengambilan sampel diaktifkan, terbukti bahwa model asli mencapai hingga 98% dari kinerja penyetel otomatis ketika 100 sampel digunakan. Saat membandingkan kinerja model umpan balik iteratif dengan model asli, model tersebut diberi jumlah komputasi yang sama per sampel, dan ditemukan bahwa dengan dua atau lebih sampel dan suhu lebih tinggi dari 0,4, model asli mengungguli model umpan balik.

Para peneliti telah memberikan kontribusi berikut dalam makalah ini:

  • Menyajikan tiga model umpan balik yang dihasilkan kompiler untuk LLM.
  • Melakukan evaluasi 3 metode pengambilan sampel dengan umpan balik.
  • Mengevaluasi pembuatan umpan balik iteratif.

Sebagai kesimpulan, para peneliti dari Meta AI dan Rice University memperkenalkan gagasan umpan balik yang dihasilkan kompiler untuk LLM. Model dimulai dari LLVM IR yang tidak dioptimalkan dan memprediksi lintasan optimasi terbaik, jumlah instruksi, dan IR yang dioptimalkan. Kemudian, mereka membuat umpan balik tentang pembuatan model dan meminta model untuk mencoba lagi. Semua bentuk umpan balik mengungguli model asli pada suhu 0 sebesar 0,11%, 0,4%, dan 0,53%.