RobertTLange/evosax

Evolution Strategies in JAX 🦎

解決的問題

evosax 的設計旨在消除在實現神經演化時處理複雜非同步流程的需求。它讓研究人員能夠利用大規模向量化與高吞吐量硬體加速器(如 GPU 和 TPU)進行演化策略(ES),而無需承擔通常與分散式實作相關的額外開銷。

工作原理

此套件基於 JAX 建構,利用 XLA 編譯與 JAX 的轉換原語(如 jitvmaplax.scan)以達成高效率。它遵循標準化的 ask-eval-tell API 循環:

  1. Ask:策略產生一組待評估的候選解(族群)。
  2. Eval:使用者評估該族群的適應度。
  3. Tell:使用者將適應度結果回傳給策略,以更新其內部狀態,並為下一代演化族群做準備。

適用對象

適用於希望使用高效率、JAX 原生套件,將演化演算法與神經演化實驗擴展至現代硬體加速器的研究人員與實務工作者。

主要特色

  • 廣泛的演算法庫:包含超過 30 種已實作的演化策略,從 CMA-ES 和差分演化等經典方法,到 OpenAI-ES 與擴散演化等現代方法。
  • JAX 原生支援:完整支援 JAX 轉換,實現高效擴展與 XLA 編譯。
  • 標準化 API:在不同策略之間(包含 SimpleGA 等族群基礎演算法)採用一致的 ask-eval-tell 循環。
  • 高吞吐量:針對硬體加速器進行優化,避免傳統分散式系統的額外開銷。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案