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
  • 项目