SelfCodeAlign: Penyelarasan Otomatis untuk Pembangkitan Kode
Author
Venue
NeurIPS 2024
Abstract
Penyesuaian instruksi adalah pendekatan penyempurnaan terawasi yang secara signifikan meningkatkan kemampuan model bahasa besar (LLM) dalam mengikuti instruksi manusia. Kami mengusulkan SelfCodeAlign, pipa kerja pertama yang sepenuhnya transparan dan fleksibel untuk menyelaraskan kode LLMs secara mandiri tanpa memerlukan anotasi manusia yang ekstensif atau distilasi. SelfCodeAlign menggunakan model dasar yang sama untuk inferensi sepanjang proses pembangkitan data. Pertama, ia mengekstrak konsep-konsep pemrograman yang beragam dari potongan kode awal berkualitas tinggi untuk menghasilkan tugas-tugas baru. Kemudian, ia mengambil sampel respons yang beragam per tugas, mengaitkan masing-masing dengan kasus uji, dan memvalidasi mereka dalam lingkungan sandbox. Akhirnya, contoh yang lulus dipilih untuk penyempurnaan instruksi. Dalam eksperimen utama kami, kami menggunakan SelfCodeAlign dengan CodeQwen1.5-7B untuk menghasilkan dataset berisi 74.000 pasangan instruksi-respons. Penyempurnaan model pada dataset ini menghasilkan model yang mencapai skor 67,1% pass@1 di HumanEval+, melampaui CodeLlama-70B-Instruct meskipun ukurannya sepuluh kali lebih kecil. Di seluruh benchmark, model yang disesuaikan ini secara konsisten mengungguli versi asli yang dilatih dengan OctoPack, metode terdepan sebelumnya untuk penyempurnaan instruksi tanpa anotasi manusia atau distilasi. Selain itu, kami menunjukkan bahwa SelfCodeAlign efektif pada LLM berbagai ukuran, dari 3B hingga 33B, dan bahwa model dasar dapat memperoleh manfaat lebih besar dari penyelarasan dengan distribusi data mereka sendiri. Kami juga memvalidasi keefektifan setiap komponen dalam pipeline kami, menunjukkan bahwa SelfCodeAlign mengungguli baik distilasi langsung dari GPT-4o maupun metode distilasi berbasis GPT-3.5 terkemuka, seperti OSS-Instruct dan Evol-Instruct. SelfCodeAlign juga telah memicu pengembangan StarCoder2-Instruct, model bahasa besar (LLM) kode pertama yang sepenuhnya transparan, berlisensi terbuka, dan selaras secara mandiri, yang mencapai kinerja pemrograman terbaik saat ini.
