Repolode
sail-sg

sail-sg/envpool

Un pool de entornos por lotes en C++ para aprendizaje por refuerzo, que ejecuta en paralelo muchos entornos tipo Gym mediante un pool de hilos.

Estrellas
1,533
Forks
147
Issues abiertos
16
Último commit
hace 16 días

¿Qué es?

EnvPool es un motor de ejecución en paralelo para entornos de aprendizaje por refuerzo. Gestiona un pool de entornos en C++ mediante un pool de hilos y los expone a Python a través de pybind11, de modo que una sola llamada puede ejecutar un paso en muchos entornos a la vez. Admite las API de estilo Gymnasium y dm_env, tanto en modo síncrono como asíncrono, y la interacción por lotes viene activada de forma predeterminada.

El proyecto abarca una amplia variedad de familias de entornos, como Atari, MuJoCo, DeepMind Control Suite, Box2D, ViZDoom, Procgen, Minigrid, MPE2, MetaWorld, PGX y Jumanji. También se pueden añadir entornos mediante una interfaz para desarrolladores de C++. Están disponibles el renderizado en lotes a matrices RGB y la compatibilidad con XLA mediante JAX jit. En PyPI se publican wheels precompilados para Linux, macOS y Windows.

Los benchmarks del repositorio comparan el rendimiento con entornos vectorizados basados en subprocess de Python y con bucles for, en máquinas con entre 12 y 256 núcleos de CPU.

Funciones clave

  • 01Ejecución de pasos en entornos por lotes mediante un pool de hilos en C++ y enlaces con pybind11.
  • 02Compatible con las API de Gymnasium y dm_env.
  • 03Admite ejecución síncrona y asíncrona, incluidos entornos de uno y varios jugadores.
  • 04Abarca numerosas familias de entornos, como Atari, MuJoCo, DeepMind Control y Procgen.
  • 05Renderizado por lotes en formato rgb_array y compatibilidad con XLA mediante JAX jit.

Casos de uso

  • Acelerar la recopilación de datos para entrenar modelos de aprendizaje por refuerzo en máquinas multinúcleo.
  • Ejecutar experimentos con Atari o MuJoCo usando bibliotecas como Stable-Baselines3, Tianshou o CleanRL.
  • Añadir un entorno personalizado con una implementación de alto rendimiento en C++

Inicio rápido

  1. 1

    Instala EnvPool desde PyPI

    pip install envpool
  2. 2

    Abre una consola de Python e importa envpool para confirmar que la instalación se realizó correctamente

Antes de usarlo

  • El renderizado de MuJoCo en Linux requiere el runtime de EGL/OpenGL del sistema, como libegl1, libopengl0 y libgl1-mesa-dri en Ubuntu.
  • En Linux, los entornos Procgen requieren instalar por separado el runtime de Qt 5 del sistema. Para compilar desde el código fuente también se necesita Qt 5.

En colecciones

Temas

#reinforcement-learning#parallel-processing#gym#simulation#cpp#python-bindings#vectorized-environment#atari-games#box2d#cpp17

Preguntas frecuentes

¿Qué es envpool?
Un pool de entornos por lotes en C++ para aprendizaje por refuerzo, que ejecuta en paralelo muchos entornos tipo Gym mediante un pool de hilos. EnvPool es un motor de ejecución en paralelo para entornos de aprendizaje por refuerzo. Gestiona un pool de entornos en C++ mediante un pool de hilos y los expone a Python a través de pybind11, de modo que una sola llamada puede ejecutar un paso en muchos entornos a la vez. Admite las API de estilo Gymnasium y dm_env, tanto en modo síncrono como asíncrono, y la interacción por lotes viene activada de forma predeterminada.
¿envpool es gratuito? ¿Qué licencia tiene?
envpool es open source bajo la licencia Apache-2.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿envpool sigue mantenido?
Mantenimiento activo. El último commit de envpool fue el 21 oct 2026.
¿Para qué puedo usar envpool?
Acelerar la recopilación de datos para entrenar modelos de aprendizaje por refuerzo en máquinas multinúcleo. Ejecutar experimentos con Atari o MuJoCo usando bibliotecas como Stable-Baselines3, Tianshou o CleanRL. Añadir un entorno personalizado con una implementación de alto rendimiento en C++
¿Cómo se instala envpool?
Instala EnvPool desde PyPI: pip install envpool Abre una consola de Python e importa envpool para confirmar que la instalación se realizó correctamente
¿Dónde consigo envpool?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/sail-sg/envpool

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados