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