Konkurensi dan paralelisme

Parameter concurrency mengontrol jumlah program yang dibuat dan dievaluasi secara bersamaan. Parameter ini adalah hyperparameter runtime yang paling berdampak.

  • n = 1 (Rantai berurutan): Buat satu program, tunggu evaluasi, lalu buat program berikutnya. Setiap generasi melihat hasil sebelumnya, sehingga menciptakan serangkaian peningkatan inkremental yang memperbesar optimum lokal. Pendekatan ini menghasilkan throughput paling lambat, tetapi eksploitasi yang paling terfokus. Gunakan mode ini untuk sengaja menyatukan beberapa wilayah tertentu.

  • n = 3-12 (Titik optimal): Ini adalah rentang yang paling banyak digunakan dalam praktiknya, yang menyeimbangkan eksplorasi dan eksploitasi. Beberapa program berjalan secara bersamaan, sehingga beberapa generasi tidak melihat hasil terbaru, yang menimbulkan keragaman alami. Database evolusioner mempertahankan throughput yang cukup untuk dinamika populasi yang sehat.

  • n = 13-30 (Eksplorasi tinggi): Banyak program berjalan secara paralel. Sebagian besar generasi tidak melihat hasil generasi lainnya. Mode ini berguna untuk masalah yang sangat non-cembung dengan banyak optima lokal, yang mengutamakan eksplorasi luas daripada eksploitasi mendalam.

  • n = 23-30 (Dibatasi; hindari): Melebihi 30 generator paralel akan membatasi backend LLM. Permintaan diantrekan, sehingga meningkatkan latensi per generasi. Kecuali jika Anda memiliki kuota khusus, tetaplah di bawah 30.

Rekomendasi

Rekomendasi berikut berfungsi sebagai titik awal untuk mengonfigurasi konkurensi dan paralelisme untuk AlphaEvolve.

Jenis Masalah Serentak Alasan
Pendekatan yang dipahami dengan baik, penyesuaian yang sudah dikenal 3–5 Eksploitasi terfokus
Pengoptimalan umum, lanskap tidak diketahui 8–12 Eksplorasi/eksploitasi yang seimbang
Sangat non-cembung, banyak optima lokal 15–25 Eksplorasi luas
Pembesaran lokal optimum yang disengaja 1 Rantai berurutan

Mulailah dengan concurrency=10 dan sesuaikan berdasarkan indikator berikut:

  • Skor stagnan: Tingkatkan konkurensi untuk keluar dari optima lokal.

  • Banyak evaluasi yang gagal: Kurangi konkurensi untuk mengurangi komputasi yang terbuang.

  • Evaluasi lambat (lebih dari 5 menit): Konkurensi yang lebih tinggi membuat pipeline evaluasi tetap sibuk.

  • Evaluasi cepat (kurang dari 10 detik): Konkurensi yang lebih rendah memungkinkan generasi berikutnya untuk langsung membangun hasil satu sama lain.

Serentak versus batas eksperimen aktif

Anda perlu memahami perbedaan antara konkurensi tingkat program dan batas eksperimen tingkat project:

  • Konkurensi program (concurrency): Dikonfigurasi di runSettings (antara 1 dan 30), parameter ini mengontrol jumlah program kandidat yang dihasilkan dan dievaluasi secara bersamaan dalam satu eksperimen.
  • Batas eksperimen aktif: Project tunduk pada batas 30 eksperimen yang aktif secara bersamaan (STARTED atau RUNNING) per lokasi. Mencoba memulai atau melanjutkan eksperimen di luar batas ini akan menampilkan error RESOURCE_EXHAUSTED. Untuk mengatasi hal ini, hentikan atau selesaikan eksperimen yang sedang berjalan sebelum memulai eksperimen baru (mengubah concurrency dalam eksperimen tidak mengubah jumlah eksperimen aktif Anda).