Evolution Strategies in JAX for high-throughput hardware acceleration
Top 52.3% on sourcepulse
evosax provides a high-performance, JAX-based library for implementing Evolution Strategies (ES). It targets researchers and practitioners in areas like neuroevolution and black-box optimization, enabling efficient scaling of evolutionary algorithms on modern hardware accelerators (CPUs, GPUs, TPUs) without complex distributed setups. The library offers a unified API for over 30 ES algorithms, including classics and recent advancements, fully leveraging JAX's compilation and transformation capabilities.
How It Works
evosax utilizes JAX's XLA compilation and transformation primitives (jit
, vmap
, lax.scan
) to achieve high throughput and scalability. The core API follows the "ask-evaluate-tell" cycle common in ES. This design allows for efficient vectorization across populations and parallel execution on accelerators, abstracting away the complexities of distributed computing while enabling seamless integration with JAX's functional programming paradigm.
Quick Start & Requirements
pip install evosax
pip install git+https://github.com/RobertTLange/evosax.git@main
Highlighted Details
jit
, vmap
, lax.scan
) for acceleration and scalability.Maintenance & Community
Licensing & Compatibility
Limitations & Caveats
The library contains independent reimplementations of LES and DES and is stated to be unrelated to Google DeepMind. While tested to reproduce official results, users should be aware of potential discrepancies in highly specific research contexts.
1 month ago
1+ week