OpenEvolve: tiến hoá code bằng LLM

Đăng ngày 4/9/2026

OpenEvolve là bản mã nguồn mở của AlphaEvolve (DeepMind) - thay vì sửa code bằng tay, để LLM đóng vai trò “đột biến” trong một vòng lặp tiến hoá, chọn lọc theo điểm số từ evaluator.

Vòng lặp hoạt động thế nào

4 thành phần chính:

Mỗi vòng: chọn 2 chương trình (1 để lấy điểm, 1 để “truyền cảm hứng”) → LLM sinh biến thể mới → evaluator chấm điểm → cập nhật vào database. Database chia thành nhiều island (quần thể tách biệt), thỉnh thoảng di cư cá thể qua lại - tránh hội tụ sớm về một lời giải cục bộ.

Cài và chạy thử

pip install openevolve
export OPENAI_API_KEY="your-key"

python openevolve-run.py \
  examples/function_minimization/initial_program.py \
  examples/function_minimization/evaluator.py \
  --iterations 50

Dùng được OpenAI, Gemini, model local, hoặc bất kỳ API tương thích OpenAI nào.

Evaluator cascade

Evaluator không chỉ trả điểm mà còn trả artifacts - stderr, log profiling, cảnh báo build, nhận xét từ LLM khác. Artifacts này được đưa thẳng vào prompt của vòng tiếp theo, tạo thành vòng phản hồi lỗi:

evaluator:
  enable_artifacts: true      # đưa lỗi vào prompt vòng sau
  cascade_evaluation: true    # chấm nhiều giai đoạn, loại sớm code tệ
  use_llm_feedback: true      # dùng LLM chấm chất lượng code

Config đáng chú ý

Tham sốÝ nghĩa
database.num_islandssố quần thể song song
database.population_sizesố cá thể mỗi island
database.feature_dimensionstrục quality-diversity để phân loại cá thể
prompt.num_top_programs / num_diverse_programschọn code tốt nhất / code đa dạng để đưa vào prompt
random_seedseed cố định để tái lập kết quả

Kết quả

Khi nào đáng dùng

Hợp với bài toán có hàm đánh giá rõ ràng, chạy nhanh, đo được (tốc độ, độ chính xác, chi phí) - vì cả vòng lặp phụ thuộc vào điểm số evaluator trả về. Không hợp với việc cần con người đánh giá chủ quan hoặc bài toán không thể viết được evaluator tự động.