AI · 10 Oktober 2026

Juga diterbitkan dalam 中文

Modela kecil Temper 0.5B kalahkan model tiga kali lebih besar dalam pemrograman Rust

close-up photo of monitor displaying graph
Nicholas Cappello / Unsplash

Temper 0.5B, sebuah model bahasa kecil yang dilatih ulang berdasarkan Qwen2.5-Coder-0.5B-Instruct, berhasil melampaui kinerja model yang memiliki hingga tiga kali lipat jumlah parameter dalam tugas pemrograman khusus bahasa Rust. Pengembangan ini bertujuan untuk menguji batas kemampuan model berukuran sangat kecil pada domain yang sempit dan membandingkannya dengan model umum yang sama besar atau lebih besar.

Proses pelatihan awal menggunakan model Qwen3.6-35B-A3B sebagai pengajar, yang menghasilkan 2.700 contoh kode Rust dalam waktu sekitar sembilan jam menggunakan kartu grafis NVIDIA A40 48GB. Dataset pertama ini memiliki format yang lebih sederhana dan filter yang kurang ketat dibandingkan versi akhir. Setiap contoh berisi fungsi dengan antarmuka, komentar dokumentasi, permintaan untuk melengkapi kode, dan tubuh kosong dengan satu penanda todo. Meskipun kualitas datanya lebih rendah, versi pertama model ini sudah menunjukkan peningkatan signifikan dibandingkan model dasar Qwen2.5-Coder-0.5B.

Setelah tiga epoch pelatihan, versi pertama menyelesaikan 64,6 persen tugas trivial dengan benar pada percobaan pertama, dibandingkan 45,6 persen untuk model dasar. Pada tugas sederhana, akurasinya lebih dari dua kali lipat, naik dari 15,0 persen menjadi 34,3 persen. Peningkatan pada benchmark MultiPL-E lebih kecil, yaitu 10 poin pada humaneval-rs dan 7 poin pada mbpp-rs.

Dataset kemudian diperluas menjadi 10.000 contoh menggunakan pengajar baru DeepSeek-V4-Flash, yang dianggap lebih kuat dalam pemrograman dan lebih murah melalui API. Data yang dihasilkan disaring untuk menghilangkan duplikat dan kebocoran benchmark, dengan sekitar 60 persen contoh yang diterima karena lolos kompilasi dan pengujian. Komposisi data mencakup sekitar 65 persen permintaan tanpa kode, 35 persen tugas dengan kerangka kode, dan sekitar 35 persen contoh algoritmik. Model kemudian dilatih ulang menggunakan penguatan, di mana model menulis beberapa solusi untuk setiap tugas dan hanya solusi yang lolos pengujian yang diberi hadiah.

Versi akhir menunjukkan peningkatan yang jelas pada benchmark Rust dari MultiPL-E dibandingkan versi pertama. Persentase tugas yang diselesaikan dengan benar pada percobaan pertama naik 7,6 poin pada humaneval-rs dan 7,9 poin pada mbpp-rs. Pengujian dilakukan dengan suhu 0.8 dan top_p 0.95, dengan 10 jawaban per tugas, menggunakan estimasi tidak bias dari artikel Codex.

Karena kurangnya benchmark yang relevan untuk model kecil dalam Rust, tim pengembang membuat benchmark internal berisi 100 tugas dengan tiga tingkat kesulitan. Tugas trivial melibatkan fungsi pendek atas angka, string, slice, Option, dan Result. Tugas sederhana mencakup tipe kecil, struktur dengan metode, enum, match, HashMap, Display, iterator, dan operator tanya. Tugas menengah melibatkan crate seperti axum, serde, tokio, clap, regex, dan thiserror, serta Rc<RefCell>, thread, dan lifetime. Setiap tugas terdiri dari permintaan teks, antarmuka publik, dan tes tersembunyi, di mana kode hanya dianggap benar jika lolos semua tes.