SakanaAI/ShinkaEvolve

ShinkaEvolve: Towards Open-Ended and Sample-Efficient Program Evolution 🧬

解決的問題

ShinkaEvolve 是一個旨在自動化科學程式碼發現與優化之框架。它透過結合大型語言模型(LLMs)的創造能力與進化搜尋的優化能力,解決了在科學計算中手動設計複雜演算法或優化效能指標的挑戰。

工作原理

系統維持一個隨多代進化而演化的程式種群。一組 LLM 作為智慧突變運算子,對現有種群提出程式碼改進建議(透過差異、完整重寫或交叉繁殖)。這些候選方案隨後透過提供的驗證程式進行評估。該框架支援本地或 Slurm 集群上的平行評估,並維護一個成功解決方案的存檔,以促進不同進化島之間的知識傳遞。

適用對象

主要針對擁有效能驗證程式、目標是優化程式碼正確性、可讀性與效能指標之研究人員與開發者。

主要亮點

  • 多 LLM 集成:使用多種 LLM 進行程式碼生成,並採用動態模型選擇(如 UCB)以優化結果。
  • 彈性執行環境:支援本地執行、Slurm Conda 與 Slurm Docker 環境,實現可擴展的評估。
  • 代理整合:提供「技能」以整合 Claude Code 與 Codex 等編碼代理。
  • 廣泛的語言支援:已證明可在 Python、Julia、Fortran 與 Verilog RTL 等多種語言中優化程式碼。
  • 監控工具:包含用於即時追蹤的 WebUI,以及可選的 Weights & Biases 集成以記錄實驗。

相關

  • 專案
  • 專案
  • 專案
  • Dispatch
  • 專案