evox

GitHub
2.2k 302 简单 1 次阅读 今天GPL-3.0插件开发框架
AI 解读 由 AI 自动生成,仅供参考

EvoX 是一个专为进化计算打造的分布式 GPU 加速框架,深度兼容 PyTorch 生态。它主要解决了传统进化算法在处理大规模问题时计算效率低、难以利用现代硬件加速的痛点,通过异构硬件支持(CPU/GPU)和分布式工作流,可实现高达 100 倍以上的速度提升,让复杂的优化任务变得高效可行。

该平台内置了 50 多种进化算法和 100 多个基准测试问题,全面覆盖单目标与多目标优化场景,并采用分层架构设计,能够轻松应对元学习、超参数优化及神经进化等高难度任务。对于用户而言,EvoX 提供了友好的编程模型和一键安装体验,大幅降低了开发门槛。

EvoX 特别适合人工智能研究人员、算法工程师以及需要解决复杂优化问题的开发者使用。无论是进行学术探索,还是构建工业级应用,它都能提供强大的算力支持和丰富的算法库,帮助用户快速验证想法并部署高性能解决方案。

使用场景

某自动驾驶研发团队正在利用进化算法优化神经网络的超参数,以提升车辆在复杂路况下的决策稳定性。

没有 evox 时

  • 训练耗时极长:在单台 CPU 服务器上运行大规模种群迭代,一次完整的超参数搜索需要数天甚至数周,严重拖慢研发节奏。
  • 资源利用率低:团队拥有的多张高性能 GPU 处于闲置状态,因为传统的进化算法库难以有效调用 GPU 进行并行加速。
  • 算法实现困难:想要尝试最新的多目标优化算法(如 RVEA)或自定义变异策略,需要从头编写底层代码,极易出错且维护成本高。
  • 扩展性差:当数据量增大或模型变复杂时,无法简单地通过增加机器节点来线性提升计算速度,只能被迫缩小搜索空间牺牲精度。

使用 evox 后

  • 百倍加速体验:利用 evox 的 GPU 加速特性,将原本需要数天的训练任务压缩至几小时内完成,整体效率提升超过 100 倍。
  • 硬件火力全开:无缝对接 PyTorch 生态,自动调度异构硬件,让闲置的 GPU 集群瞬间转化为强大的进化计算引擎。
  • 开箱即用丰富算法:直接调用内置的 50+ 种进化算法和 100+ 基准测试环境,研究人员可专注于策略设计而非底层实现。
  • 弹性分布式扩展:支持多节点分布式工作流,随着任务复杂度增加,可轻松横向扩展算力,确保大规模搜索任务的可行性。

evox 通过将进化计算带入 GPU 分布式时代,让原本昂贵的超参数调优变得高效、低成本且触手可及。

运行环境要求

操作系统
  • Windows
  • Linux
  • macOS
GPU

非必需,但支持 GPU 加速(兼容 PyTorch 的 CUDA 环境),未明确具体型号和显存要求

内存

未说明

依赖
notes该工具是基于 PyTorch 的分布式 GPU 加速进化计算框架。Windows 用户可使用提供的一键安装脚本。旧版基于 JAX 的版本可在 v0.9.0 分支找到。支持 CPU 和 GPU 异构加速,分布式工作流可扩展至多节点。
python3.10+
torch
brax (可选,用于神经进化/RL)
evox hero image

快速开始

EvoX Logo

PSO Result      RVEA Result      HalfCheetah 200

arXiv Documentation PyPI Version Python Version Discord Server QQ Group

English README 中文 README


🌟面向可扩展进化计算的分布式GPU加速框架🌟


目录

  1. 概述
  2. 关键特性
  3. 主要内容
  4. 安装指南
  5. 快速入门
  6. 姊妹项目
  7. 社区与支持

概述

EvoX是一个兼容PyTorch的分布式GPU加速进化计算框架。它采用用户友好的编程模型,提供超过50种进化算法(EAs)100多个基准问题/环境。更多详情请参阅我们的论文以及文档 / 文档

[!NOTE] 使用过之前基于JAX版本的用户可以在v0.9.0分支上找到该版本。

关键特性

💻 高性能计算

🚀 超高性能

  • 支持在异构硬件上加速,包括CPUGPU,实现超过100倍的加速
  • 集成分布式工作流,可在多个节点或设备间无缝扩展。

🌐 一体化解决方案

  • 包含50多种算法,适用于广泛的使用场景,全面支持单目标和多目标优化
  • 提供分层架构,用于处理复杂任务,如元学习超参数优化神经进化

🛠️ 易用设计

  • 完全兼容PyTorch及其生态系统,通过定制化的编程模型简化算法开发。
  • 为Windows用户提供一键安装,确保轻松设置。

📊 多样化基准测试

📚 丰富的基准套件

  • 拥有100多个基准问题,涵盖单目标优化、多目标优化以及现实世界的工程挑战。

🎮 物理引擎支持

  • 可与物理引擎如Brax及其他流行的强化学习框架无缝集成。

⚙️ 可自定义问题

  • 提供一个封装模块,用于定义和评估根据用户需求量身定制的问题,并可轻松集成到实际应用和数据集中。

📈 灵活的可视化

🔍 即用工具

  • 提供一套全面的可视化工具,用于分析各种任务中的进化过程。

🛠️ 可定制模块

  • 允许用户集成自己的可视化代码,实现个性化和灵活的可视化效果。

📂 实时数据流

  • 利用定制的**.exv格式**,简化并加速实时数据流。

主要内容

类别 子类别 值得关注的算法/基准问题
单目标优化 差分进化 CoDE, JaDE, SaDE, SHADE, IMODE, ...
进化策略 CMA-ES, PGPE, OpenES, CR-FM-NES, xNES, ...
粒子群优化 FIPS, CSO, CPSO, CLPSO, SL-PSO, ...
多目标优化 基于支配关系 NSGA-II, NSGA-III, SPEA2, BiGE, KnEA, ...
基于分解 MOEA/D, RVEA, t-DEA, MOEAD-M2M, EAG-MOEAD, ...
基于指标 IBEA, HypE, SRA, MaOEA-IGD, AR-MOEA, ...
基准问题/环境 数值类 DTLZ, LSMOP, MaF, ZDT, CEC'22, ...
神经进化/强化学习 Brax, TorchVision Dataset, ...

有关所有算法的完整列表及详细说明,请查看算法API,而关于基准问题/环境的详细信息则请参考问题API

安装指南

使用 pip 安装带有默认功能集的 evox

pip install "evox[default]"

从源代码安装最新版本以进行测试或开发:

git clone https://github.com/EMI-Group/evox.git
cd evox
pip install -e .

[!TIP] Windows 用户可以使用 win-install.bat 脚本来进行安装。

快速入门

以下是一些示例,帮助您快速上手 EvoX:

单目标优化

使用 PSO 算法求解 Ackley 问题:

import torch
from evox.algorithms import PSO
from evox.problems.numerical import Ackley
from evox.workflows import StdWorkflow, EvalMonitor

# torch.set_default_device("cuda") # 如果您希望默认使用 GPU,请取消注释此行

algorithm = PSO(pop_size=100, lb=-32 * torch.ones(10), ub=32 * torch.ones(10))
problem = Ackley()
monitor = EvalMonitor()
workflow = StdWorkflow(algorithm, problem, monitor)
workflow.init_step()
for i in range(100):
    workflow.step()

monitor.plot() # 或者如果您在无头模式下运行,则使用 monitor.plot().show()
示例输出

多目标优化

使用 RVEA 算法求解 DTLZ2 问题:

import torch
from evox.algorithms import RVEA
from evox.problems.numerical import DTLZ2
from evox.workflows import StdWorkflow, EvalMonitor

# torch.set_default_device("cuda") # 如果您希望默认使用 GPU,请取消注释此行

prob = DTLZ2(m=2)
pf = prob.pf()
algo = RVEA(
    pop_size=100,
    n_objs=2,
    lb=-torch.zeros(12),
    ub=torch.ones(12)
)
monitor = EvalMonitor()
workflow = StdWorkflow(algo, prob, monitor)
workflow.init_step()
for i in range(100):
    workflow.step()

monitor.plot() # 或者如果您在无头模式下运行,则使用 monitor.plot().show()
示例输出

神经进化

进化一个简单的 MLP 模型来解决 Brax HalfCheetah 环境:

import torch
import torch.nn as nn
from evox.algorithms import PSO
from evox.problems.neuroevolution.brax import BraxProblem
from evox.utils import ParamsAndVector
from evox.workflows import EvalMonitor, StdWorkflow

# torch.set_default_device("cuda") # 如果您希望默认使用 GPU,请取消注释此行

class SimpleMLP(nn.Module):
    def __init__(self):
        super().__init__()
        # 观测空间为 17 维,动作空间为 6 维。
        self.features = nn.Sequential(nn.Linear(17, 8), nn.Tanh(), nn.Linear(8, 6))

    def forward(self, x):
        return torch.tanh(self.features(x))

# 初始化 MLP 模型
model = SimpleMLP()
adapter = ParamsAndVector(dummy_model=model)
# 设置种群大小
POP_SIZE = 1024
# 获取 PSO 算法的边界
model_params = dict(model.named_parameters())
pop_center = adapter.to_vector(model_params)
lb = torch.full_like(pop_center, -5)
ub = torch.full_like(pop_center, 5)
# 初始化 PSO,您也可以使用其他算法
algorithm = PSO(pop_size=POP_SIZE, lb=lb, ub=ub)
# 初始化 Brax 问题
problem = BraxProblem(
    policy=model,
    env_name="halfcheetah",
    max_episode_length=1000,
    num_episodes=3,
    pop_size=POP_SIZE,
)
# 设置监控器,它可以记录前 3 名的最佳适应度值
monitor = EvalMonitor(topk=3)
# 启动工作流
workflow = StdWorkflow(
    algorithm=algorithm,
    problem=problem,
    monitor=monitor,
    opt_direction="max",
    solution_transform=adapter,
)
workflow.init_step()
for i in range(50):
    workflow.step()

monitor.plot() # 或者如果您在无头模式下运行,则使用 monitor.plot().show()
示例输出

[!NOTE] 如需全面指导,请访问我们的 文档。在那里,您将找到详细的安装步骤、教程、实用示例以及完整的 API 参考。

子项目

  • EvoRL: 加速进化强化学习的 GPU 框架。请查看 这里
  • EvoGP: 加速遗传编程的 GPU 框架。请查看 这里
  • EvoMO: 加速进化多目标优化 (EMO) 的 GPU 库。请查看 这里
  • TensorNEAT: 用于 GPU 加速的张量化增强拓扑神经进化 (NEAT)。请查看 这里
  • TensorACO: 用于 GPU 加速的张量化蚁群优化 (ACO)。请查看 这里
  • EvoXBench: 一个用于解决各种优化问题(如神经架构搜索 NAS)的真实世界基准平台。它无需 GPU/PyTorch/TensorFlow 即可运行,并支持多种编程环境。请查看 这里

敬请期待更多激动人心的进展!✨

社区与支持

引用 EvoX

如果 EvoX 对您的研究有所帮助,请引用如下:

@article{evox,
  title = {{EvoX}: {A} {Distributed} {GPU}-accelerated {Framework} for {Scalable} {Evolutionary} {Computation}},
  author = {Huang, Beichen and Cheng, Ran and Li, Zhuozhao and Jin, Yaochu and Tan, Kay Chen},
  journal = {IEEE Transactions on Evolutionary Computation},
  year = 2024,
  doi = {10.1109/TEVC.2024.3388550}
}

许可声明

EvoX 采用 GNU 通用公共许可证 v3.0 (GPL-3.0) 许可。有关完整条款和条件,请参阅 LICENSE 文件。

版本历史

v1.3.02025/11/06
v1.2.22025/06/03
v1.2.12025/05/13
v0.6.02023/11/30
v0.9.02024/11/04
v0.9.0rc22024/10/28
v0.9.0-rc12024/10/23
v0.8.12024/04/23
v0.8.02024/04/22
v0.7.12024/03/13
v0.7.02024/02/22
v0.6.32024/01/10
v0.6.22023/12/20
v0.6.12023/12/19
v1.2.02025/04/23
v1.1.22025/03/31
v1.1.12025/03/16
v1.1.02025/03/01
v1.0.12025/01/20
v1.0.0a12025/01/14

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2周前
Agent开发框架图像

n8n

n8n 是一款面向技术团队的公平代码(fair-code)工作流自动化平台,旨在让用户在享受低代码快速构建便利的同时,保留编写自定义代码的灵活性。它主要解决了传统自动化工具要么过于封闭难以扩展、要么完全依赖手写代码效率低下的痛点,帮助用户轻松连接 400 多种应用与服务,实现复杂业务流程的自动化。 n8n 特别适合开发者、工程师以及具备一定技术背景的业务人员使用。其核心亮点在于“按需编码”:既可以通过直观的可视化界面拖拽节点搭建流程,也能随时插入 JavaScript 或 Python 代码、调用 npm 包来处理复杂逻辑。此外,n8n 原生集成了基于 LangChain 的 AI 能力,支持用户利用自有数据和模型构建智能体工作流。在部署方面,n8n 提供极高的自由度,支持完全自托管以保障数据隐私和控制权,也提供云端服务选项。凭借活跃的社区生态和数百个现成模板,n8n 让构建强大且可控的自动化系统变得简单高效。

184.7k|★★☆☆☆|今天
数据工具开发框架Agent

AutoGPT

AutoGPT 是一个旨在让每个人都能轻松使用和构建 AI 的强大平台,核心功能是帮助用户创建、部署和管理能够自动执行复杂任务的连续型 AI 智能体。它解决了传统 AI 应用中需要频繁人工干预、难以自动化长流程工作的痛点,让用户只需设定目标,AI 即可自主规划步骤、调用工具并持续运行直至完成任务。 无论是开发者、研究人员,还是希望提升工作效率的普通用户,都能从 AutoGPT 中受益。开发者可利用其低代码界面快速定制专属智能体;研究人员能基于开源架构探索多智能体协作机制;而非技术背景用户也可直接选用预置的智能体模板,立即投入实际工作场景。 AutoGPT 的技术亮点在于其模块化“积木式”工作流设计——用户通过连接功能块即可构建复杂逻辑,每个块负责单一动作,灵活且易于调试。同时,平台支持本地自托管与云端部署两种模式,兼顾数据隐私与使用便捷性。配合完善的文档和一键安装脚本,即使是初次接触的用户也能在几分钟内启动自己的第一个 AI 智能体。AutoGPT 正致力于降低 AI 应用门槛,让人人都能成为 AI 的创造者与受益者。

183.6k|★★★☆☆|今天
Agent语言模型插件

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|2周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

161.1k|★★☆☆☆|今天
开发框架Agent语言模型

opencode

OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信

144.3k|★☆☆☆☆|4天前
Agent插件