Skip to main content
QUICK REVIEW

[论文解读] EvoTorch: Scalable Evolutionary Computation in Python

Nihat Engin Toklu, Timothy Atkinson|arXiv (Cornell University)|Feb 24, 2023
Evolutionary Algorithms and Applications被引用 4
一句话总结

EvoTorch 是一个基于 PyTorch 的进化计算库,通过无缝集成硬件加速和分布式并行化,实现了高维问题的可扩展、GPU 加速优化。它支持连续和离散优化,包括可变长度列表和遗传编程等复杂结构,在种群规模高达 100,000 时仍能实现接近恒定的运行时间,相比基于 CPU 的方法性能提升超过 10 倍。

ABSTRACT

Evolutionary computation is an important component within various fields such as artificial intelligence research, reinforcement learning, robotics, industrial automation and/or optimization, engineering design, etc. Considering the increasing computational demands and the dimensionalities of modern optimization problems, the requirement for scalable, re-usable, and practical evolutionary algorithm implementations has been growing. To address this requirement, we present EvoTorch: an evolutionary computation library designed to work with high-dimensional optimization problems, with GPU support and with high parallelization capabilities. EvoTorch is based on and seamlessly works with the PyTorch library, and therefore, allows the users to define their optimization problems using a well-known API.

研究动机与目标

  • 为现代人工智能和优化任务中日益增长的可扩展、可重用、高性能进化计算需求提供解决方案。
  • 通过原生基于 PyTorch 构建,避免手动张量传输,实现进化算法的高效 GPU 加速。
  • 支持多样化优化问题,包括离散和结构化表示(如列表、栈、字典),超越标准的连续向量。
  • 通过 Ray 实现与分布式计算的无缝集成,支持在多节点集群上进行大规模实验。
  • 通过集成 PGPE 和 XNES 等前沿算法,促进神经进化和黑箱优化。

提出的方法

  • EvoTorch 将解决方案表示为 PyTorch 张量,以实现硬件加速操作,支持在 GPU 上进行向量化适应度评估。
  • 引入自定义的可微分数据结构(如 CList、CStack 和 CQueue),以批量、GPU 并行化方式处理可变长度序列。
  • 支持多种并行化模式:基于 GPU 的多 GPU 并行、基于 CPU 的多核并行,以及使用 Ray 在集群上实现的分布式并行。
  • 适应度函数可使用标准 PyTorch 操作定义,并在适用时支持自动微分。
  • 与成熟的 PyTorch 生态系统(如 PyTorch Geometric、Detectron2)集成,实现与现有机器学习流水线的即插即用兼容性。
  • PGPE 和 XNES 等进化算法原生实现并针对 GPU 执行进行了优化。

实验结果

研究问题

  • RQ1是否能够通过 PyTorch 生态系统中的 GPU 加速实现进化计算的高效扩展?
  • RQ2在遗传编程等离散优化问题中,基于 GPU 的并行化对大规模种群的运行时间有何影响?
  • RQ3基于 PyTorch 的数据结构在多大程度上能够实现算法性或序列型适应度函数的向量化、硬件加速评估?
  • RQ4基于 PyTorch 的 EC 库是否能在高维问题中实现比传统 CPU 库更优的可扩展性和性能?
  • RQ5Ray 集成如何在保持与 PyTorch 兼容性的同时,实现跨多节点集群的分布式进化计算?

主要发现

  • 在单个 GPU 上,EvoTorch 对种群规模达 30,000 的适应度评估实现了接近恒定的运行时间,展现出强大的可扩展性。
  • 在 100,000 的种群规模下,基于 GPU 的实现耗时比 40 核 CPU 上的基于 CPU 的实现减少 10 倍以上。
  • CList 等向量化结构的使用实现了对批量中可变长度列表的高效、无循环操作,提升了代码清晰度和性能。
  • 该库成功支持复杂的离散问题(如遗传编程),其中适应度评估涉及对程序的序列性、算法性解释。
  • EvoTorch 实现了从适应度评估到进化算法操作的端到端 GPU 加速,而传统方法通常仅限于 CPU 或需手动传输张量。
  • 与 Ray 的集成支持跨多台机器的无缝扩展,可实现大规模分布式进化实验。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。