RobertTLange/gymnax

RL Environments in JAX 🌍

What it solves

gymnax 解決了基於 CPU 的強化學習 (RL) 環境速度緩慢的瓶頸。透過在 JAX 中重新實現經典的 RL 環境,它允許研究人員在相同的加速器 (GPU/TPU) 上執行環境與策略,從而消除 CPU 與 GPU 之間的通訊開銷,並實現大規模的向量化。

How it works

它將經典的 OpenAI Gym API 引入 JAX 生態系統。由於它是用 JAX 編寫的,環境是完全功能性的,並且與 JAX 原語如 jit (即時編譯)、vmap (向量化映射) 和 pmap (並行映射) 相容。這使得能夠在數千個環境實例上同時進行高吞吐量的 rollouts,並使用 lax.scan 將整個回合 (episode) 迴圈編譯成單個加速器操作。

Who it’s for

它專為需要高吞吐量實驗的 RL 研究人員和開發者、從事 meta-RL (需要將不同的環境配置並行化) 的研究人員,以及進化優化策略的使用者所設計。

Highlights

  • High-Throughput Vectorization: 利用 vmappmap 實現大規模並行 rollouts。
  • Accelerator-Native: 在 GPU/TPU 上同時執行環境與策略,以促進像 Anakin sub-architecture 這樣的架構。
  • Broad Environment Support: 包含經典控制、bsuite、MinAtar 和各種 meta-RL 任務的實現。
  • Functional Control: 允許對隨機種子和超參數進行顯式控制,以加速並行化。
  • Visualization Tools: 包含一個 Visualizer 用於生成代理 (agent) 行為的 GIF 動畫。

相關

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