AI Umum

CodeIt: Menggabungkan Pengambilan Sampel Program dan Pelabelan Ulang Retrospektif untuk Sintesis Program

Pengantar

Pemrograman berdasarkan contoh merupakan salah satu bidang kecerdasan buatan (AI) yang beragam dalam proses otomatisasi. Tujuannya adalah untuk menghasilkan program untuk menyelesaikan tugas berdasarkan contoh input-output. Domain ini menghadirkan tantangan unik karena menuntut sistem yang dapat memahami pola yang mendasari dalam data dan menerapkan penalaran untuk mengekstrapolasi pola ini ke contoh yang tidak terlihat.

Tantangan dalam Sintesis Program

Meskipun mengalami kemajuan, metode pemrograman berdasarkan contoh saat ini seringkali gagal ketika dihadapkan dengan tugas yang membutuhkan tingkat abstraksi dan penalaran yang tinggi. Kompleksitas tugas ini terletak pada kebutuhan mereka akan solusi yang dapat menggeneralisasi dari serangkaian contoh terbatas ke berbagai skenario yang tidak terlihat. Masalah ini dicontohkan dalam tolok ukur seperti Abstraction and Reasoning Corpus (ARC), yang menguji kemampuan sistem AI untuk menerapkan sistem pengetahuan inti—objek, tindakan, angka, dan ruang—dengan cara baru.

Pendekatan yang Ada

Pendekatan yang ada untuk mengatasi tantangan ini dapat dikategorikan menjadi metode saraf dan neuro-simbolik. Pendekatan saraf mencoba memprediksi grid output secara langsung dari grid input menggunakan model pembelajaran mendalam. Di sisi lain, metode neuro-simbolik pertama-tama bertujuan untuk memahami pemetaan antara grid input dan output melalui representasi simbolik, seperti program, sebelum menghasilkan output yang diinginkan. Setiap pendekatan memiliki kelebihannya tetapi seringkali membutuhkan bantuan generalisasi tugas karena kelangkaan hadiah dalam sintesis program.

CodeIt: Metode Baru

Peneliti dari Universitas Amsterdam telah memperkenalkan metode baru yang disebut Code Iteration (CodeIt) untuk mengatasi tantangan ini. CodeIt beralih antara pengambilan sampel program dengan pelabelan ulang retrospektif dan pembelajaran dari pemutaran ulang pengalaman yang diprioritaskan. Metode ini memungkinkan model untuk menyempurnakan pemahamannya dan meningkatkan prediksinya melalui perbaikan diri, memanfaatkan kemampuan besar model bahasa yang telah dilatih sebelumnya sambil mengatasi masalah kelangkaan hadiah.

Penerapan pada ARC

Studi ini menangani tantangan ARC dengan membingkainya sebagai masalah pemrograman berdasarkan contoh. Ini menggunakan metode dua tahap: pembuatan program melalui penerapan kebijakan dengan pelabelan ulang retrospektif dan pembelajaran iteratif dari pasangan input-output. Pendekatan ini menekankan representasi grid yang berpusat pada objek untuk pembelajaran yang efisien dengan memanfaatkan bahasa domain khusus (DSL) sumber terbuka Hodel untuk manipulasi grid dan CodeT5+ LLM yang telah dilatih sebelumnya untuk pembuatan kebijakan.

Hasil

Algoritma CodeIt, yang didukung oleh rejimen pelatihan yang kuat yang melibatkan 400 contoh pelatihan ARC dan kumpulan data yang diperluas dari 19.200 sampel program, menunjukkan kemanjuran yang menonjol. Implementasi CodeIt pada dataset ARC menunjukkan hasil yang luar biasa. Dengan kinerja mutakhirnya, CodeIt menyelesaikan 15% dari tugas evaluasi ARC, mengungguli basis saraf dan simbolik yang ada. Metode iterasi antara pengambilan sampel program, pelabelan ulang retrospektif, dan pembelajaran dari pemutaran ulang pengalaman yang diprioritaskan secara efektif mengatasi kelangkaan hadiah yang ekstrem dalam sintesis program.

Kesimpulan

Eksplorasi dan pengembangan sistem AI yang dapat memperbaiki diri seperti CodeIt mewakili arah yang menjanjikan dalam menangani tugas pemecahan masalah kompleks yang membutuhkan penalaran abstrak. Dengan memanfaatkan kekuatan pemutaran ulang retrospektif dan pembelajaran yang diprioritaskan, CodeIt mengilustrasikan potensi pendekatan neuro-simbolik dalam memajukan pemahaman dan kemampuan kita dalam AI. Seiring bidang ini terus berkembang, prinsip-prinsip yang mendasari CodeIt dapat membuka jalan bagi sistem AI yang lebih cerdas dan mudah beradaptasi.