Dalam praktik awal komputasi evolusioner, objek yang "dievolusikan" hampir selalu berupaparameter numerik——learning rate, ukuran batch, kekuatan regularisasi, cara inisialisasi bobot. Ruang pencariannya hanyalah sekumpulan angka, dan cara evaluasinya adalah sekali pelatihan ditambah sekali validasi. Seiring meningkatnya skala daya komputasi dan matangnya kemampuan model besar, objek yang dapat dievolusikan jelas meluas: program, arsitektur model, mekanisme algoritma, bahkan keseluruhanstatus rekayasa perangkat lunak(konfigurasi, versi dependensi, kontrak antarmuka, strategi deployment dan operasional).
Jalur perluasan ini dapat digambarkan dengan rantai panah yang jelas: parameter numerik → program dan arsitektur model → status rekayasa perangkat lunak dan kandidat tingkat sistem. Semakin ke kanan tingkatannya, semakin kuat daya ekspresinya, semakin banyak jenis perubahan yang dapat dicakup, sehingga evolusi tingkat sistem pun menjadi mungkin.
Tiga tingkatan objek evolusi, masing-masing dengan biaya yang berbeda
- Tingkatan parameter numerik: kandidatnya hanyalah sekumpulan angka, murah untuk dihasilkan dan cepat dievaluasi, tetapi hanya dapat menjawab "apakah penyetelannya sudah baik", dan tidak dapat menambahkan mekanisme yang memang belum ada.
- Tingkatan program dan arsitektur model: kandidatnya adalah arsitektur jaringan, kombinasi operator, alur kerja prompt, atau patch kode; perubahannya mengubah "apa yang bisa dilakukan sistem", bukan sekadar "seberapa akurat hasilnya".
- Tingkatan status rekayasa perangkat lunak: kandidatnya adalah konfigurasi, versi dependensi, kontrak antarmuka, dan strategi deployment, yang secara langsung menentukan apakah sistem dapat berjalan stabil dan dapat direproduksi.
Pergeseran Fokus: dari "Bagaimana Menghasilkan Kandidat" ke "Bagaimana Mengeksekusi dan Mengevaluasi"
Ketika kandidat berubah dari angka menjadi program, langkah "menghasilkan kandidat" justru tidak lagi menjadi hambatan: model besar dapat memproduksi struktur, mekanisme, dan patch secara massal. Yang benar-benar menentukan apakah evolusi berhasil adalahmekanisme eksekusi dan evaluasi——siapa yang dapat benar-benar menjalankan kandidat, dan siapa yang dapat menilai dalam biaya yang dapat diterima apakah kandidat itu layak dipertahankan.
Semakin kuat daya ekspresinya, semakin berat beban evaluasinya. Satu parameter numerik cukup dinilai dengan sekali pelatihan; sedangkan satu patch kode memerlukan isolasi sandbox, pengujian regresi, dan perbandingan baseline untuk menjawab tiga pertanyaan: apakah benar-benar efektif, apakah menimbulkan risiko, dan apakah hasilnya dapat direproduksi. Sandbox, pengujian regresi, dan baseline justru merupakan perangkat rekayasa untuk membatasi biaya, risiko, dan reproduktibilitas, sekaligus memungkinkan perubahan dipertahankan atau dieliminasi secara konsisten.
Pertimbangan Rekayasa: Kandidat Lebih Banyak Tidak Berarti Evolusi Lebih Baik
Dalam praktik tim, jalur yang umum adalah menyetel learning rate dan hyperparameter terlebih dahulu, lalu secara bertahap meluas ke pencarian arsitektur jaringan, kombinasi operator, alur kerja prompt, atau patch kode. Setiap kali memperluas satu tingkatan, harus dijawab secara bersamaan: berapa banyak daya komputasi dan waktu yang dibutuhkan untuk evaluasi? Apakah kandidat yang gagal akan mencemari sistem yang ada? Apakah hasil yang sama masih dapat direproduksi lain kali? Hanya dengan mencapai keseimbangan antara daya ekspresi, biaya evaluasi, reproduktibilitas, dan keamanan, evolusi tingkat sistem benar-benar dapat diwujudkan.
